Bereitstellung auf Google Cloud

nostrfy auf Google Cloud Compute Engine oder Cloud Run bereitstellen — Schritt für Schritt, mit systemd, TLS und den Scale-to-Zero-Hinweisen.

Optionen: Compute Engine (VM, empfohlen) oder Cloud Run (Container).

Option 1: Compute Engine (empfohlen)

  1. VM erstellen: Ubuntu 24.04 LTS (oder Debian), e2-small (2 GB) reicht für den Anfang. Wählen Sie eine Region in der Nähe Ihrer Nutzer.
  2. Firewall-Regel: eingehendes TCP 8080 (und 443 für TLS) erlauben. Unter Netzwerk → Firewall eine Regel mit den Ziel-Tags erstellen, die Sie der VM zugewiesen haben.
  3. Per SSH verbinden (der SSH-Button der Konsole funktioniert) und der allgemeinen VPS-Anleitung folgen:
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                 # name, public_url, private_key setzen
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. Statische IP reservieren (Externe IP → Reservieren), damit public_url auch nach Neustarts gültig bleibt.
  2. Überprüfen:
sh
curl http://<external-ip>:8080/health
  1. TLS (wss://) hinzufügen mit certbot + nginx (wie in der VPS-Anleitung) oder einem GCP-Load-Balancer mit verwaltetem Zertifikat.

Option 2: Cloud Run (Container)

Cloud Run baut aus dem Dockerfile des Repositories (das das vorgebaute Release-Binary herunterlädt):

  1. Service aus dem GitHub-Repo erstellen (oder das Image in die Artifact Registry pushen).
  2. Port: Container-Port auf 8080 setzen.
  3. Speicher zuweisen: mindestens 512 MB (LMDB + Async-Runtime).
  4. Persistenter Speicher: ein Cloud-Run-Volume (filestore/gcsfuse) unter /data einhängen — LMDB benötigt ein Dateisystem, daher eignet sich ein GCS-FUSE-Mount unter /data für die Persistenz.
  5. TLS: Cloud Run stellt https:// automatisch bereit — setzen Sie relay.public_url = "wss://<service>.a.run.app" (oder Ihre eigene Domain).
Cloud Run skaliert standardmäßig auf null
Für ein Relay min instances = 1 setzen, damit es nie kalt wird. Die ins Image eingebettete deploy/nostrfy.container.toml kann ersetzt werden, indem Sie Ihre eigene nostrfy.toml unter /etc/nostrfy/nostrfy.toml mounten.