Distribuzione su AWS

Distribuisci nostrfy su AWS EC2, Lightsail o ECS/Fargate — passo dopo passo, con systemd, TLS dietro un reverse proxy e una checklist di produzione.

Opzioni: EC2 (VM, consigliata), Lightsail (VM più semplice) o ECS/Fargate (container).

Opzione 1: EC2 (consigliata)

  1. Avvia un’istanza: Amazon Linux 2023 o Ubuntu 24.04 LTS, t3.small (2 GB di RAM) è sufficiente per iniziare. Scegli una regione vicina ai tuoi utenti.
  2. Gruppo di sicurezza: consenti TCP in ingresso 8080 (e 443 per TLS). Limita la regola SSH al tuo IP.
  3. Connettiti via SSH e segui la guida VPS generica:
sh
ssh -i your-key.pem ec2-user@<public-ip>        # per 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                 # imposta name, public_url, 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. Aggiungi TLS (wss://) con certbot + nginx (come nella guida VPS) oppure con un Application/Network Load Balancer con certificato ACM — quindi imposta relay.public_url e riavvia.

Opzione 2: Lightsail

Le istanze Lightsail funzionano esattamente come la guida EC2 — la scheda di rete contiene le regole del firewall: apri TCP 8080.

Opzione 3: ECS / Fargate (container)

Il Dockerfile del repository scarica il binario di release precompilato al momento della build:

  1. Invia l’immagine su ECR:
    sh
    docker buildx build --platform linux/amd64,linux/arm64 -t <account>.dkr.ecr.<region>.amazonaws.com/nostrfy .
  2. Crea un servizio ECS (Fargate, 1 task) con un volume EFS montato su /data (persistenza LMDB — senza di esso, i dati si perdono a ogni nuova distribuzione).
  3. Esporre la porta 8080; metti davanti un ALB + certificato ACM per TLS.
  4. La configurazione integrata deploy/nostrfy.container.toml può essere sovrascritta montando il tuo nostrfy.toml su /etc/nostrfy/nostrfy.toml (es. un fork che lo copia nell’immagine).

Elastic IP

Associa un Elastic IP all’istanza se la fermi/avvii — altrimenti l’IP pubblico cambia e public_url non sarà più valido.

TLS è terminato dal tuo proxy o dal provider
Il relay serve WebSocket semplice su 8080 e rispetta X-Forwarded-Proto.