Bereitstellung auf Azure

nostrfy auf einer Azure-VM oder in Azure Container Apps bereitstellen — Schritt für Schritt, mit systemd, TLS und den Besonderheiten dynamischer öffentlicher IPs.

Optionen: VM (empfohlen) oder Container Apps.

Option 1: Virtuelle Maschine (empfohlen)

  1. VM erstellen: Ubuntu 24.04 LTS, Standard_B1s (1 GB) oder Standard_B2s (2 GB) zum Start. Wählen Sie eine Region in der Nähe Ihrer Nutzer.
  2. Netzwerksicherheitsgruppe (NSG): Fügen Sie eine eingehende Regel für TCP 8080 (und 443 für TLS) hinzu. Beschränken Sie die SSH-Regel auf Ihre IP.
  3. Per SSH verbinden und der allgemeinen VPS-Anleitung folgen:
sh
ssh <user>@<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 Azure Application Gateway mit Zertifikat.
Die öffentliche IP einer Azure-VM kann sich bei Freigabe ändern
Verwenden Sie eine statische öffentliche IP, damit relay.public_url gültig bleibt.

Option 2: Azure Container Apps

Container Apps baut aus dem Dockerfile des Repositorys (das das vorgebaute Release-Binary herunterlädt):

  1. Container App erstellen aus dem GitHub-Repo (oder pushen Sie das Image nach ACR).
  2. Port: Setzen Sie den Container-Port auf 8080.
  3. Arbeitsspeicher: mindestens 1 GB.
  4. Persistenter Speicher: Binden Sie eine Azure-Storage-Dateifreigabe unter /data für die LMDB-Daten ein.
  5. TLS: Container Apps stellt https:// auf der App-URL bereit — setzen Sie relay.public_url = "wss://<app>.<region>.azurecontainerapps.io" (oder eine eigene Domain).
Ein Relay darf niemals auf null skalieren
Setzen Sie min replicas = 1. Das mitgelieferte deploy/nostrfy.container.toml kann ersetzt werden, indem Sie Ihre eigene nostrfy.toml unter /etc/nostrfy/nostrfy.toml einbinden.