Desplegar en DigitalOcean

Despliega nostrfy en un Droplet de DigitalOcean o en App Platform — paso a paso, con systemd, TLS y una configuración lista para producción.

Dos opciones: un Droplet (VM, lo más sencillo) o App Platform (contenedores).

Opción 1: Droplet (recomendado)

  1. Crea un Droplet: Ubuntu 24.04 LTS, cualquier tamaño (1 GB de RAM es suficiente para empezar). Un Droplet en una región cercana a tus usuarios reduce la latencia.
  2. Conéctate por SSH y sigue la guía genérica de VPS:
sh
ssh root@<droplet-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. Abre el puerto en el firewall del Droplet (se recomienda DigitalOcean Cloud Firewall): permite el TCP entrante 8080 (y 443 si añades TLS).
  2. Verifica:
sh
curl http://<droplet-ip>:8080/health
  1. Añade TLS (wss://) con certbot + nginx, o el balanceador de carga gestionado de DigitalOcean con un certificado — luego establece relay.public_url = "wss://relay.example.com" y reinicia.

Opción 2: App Platform (contenedor)

App Platform compila desde el Dockerfile del repositorio (que descarga el binario de release precompilado):

  1. Conecta tu repositorio de GitHub y crea una app a partir de él.
  2. Puerto: establece el puerto HTTP en 8080 (el relé escucha allí).
  3. Disco persistente: monta un volumen en /data (los datos LMDB viven allí — sin él, los datos se pierden en cada despliegue).
  4. Env: el archivo deploy/nostrfy.container.toml incluido en la imagen puede reemplazarse montando tu propia configuración en /etc/nostrfy/nostrfy.toml (crea un fork que lo copie, o usa un COPY en el Dockerfile de tu propio repo).
  5. TLS: App Platform proporciona https:// automáticamente para el dominio de la app — establece relay.public_url en consecuencia.

Ambas opciones

  • Actualizaciones: vuelve a ejecutar install.sh + systemctl restart nostrfy (Droplet), o haz push al repositorio conectado (App Platform).
  • Toda la configuración está documentada en la referencia de configuración.