Déployer sur Azure

Déployez nostrfy sur une VM Azure ou Azure Container Apps — étape par étape, avec systemd, TLS et les particularités des IP publiques dynamiques.

Options : VM (recommandé) ou Container Apps.

Option 1 : Machine virtuelle (recommandé)

  1. Créer une VM : Ubuntu 24.04 LTS, Standard_B1s (1 Go) ou Standard_B2s (2 Go) pour commencer. Choisissez une région proche de vos utilisateurs.
  2. Groupe de sécurité réseau (NSG) : ajoutez une règle entrante pour TCP 8080 (et 443 pour TLS). Restreignez la règle SSH à votre IP.
  3. Connectez-vous en SSH et suivez le guide VPS générique :
sh
ssh <user>@<public-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. Vérifiez :
sh
curl http://<public-ip>:8080/health
  1. Ajoutez TLS (wss://) avec certbot + nginx (comme dans le guide VPS) ou avec une Application Gateway Azure et un certificat.
L’IP publique d’une VM Azure peut changer lors de la désallocation
Utilisez une IP publique statique pour que relay.public_url reste valide.

Option 2 : Azure Container Apps

Container Apps se construit à partir du Dockerfile du dépôt (qui télécharge le binaire release précompilé) :

  1. Créez une Container App depuis le dépôt GitHub (ou poussez l’image vers ACR).
  2. Port : définissez le port du conteneur sur 8080.
  3. Mémoire : au moins 1 Go.
  4. Stockage persistant : montez un partage de fichiers Azure Storage sur /data pour les données LMDB.
  5. TLS : Container Apps fournit https:// sur l’URL de l’app — définissez relay.public_url = "wss://<app>.<region>.azurecontainerapps.io" (ou un domaine personnalisé).
Un relais ne doit jamais retomber à zéro
Définissez min replicas = 1. Le fichier intégré deploy/nostrfy.container.toml peut être remplacé en montant votre propre nostrfy.toml sur /etc/nostrfy/nostrfy.toml.