Bereitstellung auf AWS

nostrfy auf AWS EC2, Lightsail oder ECS/Fargate bereitstellen — Schritt für Schritt, mit systemd, TLS hinter einem Reverse-Proxy und einer Produktions-Checkliste.

Optionen: EC2 (VM, empfohlen), Lightsail (einfachere VM) oder ECS/Fargate (Container).

Option 1: EC2 (empfohlen)

  1. Instanz starten: Amazon Linux 2023 oder Ubuntu 24.04 LTS, t3.small (2 GB RAM) reicht für den Anfang. Wählen Sie eine Region in der Nähe Ihrer Nutzer.
  2. Sicherheitsgruppe: eingehendes TCP 8080 (und 443 für TLS) erlauben. Begrenzen Sie die SSH-Regel auf Ihre IP.
  3. Per SSH verbinden und der allgemeinen VPS-Anleitung folgen:
sh
ssh -i your-key.pem ec2-user@<public-ip>        # Unter Ubuntu: ubuntu@<public-ip>
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. Überprüfen:
sh
curl http://<public-ip>:8080/health
  1. TLS (wss://) hinzufügen mit certbot + nginx (wie in der VPS-Anleitung) oder mit einem Application/Network Load Balancer mit ACM-Zertifikat — dann relay.public_url setzen und neu starten.

Option 2: Lightsail

Lightsail-Instanzen funktionieren genau wie in der EC2-Anleitung — der Networking-Tab enthält die Firewall-Regeln: TCP 8080 öffnen.

Option 3: ECS / Fargate (Container)

Das Dockerfile im Repository lädt beim Build das vorgefertigte Release-Binary herunter:

  1. Image nach ECR pushen:
    sh
    docker buildx build --platform linux/amd64,linux/arm64 -t <account>.dkr.ecr.<region>.amazonaws.com/nostrfy .
  2. Einen ECS-Service (Fargate, 1 Task) mit gemountetem EFS-Volume unter /data erstellen (LMDB-Persistenz — ohne sie gehen Daten bei erneuten Bereitstellungen verloren).
  3. Port 8080 exponieren; davor einen ALB + ACM-Zertifikat für TLS schalten.
  4. Die eingebettete Konfiguration deploy/nostrfy.container.toml kann überschrieben werden, indem Sie Ihre eigene nostrfy.toml unter /etc/nostrfy/nostrfy.toml mounten (z. B. ein Fork, der sie ins Image kopiert).

Elastic IP

Weisen Sie der Instanz eine Elastic IP zu, wenn Sie sie stoppen/starten — sonst ändert sich die öffentliche IP und public_url bricht.

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