Distribuzione su Azure

Distribuisci nostrfy su una VM di Azure o su Azure Container Apps — passo dopo passo, con systemd, TLS e le avvertenze degli IP pubblici dinamici.

Opzioni: VM (consigliata) oppure Container Apps.

Opzione 1: Macchina virtuale (consigliata)

  1. Crea una VM: Ubuntu 24.04 LTS, Standard_B1s (1 GB) oppure Standard_B2s (2 GB) per iniziare. Scegli una regione vicina ai tuoi utenti.
  2. Gruppo di sicurezza di rete (NSG): aggiungi una regola in ingresso per TCP 8080 (e 443 per TLS). Limita la regola SSH al tuo IP.
  3. Connettiti via SSH e segui la guida VPS generica:
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                 # imposta 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. Verifica:
sh
curl http://<public-ip>:8080/health
  1. Aggiungi TLS (wss://) con certbot + nginx (come nella guida VPS) oppure con un Application Gateway di Azure con certificato.
L’IP pubblico di una VM di Azure può cambiare alla deallocazione
Usa un IP pubblico statico in modo che relay.public_url resti valido.

Opzione 2: Azure Container Apps

Container Apps compila dal Dockerfile del repository (che scarica il binario release precompilato):

  1. Crea una Container App dal repository GitHub (oppure invia l’immagine ad ACR).
  2. Porta: imposta la porta del contenitore su 8080.
  3. Memoria: almeno 1 GB.
  4. Archiviazione persistente: monta una condivisione file di Azure Storage su /data per i dati LMDB.
  5. TLS: Container Apps fornisce https:// sull’URL dell’app — imposta relay.public_url = "wss://<app>.<region>.azurecontainerapps.io" (oppure un dominio personalizzato).
Un relay non deve mai scalare a zero
Imposta min replicas = 1. Il file integrato deploy/nostrfy.container.toml può essere sostituito montando il tuo nostrfy.toml su /etc/nostrfy/nostrfy.toml.