Desplegar en Azure

Despliega nostrfy en una VM de Azure o en Azure Container Apps — paso a paso, con systemd, TLS y las advertencias de las IP públicas dinámicas.

Opciones: VM (recomendado) o Container Apps.

Opción 1: Máquina virtual (recomendado)

  1. Crea una VM: Ubuntu 24.04 LTS, Standard_B1s (1 GB) o Standard_B2s (2 GB) para empezar. Elige una región cercana a tus usuarios.
  2. Grupo de seguridad de red (NSG): añade una regla de entrada para TCP 8080 (y 443 para TLS). Restringe la regla SSH a tu IP.
  3. Conéctate por SSH y sigue la guía genérica de VPS:
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                 # configura name, public_url y private_key
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. Verifica:
sh
curl http://<public-ip>:8080/health
  1. Añade TLS (wss://) con certbot + nginx (como en la guía de VPS) o con un Application Gateway de Azure con certificado.
La IP pública de una VM de Azure puede cambiar al desasignarla
Usa una IP pública estática para que relay.public_url siga siendo válido.

Opción 2: Azure Container Apps

Container Apps se construye desde el Dockerfile del repositorio (que descarga el binario release precompilado):

  1. Crea una Container App desde el repositorio de GitHub (o sube la imagen a ACR).
  2. Puerto: establece el puerto del contenedor en 8080.
  3. Memoria: al menos 1 GB.
  4. Almacenamiento persistente: monta un recurso compartido de archivos de Azure Storage en /data para los datos LMDB.
  5. TLS: Container Apps proporciona https:// en la URL de la app — establece relay.public_url = "wss://<app>.<region>.azurecontainerapps.io" (o un dominio personalizado).
Un relé nunca debe escalar a cero
Establece min replicas = 1. El deploy/nostrfy.container.toml incluido puede reemplazarse montando tu propio nostrfy.toml en /etc/nostrfy/nostrfy.toml.