Resumen de despliegue
Cómo se distribuye nostrfy y cómo desplegarlo — Fly.io, AWS, Google Cloud, Azure, DigitalOcean o cualquier VPS, con notas sobre TLS, systemd y contenedores.
Un binario, varias plataformas
nostrfy ofrece binarios precompilados para x86_64 y aarch64 (artefactos de
release de GitHub, verificados por checksum con install.sh), una imagen de contenedor que descarga esos binarios (sin necesidad de compilar) y guías de despliegue para las principales
plataformas.
Plataformas
| Plataforma | Tipo | Guía |
|---|---|---|
| Fly.io | Plataforma gestionada (contenedores, volúmenes, TLS) | fly.md |
| Digital Ocean | Droplet (VM) o App Platform | deploy/digitalocean.md |
| AWS | EC2 (VM), Lightsail o ECS | deploy/aws.md |
| Google Cloud | Compute Engine (VM) o Cloud Run | deploy/gcp.md |
| Azure | VM o Container Apps | deploy/azure.md |
| Cualquier VPS | Servidor Ubuntu/Debian estándar | deploy/vps.md |
El patrón común para VM
Todas las guías de VM (Digital Ocean, AWS EC2, GCP, Azure, cualquier VPS) siguen el mismo patrón:
# 1. Instala el último binario de la release (no necesitas sudo para instalarlo)
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
# 2. Descarga la plantilla de configuración y edítala (no necesitas clonar el repositorio)
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
# 3. Descarga la unidad systemd e inicia el servicio
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
# 4. Abre el puerto (normalmente 8080) en el cortafuegos del proveedor y verifica
curl http://localhost:8080/healthAntes de salir a producción
Cada despliegue usa las mismas opciones de nostrfy.toml. Antes de salir a producción, configura al menos:
[relay]
name = "My Relay"
public_url = "wss://relay.example.com" # obligatorio para NIP-42 AUTH / NIP-62 / NIP-98
private_key = "" # ejecuta 'nostrfy genkey' y pega la clave¿VM o contenedor?
- VM (systemd): lo más simple, barato y con control total. Recomendado para la mayoría de despliegues de relés.
- Contenedor: usa el
Dockerfiledel repositorio (descarga el binario de release en el momento de la construcción) en Fly.io, Digital Ocean App Platform, AWS ECS, GCP Cloud Run o Azure Container Apps. Se requiere almacenamiento persistente para los datos LMDB (/data).
Anfitrión multimedia Blossom
Si blossom.host está configurado, apunta ese nombre de host al mismo puerto en el proxy TLS
(consulta los bloques nginx/Caddy en la guía de VPS).