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)
- Crea una VM: Ubuntu 24.04 LTS (o Debian),
e2-small(2 GB) è sufficiente per iniziare. Scegli una regione vicina ai tuoi utenti. - Regola firewall: consenti TCP in ingresso
8080(e443per TLS). Sotto Rete → Firewall, crea una regola con i tag di destinazione assegnati alla VM. - 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- Riserva un IP statico (IP esterno → Prenota) in modo che
public_urlresti valido dopo i riavvii. - Verifica:
sh
curl http://<external-ip>:8080/health- 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):
- Crea un servizio dal repo GitHub (oppure invia l’immagine su Artifact Registry).
- Porta: imposta la porta del container su
8080. - Alloca memoria: almeno 512 MB (LMDB + runtime asincrono).
- Storage persistente: collega un volume Cloud Run (filestore/gcsfuse) su
/data— LMDB ha bisogno di un filesystem, quindi un montaggio GCS FUSE su/datagarantisce la persistenza. - TLS: Cloud Run fornisce
https://automaticamente — impostarelay.public_url = "wss://<service>.a.run.app"(o il tuo dominio personalizzato).