Déployer sur AWS

Déployez nostrfy sur AWS EC2, Lightsail ou ECS/Fargate — étape par étape, avec systemd, TLS derrière un reverse proxy et une liste de contrôle production.

Options : EC2 (VM, recommandé), Lightsail (VM plus simple) ou ECS/Fargate (conteneurs).

Option 1 : EC2 (recommandé)

  1. Lancez une instance : Amazon Linux 2023 ou Ubuntu 24.04 LTS, t3.small (2 Go de RAM) suffit pour commencer. Choisissez une région proche de vos utilisateurs.
  2. Groupe de sécurité : autorisez le TCP entrant 8080 (et 443 pour TLS). Limitez la règle SSH à votre IP.
  3. Connectez-vous en SSH et suivez le guide VPS générique :
sh
ssh -i your-key.pem ec2-user@<public-ip>        # Sous 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                 # définissez 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. Vérifiez :
sh
curl http://<public-ip>:8080/health
  1. Ajoutez TLS (wss://) avec certbot + nginx (comme dans le guide VPS) ou avec un Application/Network Load Balancer et un certificat ACM — puis définissez relay.public_url et redémarrez.

Option 2 : Lightsail

Les instances Lightsail fonctionnent exactement comme le guide EC2 — l’onglet réseau contient les règles de pare-feu : ouvrez le TCP 8080.

Option 3 : ECS / Fargate (conteneur)

Le Dockerfile du dépôt télécharge le binaire de release précompilé au moment du build :

  1. Poussez l’image vers ECR :
    sh
    docker buildx build --platform linux/amd64,linux/arm64 -t <account>.dkr.ecr.<region>.amazonaws.com/nostrfy .
  2. Créez un service ECS (Fargate, 1 tâche) avec un volume EFS monté sur /data (persistance LMDB — sans lui, les données sont perdues lors des redéploiements).
  3. Exposez le port 8080 ; placez devant un ALB + certificat ACM pour TLS.
  4. La config intégrée deploy/nostrfy.container.toml peut être remplacée en montant votre propre nostrfy.toml sur /etc/nostrfy/nostrfy.toml (p. ex. un fork qui le copie dans l’image).

Elastic IP

Attachez une Elastic IP à l’instance si vous l’arrêtez/redémarrez — sinon l’IP publique change et public_url casse.

TLS est terminé par votre proxy ou le fournisseur
Le relais lui-même sert du WebSocket en clair sur 8080 et respecte X-Forwarded-Proto.