Ce guide installe la passerelle sur un serveur loué chez un hébergeur, comme Hetzner Cloud, OVH ou
DigitalOcean. Il suppose une machine neuve sous Debian 12, ou Ubuntu 22.04 ou plus récent, et un
accès SSH avec sudo.
À la fin, la passerelle est joignable en HTTPS sur votre propre nom de domaine, redémarre seule après un redémarrage de la machine, et les téléphones peuvent s'appairer depuis n'importe quel réseau, 4G comprise.
En bref, une fois le DNS configuré et les ports 80 et 443 ouverts :
curl -fsSL https://sms-gateway.araylab.com/install.sh | sudo bash -s -- --domain sms.example.com --yes
La suite de cette page couvre ce qui est propre à un VPS. Le parcours complet (achat, clé, premier compte, activation, appairage) est dans Installation.
1. Choisir l'offre
La plus petite offre de votre hébergeur suffit pour commencer. Rien n'est compilé sur le serveur : la passerelle est téléchargée prête à l'emploi.
| Ressource | Ce qu'il faut savoir |
|---|---|
| Mémoire | La passerelle en consomme très peu. Le serveur HTTPS à côté en ajoute un peu |
| Processeur | Les offres x86 (amd64) et ARM (arm64) fonctionnent toutes les deux |
| Disque | La base grossit avec votre historique de messages. Quelques gigaoctets couvrent un long historique ; gardez de la place pour les sauvegardes |
| Autre | Aucun serveur de base de données, aucun cache, aucun service tiers à louer |
2. Le nom de domaine
Créez un enregistrement A pointant vers l'adresse IP du VPS (et un enregistrement AAAA si vous
utilisez aussi IPv6). Un sous-domaine dédié, par exemple sms.votre-entreprise.com, est le plus
simple.
Attendez qu'il soit résolu avant d'installer :
dig +short sms.example.com
La réponse doit être l'adresse IP du VPS. Le script d'installation fait la même vérification et vous prévient si elle diffère ; le certificat est obtenu automatiquement dès que le DNS est correct.
Si le domaine passe par un proxy comme Cloudflare, désactivez le proxy (DNS seulement) le temps d'obtenir le certificat.
3. Le pare-feu
Trois ports ouverts, et pas un de plus :
| Port | Pourquoi il est ouvert |
|---|---|
| 22 | Votre accès SSH. Fermez-le et vous perdez l'accès à la machine |
| 80 | Obtenir et renouveler le certificat, et rediriger les visiteurs vers HTTPS |
| 443 | Tout le reste : tableau de bord, API, et connexion des téléphones |
Avec ufw :
sudo apt install -y ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
N'ouvrez pas le port 8080. En mode domaine, la passerelle n'écoute que sur la machine elle-même ; seul le serveur HTTPS est exposé.
Le port 80 doit rester joignable depuis internet, même si tout votre trafic utile passe en HTTPS : il sert à prouver que le domaine vous appartient.
Si votre hébergeur a son propre pare-feu (pare-feu Hetzner Cloud, pare-feu réseau OVH, DigitalOcean
Cloud Firewall), il s'applique en plus de ufw : ouvrez-y aussi les trois mêmes ports.
Bon à savoir : Docker publie les ports 80 et 443 par ses propres règles, qui s'appliquent même si
ufw ne les liste pas. C'est voulu pour ces deux ports, et c'est pourquoi la passerelle elle-même
n'est publiée que sur l'adresse interne de la machine.
4. Installer
Connectez-vous en SSH, puis :
curl -fsSL https://sms-gateway.araylab.com/install.sh | sudo bash -s -- --domain sms.example.com --yes
| Partie de la commande | Par défaut, sans elle | Effet |
|---|---|---|
--domain <nom> |
le script demande le mode | HTTPS sur ce nom, téléphones joignables de partout |
--yes |
le script demande avant chaque étape | Installe Docker sans demander s'il manque, et passe outre les avertissements (DNS, ports occupés). Retirez-le pour confirmer vous-même chaque étape |
Les autres options (--port, --dir, --version, --no-docker-install) et leurs valeurs par
défaut sont dans Installation, les options.
Le script écrit la configuration dans /opt/sms-gateway/.env, y compris l'adresse publique
https://sms.example.com que les QR codes d'appairage donneront aux téléphones. Vous n'avez rien à
ajouter.
5. Vérifier
sms-gateway status
sms-gateway url
curl -fsS https://sms.example.com/health
curl -fsS https://sms.example.com/ready
| Adresse | Réponse attendue | Ce qu'elle prouve |
|---|---|---|
/health |
{"status":"ok","version":"..."} |
La passerelle tourne, et affiche sa version |
/ready |
{"status":"ready","schemaVersion":N} |
La base est ouverte et à jour |
Ouvrez ensuite https://sms.example.com dans votre navigateur : créez le premier compte avec le code
d'installation affiché par le script (sms-gateway setup-code le réaffiche), connectez-vous, et
collez la clé de licence. La suite est à l'étape 4 de
Installation.
Si le navigateur signale un certificat invalide, c'est qu'il n'a pas encore été obtenu. Les journaux du serveur HTTPS disent pourquoi :
sms-gateway logs caddy
Les deux causes habituelles sont un DNS pas encore propagé et un port 80 fermé chez l'hébergeur.
6. Démarrage automatique
Rien à faire : les deux niveaux sont en place après l'installation.
- Docker démarre avec la machine. Vérifiez-le avec
sudo systemctl is-enabled docker(réponse :enabled). - La passerelle redémarre seule après un plantage ou un redémarrage, sauf si vous l'avez arrêtée
vous-même avec
sms-gateway stop(sms-gateway startla relance alors).
Vérifiez-le une fois pour de vrai :
sudo reboot
Reconnectez-vous une minute plus tard et lancez sms-gateway status.
7. Si le VPS fait déjà tourner un serveur web
Si Apache, Nginx ou un panneau d'hébergement occupe déjà les ports 80 et 443, le script vous prévient : le serveur HTTPS intégré ne peut pas démarrer à côté. Deux issues :
-
Une machine dédiée à la passerelle : la solution sans surprise, et la seule que l'installeur prend en charge.
-
Placer la passerelle derrière votre propre serveur web, sous votre responsabilité :
- Installez avec
--lan, qui laisse le serveur HTTPS intégré éteint (ajoutez--port <n>si 8080 est déjà pris ; les étapes suivantes utilisent alors ce port). - Dans
/opt/sms-gateway/.env, réglezGATEWAY_BIND=127.0.0.1(pour que la passerelle ne soit pas exposée en HTTP simple),GATEWAY_PUBLIC_URL=https://sms.example.com(l'adresse HTTPS servie par votre serveur web) etGATEWAY_INSECURE_COOKIES=false, puissms-gateway restart. - Configurez votre serveur web pour relayer
https://sms.example.comvershttp://127.0.0.1:8080, avec deux exigences : le flux en direct/eventsne doit pas être mis en tampon, et la connexion des téléphones/ws/deviceest un WebSocket, que votre serveur doit laisser passer (en-têtesUpgradeetConnection). - Réglez
GATEWAY_TRUSTED_PROXIESdans.envsur l'adresse depuis laquelle la passerelle voit votre serveur web. Sans cela, tous les visiteurs semblent venir de la même adresse, et ils partagent tous les mêmes blocages de connexion et limites de débit.
Ne relancez pas ensuite l'installeur avec
--lan: il réécrirait l'adresse sous la forme.local. Les mises à jour parsms-gateway updateconservent vos réglages. - Installez avec
8. Sauvegarder hors de la machine
Toute l'installation vit dans son dossier de données : la base, la clé maîtresse et les sauvegardes
faites depuis le tableau de bord. sms-gateway backup en écrit une archive dans le dossier courant,
en arrêtant la passerelle les quelques secondes de la copie.
La passerelle sauvegarde aussi sa base automatiquement, chaque jour à 03:00 dans le fuseau de la plateforme, sept copies conservées (Paramètres > Sauvegarde et export). Ces copies restent dans le dossier de données, sur le même disque.
Copiez régulièrement une sauvegarde hors de la machine (un autre serveur, un stockage objet) :
une sauvegarde qui reste sur le disque qu'elle protège ne survit pas à la perte de ce disque.
Téléchargez une sauvegarde automatique depuis le tableau de bord, ou lancez sms-gateway backup et
copiez l'archive ; supprimez de temps en temps les anciennes archives, car la commande les garde
toutes. Voir Sauvegarde et restauration.
Deux avertissements importants. L'archive contient la clé maîtresse et la base : qui la détient détient tout. Chiffrez-la avant de l'envoyer ailleurs. Détails dans Sauvegarde et restauration.
9. VPS ou Oracle Cloud
| Sujet | VPS loué | Oracle Cloud Always Free |
|---|---|---|
| Coût | Facturé chaque mois | Gratuit |
| Processeur | Le plus souvent amd64 |
arm64 sur les instances Ampere A1. Les deux fonctionnent |
| Pare-feu | ufw sur la machine, parfois aussi un pare-feu de l'hébergeur |
Le filtrage réseau d'Oracle et le pare-feu de l'instance |
| Ressources | Ce que vous payez, et extensibles | Un plafond fixe |
| Récupération | Jamais, tant que vous payez | Oracle peut récupérer une instance qu'il juge inactive |
Voir Oracle Cloud Always Free.
Pages liées
| Vous voulez | Allez à |
|---|---|
| Le parcours complet | Installation |
| Sauvegarder et restaurer | Sauvegarde et restauration |
| Passer sur un autre serveur | Migrer vers un autre serveur |
| Savoir ce qui protège vos données | Sécurité |