Distribuzione su Google Cloud

Distribuisci nostrfy su Google Cloud Compute Engine o Cloud Run — passo dopo passo, con systemd, TLS e le avvertenze sullo scale-to-zero.

Opzioni: Compute Engine (VM, consigliata) o Cloud Run (container).

Opzione 1: Compute Engine (consigliata)

  1. Crea una VM: Ubuntu 24.04 LTS (o Debian), e2-small (2 GB) è sufficiente per iniziare. Scegli una regione vicina ai tuoi utenti.
  2. Regola firewall: consenti TCP in ingresso 8080 (e 443 per TLS). Sotto Rete → Firewall, crea una regola con i tag di destinazione assegnati alla VM.
  3. Connettiti via SSH (funziona il pulsante SSH della console) e segui la guida VPS generica:
sh
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. Riserva un IP statico (IP esterno → Prenota) in modo che public_url resti valido dopo i riavvii.
  2. Verifica:
sh
curl http://<external-ip>:8080/health
  1. Aggiungi TLS (wss://) con certbot + nginx (come nella guida VPS) o un load balancer GCP con un certificato gestito.

Opzione 2: Cloud Run (container)

Cloud Run compila dal Dockerfile del repository (che scarica il binario precompilato della release):

  1. Crea un servizio dal repo GitHub (oppure invia l’immagine su Artifact Registry).
  2. Porta: imposta la porta del container su 8080.
  3. Alloca memoria: almeno 512 MB (LMDB + runtime asincrono).
  4. Storage persistente: collega un volume Cloud Run (filestore/gcsfuse) su /data — LMDB ha bisogno di un filesystem, quindi un montaggio GCS FUSE su /data garantisce la persistenza.
  5. TLS: Cloud Run fornisce https:// automaticamente — imposta relay.public_url = "wss://<service>.a.run.app" (o il tuo dominio personalizzato).
Cloud Run scala a zero per impostazione predefinita
Per un relay, imposta min instances = 1 in modo che non venga mai sospeso per inattività. Il file deploy/nostrfy.container.toml integrato nell’immagine può essere sostituito montando il tuo nostrfy.toml su /etc/nostrfy/nostrfy.toml.