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)
- 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.
- 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- Abre el puerto en el firewall del Droplet (se recomienda DigitalOcean Cloud Firewall): permite el TCP entrante
8080(y443si añades TLS). - Verifica:
sh
curl http://<droplet-ip>:8080/health- Añade TLS (
wss://) con certbot + nginx, o el balanceador de carga gestionado de DigitalOcean con un certificado — luego establecerelay.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):
- Conecta tu repositorio de GitHub y crea una app a partir de él.
- Puerto: establece el puerto HTTP en
8080(el relé escucha allí). - Disco persistente: monta un volumen en
/data(los datos LMDB viven allí — sin él, los datos se pierden en cada despliegue). - Env: el archivo
deploy/nostrfy.container.tomlincluido en la imagen puede reemplazarse montando tu propia configuración en/etc/nostrfy/nostrfy.toml(crea un fork que lo copie, o usa unCOPYen el Dockerfile de tu propio repo). - TLS: App Platform proporciona
https://automáticamente para el dominio de la app — establecerelay.public_urlen 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.