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
| Plateforme | Type | Guide |
|---|---|---|
| Fly.io | Plateforme gérée (conteneurs, volumes, TLS) | fly.md |
| Digital Ocean | Droplet (VM) ou App Platform | deploy/digitalocean.md |
| AWS | EC2 (VM), Lightsail ou ECS | deploy/aws.md |
| Google Cloud | Compute Engine (VM) ou Cloud Run | deploy/gcp.md |
| Azure | VM ou Container Apps | deploy/azure.md |
| Tout VPS | Serveur Ubuntu/Debian standard | deploy/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 :
# 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/healthAvant la mise en production
Chaque déploiement utilise les mêmes options nostrfy.toml. Avant la mise en production, définissez au minimum :
[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
Dockerfiledu 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).