Aperçu du déploiement

Comment nostrfy est distribué et comment le déployer — Fly.io, AWS, Google Cloud, Azure, DigitalOcean ou tout VPS, avec des notes sur TLS, systemd et les conteneurs.

Un seul binaire, plusieurs plateformes

nostrfy fournit des binaires précompilés pour x86_64 et aarch64 (artefacts de release GitHub, vérifiés par somme de contrôle via install.sh), une image conteneur qui télécharge ces binaires (aucune compilation requise), ainsi que des guides de déploiement pour les principales plateformes.

Plateformes

PlateformeTypeGuide
Fly.ioPlateforme gérée (conteneurs, volumes, TLS)fly.md
Digital OceanDroplet (VM) ou App Platformdeploy/digitalocean.md
AWSEC2 (VM), Lightsail ou ECSdeploy/aws.md
Google CloudCompute Engine (VM) ou Cloud Rundeploy/gcp.md
AzureVM ou Container Appsdeploy/azure.md
Tout VPSServeur Ubuntu/Debian standarddeploy/vps.md

Le modèle commun pour les VM

Tous les guides VM (Digital Ocean, AWS EC2, GCP, Azure, tout VPS) suivent le même modèle :

sh
# 1. Installez le dernier binaire de release (sudo inutile pour l’installation elle-même)
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh

# 2. Récupérez le modèle de configuration et modifiez-le (aucun clone du dépôt requis)
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

# 3. Récupérez l’unité systemd et démarrez le service
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. Ouvrez le port (généralement 8080) dans le pare-feu du fournisseur et vérifiez
curl http://localhost:8080/health

Avant la mise en production

Chaque déploiement utilise les mêmes options nostrfy.toml. Avant la mise en production, définissez au minimum :

toml
[relay]
name = "My Relay"
public_url = "wss://relay.example.com"   # requis pour NIP-42 AUTH / NIP-62 / NIP-98
private_key = ""                          # exécutez 'nostrfy genkey' et collez la clé

VM ou conteneur ?

  • VM (systemd) : le plus simple, le moins cher, contrôle total. Recommandé pour la plupart des déploiements de relais.
  • Conteneur : utilisez le Dockerfile du dépôt (télécharge le binaire de release au moment du build) sur Fly.io, Digital Ocean App Platform, AWS ECS, GCP Cloud Run ou Azure Container Apps. Un stockage persistant est requis pour les données LMDB (/data).

Hébergeur média Blossom

Si blossom.host est défini, pointez également ce nom d’hôte vers le même port dans le proxy TLS (voir les blocs nginx/Caddy dans le guide VPS).

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