Déployer sur DigitalOcean

Déployez nostrfy sur un Droplet DigitalOcean ou sur App Platform — étape par étape, avec systemd, TLS et une configuration prête pour la production.

Deux options : un Droplet (VM, le plus simple) ou App Platform (conteneurs).

Option 1 : Droplet (recommandé)

  1. Créer un Droplet : Ubuntu 24.04 LTS, n’importe quelle taille (1 Go de RAM suffit pour commencer). Un Droplet dans une région proche de vos utilisateurs réduit la latence.
  2. Connectez-vous en SSH et suivez le guide VPS générique :
sh
ssh root@<droplet-ip>
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
sudo mkdir -p /etc/nostrfy
sudo curl -fsSL -o /etc/nostrfy/nostrfy.toml \
  https://raw.githubusercontent.com/iqbqioza/nostrfy/main/deploy/nostrfy.toml
sudo nano /etc/nostrfy/nostrfy.toml                 # définissez name, public_url, private_key
sudo curl -fsSL -o /etc/systemd/system/nostrfy.service \
  https://raw.githubusercontent.com/iqbqioza/nostrfy/main/deploy/nostrfy.service
sudo systemctl daemon-reload
sudo systemctl enable --now nostrfy
  1. Ouvrez le port dans le pare-feu du Droplet (le DigitalOcean Cloud Firewall est recommandé) : autorisez le TCP entrant 8080 (et 443 si vous ajoutez TLS).
  2. Vérifiez :
sh
curl http://<droplet-ip>:8080/health
  1. Ajoutez TLS (wss://) avec certbot + nginx, ou l’équilibreur de charge managé de DigitalOcean avec un certificat — puis définissez relay.public_url = "wss://relay.example.com" et redémarrez.

Option 2 : App Platform (conteneur)

App Platform construit à partir du Dockerfile du dépôt (qui télécharge le binaire de release précompilé) :

  1. Connectez votre dépôt GitHub et créez une app à partir de celui-ci.
  2. Port : définissez le port HTTP sur 8080 (le relais y écoute).
  3. Disque persistant : montez un volume sur /data (les données LMDB y résident — sans lui, les données sont perdues à chaque déploiement).
  4. Env : le fichier deploy/nostrfy.container.toml intégré à l’image peut être remplacé en montant votre propre configuration sur /etc/nostrfy/nostrfy.toml (créez un fork qui le copie, ou utilisez un COPY dans le Dockerfile de votre propre dépôt).
  5. TLS : App Platform fournit https:// automatiquement pour le domaine de l’app — définissez relay.public_url en conséquence.

Les deux options

  • Mises à jour : réexécutez install.sh + systemctl restart nostrfy (Droplet), ou poussez vers le dépôt connecté (App Platform).
  • Toute la configuration est documentée dans la référence de configuration.