Panoramica sulla distribuzione

Come è distribuito nostrfy e come distribuirlo — Fly.io, AWS, Google Cloud, Azure, DigitalOcean o qualsiasi VPS, con note su TLS, systemd e container.

Un binario, più piattaforme

nostrfy fornisce binari precompilati per x86_64 e aarch64 (artefatti delle release GitHub, verificati tramite checksum da install.sh), un’immagine container che scarica tali binari (nessuna compilazione richiesta) e guide di distribuzione per le principali piattaforme.

Piattaforme

PiattaformaTipoGuida
Fly.ioPiattaforma gestita (container, volumi, TLS)fly.md
Digital OceanDroplet (VM) o App Platformdeploy/digitalocean.md
AWSEC2 (VM), Lightsail o ECSdeploy/aws.md
Google CloudCompute Engine (VM) o Cloud Rundeploy/gcp.md
AzureVM o Container Appsdeploy/azure.md
Qualsiasi VPSSemplice server Ubuntu/Debiandeploy/vps.md

Il modello comune per le VM

Tutte le guide per VM (Digital Ocean, AWS EC2, GCP, Azure, qualsiasi VPS) seguono lo stesso modello:

sh
# 1. Installa l'ultimo binario della release (non serve sudo per l'installazione stessa)
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh

# 2. Scarica il modello di configurazione e modificalo (non serve clonare il repository)
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

# 3. Scarica l'unità systemd e avvia il servizio
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

# 4. Apri la porta (di solito 8080) nel firewall del provider e verifica
curl http://localhost:8080/health

Prima di andare in produzione

Ogni distribuzione usa le stesse opzioni di nostrfy.toml. Prima di andare in produzione, imposta almeno:

toml
[relay]
name = "My Relay"
public_url = "wss://relay.example.com"   # obbligatorio per NIP-42 AUTH / NIP-62 / NIP-98
private_key = ""                          # esegui 'nostrfy genkey' e incolla la chiave

VM o container?

  • VM (systemd): più semplice, più economica, controllo completo. Consigliata per la maggior parte delle distribuzioni di relay.
  • Container: usa il Dockerfile del repository (scarica il binario della release al momento della build) su Fly.io, Digital Ocean App Platform, AWS ECS, GCP Cloud Run o Azure Container Apps. È richiesto storage persistente per i dati LMDB (/data).

Host multimediale Blossom

Se blossom.host è impostato, punta quell’hostname alla stessa porta anche nel proxy TLS (vedi i blocchi nginx/Caddy nella guida VPS).

TLS è terminato dal tuo proxy o dal provider
Il relay di per sé serve WebSocket in chiaro sulla porta 8080 e rispetta X-Forwarded-Proto.