Déployer sur Google Cloud
Déployez nostrfy sur Google Cloud Compute Engine ou Cloud Run — étape par étape, avec systemd, TLS et les réserves sur la mise à l’échelle à zéro.
Options : Compute Engine (VM, recommandé) ou Cloud Run (conteneurs).
Option 1 : Compute Engine (recommandé)
- Créer une VM : Ubuntu 24.04 LTS (ou Debian),
e2-small(2 Go) suffit pour commencer. Choisissez une région proche de vos utilisateurs. - Règle de pare-feu : autoriser le TCP entrant
8080(et443pour TLS). Sous Réseau → Pare-feu, créez une règle avec les tags cibles attribués à la VM. - Connectez-vous en SSH (le bouton SSH de la console fonctionne) et suivez le guide VPS générique :
sh
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- Réservez une IP statique (IP externe → Réserver) pour que
public_urlreste valide après les redémarrages. - Vérifiez :
sh
curl http://<external-ip>:8080/health- Ajoutez TLS (
wss://) avec certbot + nginx (comme dans le guide VPS) ou un équilibreur de charge GCP avec un certificat géré.
Option 2 : Cloud Run (conteneur)
Cloud Run construit à partir du Dockerfile du dépôt (qui télécharge le binaire
précompilé de la release) :
- Créez un service depuis le dépôt GitHub (ou poussez l’image vers Artifact Registry).
- Port : définissez le port du conteneur sur
8080. - Allouez de la mémoire : au moins 512 Mo (LMDB + runtime asynchrone).
- Stockage persistant : attachez un volume Cloud Run (filestore/gcsfuse) sur
/data— LMDB a besoin d’un système de fichiers, donc un montage GCS FUSE sur/dataconvient pour la persistance. - TLS : Cloud Run fournit
https://automatiquement — définissezrelay.public_url = "wss://<service>.a.run.app"(ou votre domaine personnalisé).