Bereitstellungsübersicht

Wie nostrfy verteilt wird und wie man es bereitstellt — Fly.io, AWS, Google Cloud, Azure, DigitalOcean oder ein beliebiger VPS, mit Hinweisen zu TLS, systemd und Containern.

Ein Binary, mehrere Plattformen

nostrfy liefert vorgefertigte Binaries für x86_64 und aarch64 (GitHub-Release-Artefakte, per Prüfsumme durch install.sh verifiziert), ein Container-Image, das diese Binaries herunterlädt (keine Kompilierung nötig), sowie Bereitstellungsanleitungen für die wichtigsten Plattformen.

Plattformen

PlattformTypAnleitung
Fly.ioVerwaltete Plattform (Container, Volumes, TLS)fly.md
Digital OceanDroplet (VM) oder App Platformdeploy/digitalocean.md
AWSEC2 (VM), Lightsail oder ECSdeploy/aws.md
Google CloudCompute Engine (VM) oder Cloud Rundeploy/gcp.md
AzureVM oder Container Appsdeploy/azure.md
Beliebiger VPSEinfacher Ubuntu/Debian-Serverdeploy/vps.md

Das gängige Muster für VMs

Alle VM-Anleitungen (Digital Ocean, AWS EC2, GCP, Azure, beliebiger VPS) folgen demselben Muster:

sh
# 1. Neuestes Release-Binary installieren (für die Installation selbst ist kein sudo nötig)
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh

# 2. Konfigurationsvorlage laden und bearbeiten (kein Repository-Klon nötig)
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

# 3. systemd-Unit laden und Dienst starten
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. Port (in der Regel 8080) in der Firewall des Anbieters öffnen und prüfen
curl http://localhost:8080/health

Vor dem Go-Live

Jede Bereitstellung verwendet dieselben nostrfy.toml-Optionen. Stellen Sie vor dem Go-Live mindestens Folgendes ein:

toml
[relay]
name = "My Relay"
public_url = "wss://relay.example.com"   # erforderlich für NIP-42 AUTH / NIP-62 / NIP-98
private_key = ""                          # 'nostrfy genkey' ausführen und Schlüssel einfügen

VM oder Container?

  • VM (systemd): am einfachsten, am günstigsten, volle Kontrolle. Für die meisten Relay-Bereitstellungen empfohlen.
  • Container: Verwende das Dockerfile aus dem Repository (lädt das Release-Binary zur Build-Zeit herunter) auf Fly.io, Digital Ocean App Platform, AWS ECS, GCP Cloud Run oder Azure Container Apps. Für die LMDB-Daten (/data) ist persistenter Speicher erforderlich.

Blossom-Medienhost

Wenn blossom.host gesetzt ist, leite diesen Hostnamen ebenfalls auf denselben Port im TLS-Proxy (siehe die nginx/Caddy-Blöcke in der VPS-Anleitung).

TLS wird von Ihrem Proxy oder dem Anbieter terminiert
Das Relay selbst liefert plain WebSocket auf 8080 und beachtet X-Forwarded-Proto.