← Tous les guidesAuto-hébergement

Exécuter un serveur de chat Stoat privé sur votre domaine

Utilisez des scripts pour sécuriser un nouveau Droplet DigitalOcean, installer la pile Docker Compose officielle de Stoat, puis prouver le fonctionnement du client web avant d'inviter quelqu'un.

Dépôt GitHub compagnonRunbook compagnon pour Droplet StoatTylorMayfield/stoat-droplet-runbookVoir sur GitHub

Créez le Droplet et le firewall

Créez un Droplet Ubuntu neuf avec au moins deux vCPU et 2 Go de RAM. Ajoutez une clé SSH pendant la création. Créez ensuite un Cloud Firewall, attachez-le à ce Droplet et pointez un nom comme chat.example.com vers son IPv4 public. C'est un déploiement Docker Compose, pas une app App Platform ni une démo à un seul conteneur.

  • TCP 22 depuis votre adresse IP publique ou VPN seulement.
  • TCP 80 et 443 depuis partout pour le client web et les certificats HTTPS.
  • TCP 7881 et UDP 50000 à 50100 depuis partout seulement si vous voulez les appels LiveKit.
  • Ne donnez pas de ports hôte publics à MongoDB, Valkey, RabbitMQ, MinIO ou Docker.

Attachez le firewall avant de vous connecter

Dans le formulaire Cloud Firewall, créez les règles entrantes ci-dessous puis choisissez ce serveur dans Appliquer aux Droplets. Gardez les règles sortantes par défaut qui autorisent tout. Les deux règles d'appel sont facultatives. Ne les ajoutez pas si votre communauté n'utilisera pas les appels.

Liste des règles Cloud Firewall : SSH restreint, HTTP et HTTPS publics, ports d'appel LiveKit facultatifs, et Droplet Stoat choisi pour l'attachement.
Une liste compacte pour le formulaire DigitalOcean. Le firewall doit être attaché au Droplet.

Vérifier la première réponse

Résultat attendu
Le nom public répond en HTTPS, Compose indique les services attendus et un navigateur séparé réalise un test inoffensif du client web sans exposer un service interne.
Arrêter si
Arrêtez si SSH est ouvert à Internet, si un service de données a un port hôte, si le DNS ne pointe pas vers le Droplet, si un certificat échoue, si un secret apparaît dans la sortie ou si un port LiveKit est ouvert sans plan de test d'appel délibéré.
Étape suivante
Sauvegardez la configuration et les données persistantes, testez une restauration loin de la production, puis notez le commit du dépôt et les versions d'images avant d'inviter des utilisateurs.

Connectez-vous, sécurisez, puis installez

Utilisez l'adresse IPv4 publique du Droplet depuis le tableau de bord DigitalOcean. Le script de sécurité met Ubuntu à jour et désactive la connexion SSH par mot de passe seulement s'il trouve une clé SSH root. Gardez ce terminal ouvert puis confirmez qu'une seconde connexion SSH marche. Le précontrôle ne change rien. Le script d'installation exige --apply, refuse d'écraser /opt/stoat et ouvre le générateur de configuration de Stoat.

Droplet connecté4 étapes

Avant de continuer : Cette procédure met Ubuntu à jour et désactive la connexion SSH par mot de passe après avoir confirmé l'existence d'une clé SSH root. Gardez la première session ouverte et testez une seconde connexion.

  1. Se connecter au Droplet
    Modifier d’abordRemplacez chaque valeur surlignée avant d’exécuter la commande.
    ssh root@YOUR_DROPLET_IP

    Remplacez avant l’exécution : YOUR_DROPLET_IP

  2. Cloner le runbook
    git clone https://github.com/TylorMayfield/stoat-droplet-runbook.git
  3. Ouvrir le runbook
    cd stoat-droplet-runbook
  4. Mettre Ubuntu à jour et désactiver les mots de passe SSH
    sudo ./scripts/harden-host.sh --apply
Droplet connecté3 étapes

Avant de continuer : Cette procédure installe Docker et écrit les secrets Stoat sur un nouveau serveur. Confirmez le Cloud Firewall et le DNS avant l'installation finale.

  1. Ouvrir le runbook
    cd ~/stoat-droplet-runbook
  2. Vérifier Ubuntu et le DNS
    Modifier d’abordRemplacez chaque valeur surlignée avant d’exécuter la commande.
    sudo ./scripts/preflight.sh chat.example.com

    Remplacez avant l’exécution : chat.example.com

  3. Installer la pile Stoat officielle
    Modifier d’abordRemplacez chaque valeur surlignée avant d’exécuter la commande.
    sudo ./scripts/install-official-stoat.sh --apply chat.example.com

    Remplacez avant l’exécution : chat.example.com

Démarrez une fois puis vérifiez HTTPS

Le générateur crée secrets.env. Sauvegardez-le avant de démarrer le service. Démarrez au premier plan, lisez les erreurs éventuelles, arrêtez avec Ctrl+C puis lancez la commande en arrière-plan. Le script de vérification contrôle la configuration Compose, les services actifs et HTTPS public sans afficher les secrets. Il ne prouve pas encore que l'app web marche.

Droplet connecté4 étapes

Avant de continuer : La commande au premier plan démarre toute la pile Stoat. Lisez sa sortie avant de l'arrêter et de lancer le service en arrière-plan.

  1. Ouvrir la pile installée
    cd /opt/stoat
  2. Démarrer une fois au premier plan
    sudo docker compose up
  3. Démarrer en arrière-plan
    sudo docker compose up -d
  4. Vérifier HTTPS public
    Modifier d’abordRemplacez chaque valeur surlignée avant d’exécuter la commande.
    sudo ~/stoat-droplet-runbook/scripts/verify-stoat.sh chat.example.com

    Remplacez avant l’exécution : chat.example.com

Faites un seul petit test réel

Ouvrez https://chat.example.com dans un profil navigateur séparé. Créez un compte de test, envoyez un message inoffensif et téléversez un fichier jetable si le stockage est activé. Si vous avez activé les appels, testez depuis un second réseau. Une page HTTPS verte ne prouve pas les ports d'appel.

Utilisez le client navigateur ou installez-le comme PWA. La plupart des clients officiels Stoat ne prennent pas en charge les instances auto-hébergées. Arrêtez si un service interne est public, si le certificat échoue, si des secrets apparaissent dans la sortie ou si vous ne pouvez pas expliquer un port ouvert. Lisez les avis officiels de Stoat avant toute mise à jour.