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
| Plattform | Typ | Anleitung |
|---|---|---|
| Fly.io | Verwaltete Plattform (Container, Volumes, TLS) | fly.md |
| Digital Ocean | Droplet (VM) oder App Platform | deploy/digitalocean.md |
| AWS | EC2 (VM), Lightsail oder ECS | deploy/aws.md |
| Google Cloud | Compute Engine (VM) oder Cloud Run | deploy/gcp.md |
| Azure | VM oder Container Apps | deploy/azure.md |
| Beliebiger VPS | Einfacher Ubuntu/Debian-Server | deploy/vps.md |
Das gängige Muster für VMs
Alle VM-Anleitungen (Digital Ocean, AWS EC2, GCP, Azure, beliebiger VPS) folgen demselben Muster:
# 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/healthVor dem Go-Live
Jede Bereitstellung verwendet dieselben nostrfy.toml-Optionen. Stellen Sie vor dem Go-Live mindestens Folgendes ein:
[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ügenVM oder Container?
- VM (systemd): am einfachsten, am günstigsten, volle Kontrolle. Für die meisten Relay-Bereitstellungen empfohlen.
- Container: Verwende das
Dockerfileaus 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).