Desplegar en AWS

Despliega nostrfy en AWS EC2, Lightsail o ECS/Fargate — paso a paso, con systemd, TLS detrás de un proxy inverso y una lista de verificación de producción.

Opciones: EC2 (VM, recomendado), Lightsail (VM más simple) o ECS/Fargate (contenedores).

Opción 1: EC2 (recomendado)

  1. Lanza una instancia: Amazon Linux 2023 o Ubuntu 24.04 LTS, t3.small (2 GB de RAM) es suficiente para empezar. Elige una región cercana a tus usuarios.
  2. Grupo de seguridad: permite TCP entrante 8080 (y 443 para TLS). Limita la regla SSH a tu IP.
  3. Conéctate por SSH y sigue la guía genérica de VPS:
sh
ssh -i your-key.pem ec2-user@<public-ip>        # En Ubuntu: ubuntu@<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/Network Load Balancer con certificado ACM — luego establece relay.public_url y reinicia.

Opción 2: Lightsail

Las instancias de Lightsail funcionan exactamente igual que la guía de EC2 — la pestaña de red contiene las reglas del cortafuegos: abre TCP 8080.

Opción 3: ECS / Fargate (contenedor)

El Dockerfile del repositorio descarga el binario de release precompilado en el momento de la compilación:

  1. Sube la imagen a ECR:
    sh
    docker buildx build --platform linux/amd64,linux/arm64 -t <account>.dkr.ecr.<region>.amazonaws.com/nostrfy .
  2. Crea un servicio ECS (Fargate, 1 tarea) con un volumen EFS montado en /data (persistencia LMDB — sin él, los datos se pierden en cada redespliegue).
  3. Expón el puerto 8080; coloca delante un ALB + certificado ACM para TLS.
  4. La configuración integrada deploy/nostrfy.container.toml se puede reemplazar montando tu propio nostrfy.toml en /etc/nostrfy/nostrfy.toml (p. ej. un fork que lo copia en la imagen).

Elastic IP

Asocia una Elastic IP a la instancia si la detienes/inicias — de lo contrario la IP pública cambia y public_url deja de ser válida.

TLS lo termina tu proxy o el proveedor
El relé sirve WebSocket sin cifrar en el puerto 8080 y respeta X-Forwarded-Proto.