Distribuzione su DigitalOcean

Distribuisci nostrfy su un Droplet DigitalOcean o su App Platform — passo dopo passo, con systemd, TLS e una configurazione pronta per la produzione.

Due opzioni: un Droplet (VM, il più semplice) o App Platform (container).

Opzione 1: Droplet (consigliato)

  1. Crea un Droplet: Ubuntu 24.04 LTS, qualsiasi dimensione (1 GB di RAM è sufficiente per iniziare). Un Droplet in una regione vicina ai tuoi utenti riduce la latenza.
  2. Accedi via SSH e segui la guida VPS generica:
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                 # 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. Apri la porta nel firewall del Droplet (è consigliato il DigitalOcean Cloud Firewall): consenti il TCP in ingresso 8080 (e 443 se aggiungi TLS).
  2. Verifica:
sh
curl http://<droplet-ip>:8080/health
  1. Aggiungi TLS (wss://) con certbot + nginx, oppure il load balancer gestito di DigitalOcean con un certificato — quindi imposta relay.public_url = "wss://relay.example.com" e riavvia.

Opzione 2: App Platform (container)

App Platform compila dal Dockerfile del repository (che scarica il binario di release precompilato):

  1. Collega il tuo repository GitHub e crea un’app da esso.
  2. Porta: imposta la porta HTTP su 8080 (il relay è in ascolto lì).
  3. Disco persistente: monta un volume su /data (i dati LMDB risiedono lì — senza di esso, i dati vengono persi a ogni distribuzione).
  4. Configurazione: il file deploy/nostrfy.container.toml integrato nell’immagine può essere sostituito montando la tua configurazione su /etc/nostrfy/nostrfy.toml (crea un fork che lo copia, oppure usa un COPY nel Dockerfile del tuo repository).
  5. TLS: App Platform fornisce https:// automaticamente per il dominio dell’app — imposta relay.public_url di conseguenza.

Entrambe le opzioni

  • Aggiornamenti: riesegui install.sh + systemctl restart nostrfy (Droplet), oppure fai push al repository collegato (App Platform).
  • Tutta la configurazione è documentata nel riferimento di configurazione.