xpeditis2.0/infra/prod/env/data-node.env.example
2026-09-07 21:40:50 +02:00

70 lines
3.3 KiB
Plaintext

# =============================================================================
# Noeud de donnees (db-01) - variables d'environnement
# =============================================================================
# Sur le serveur : /opt/xpeditis/data-node/.env.data (chmod 600, root:root)
# Dans Git : infra/prod/data-node/data-node.sops.env (chiffre SOPS)
#
# sops -e --input-type dotenv --output-type dotenv \
# /opt/xpeditis/data-node/.env.data > data-node/data-node.sops.env
# sops -d --input-type dotenv --output-type dotenv \
# data-node/data-node.sops.env > /opt/xpeditis/data-node/.env.data
#
# Generer un secret : openssl rand -base64 32 | tr -d '\n/+=' | head -c 40
# Ne JAMAIS reutiliser un secret de preprod : ceux presents dans le depot sont
# compromis (cf. docs/mise-en-prod/13-securite-durcissement.md, "Rotation
# obligatoire avant la mise en production").
# --- Reseau ------------------------------------------------------------------
# IP privee de db-01 : seule interface sur laquelle Postgres et Redis sont
# publies. Doit correspondre a var.db_private_ip cote Terraform.
PRIVATE_IP=10.10.1.20
# --- PostgreSQL --------------------------------------------------------------
POSTGRES_DB=xpeditis_prod
POSTGRES_USER=xpeditis
POSTGRES_PASSWORD=REMPLACER_40_CARACTERES_ALEATOIRES
# --- Redis -------------------------------------------------------------------
REDIS_PASSWORD=REMPLACER_40_CARACTERES_ALEATOIRES
# --- WAL-G : archivage continu vers Hetzner Object Storage -------------------
# Bucket DEDIE aux sauvegardes, distinct du bucket des documents applicatifs,
# avec son propre jeu de cles S3. Si les cles applicatives fuitent, les
# sauvegardes restent hors de portee.
WALG_S3_PREFIX=s3://xpeditis-prod-pgbackup
WALG_S3_ENDPOINT=https://fsn1.your-objectstorage.com
WALG_S3_REGION=fsn1
WALG_ACCESS_KEY_ID=REMPLACER
WALG_SECRET_ACCESS_KEY=REMPLACER
# Chiffrement cote client des sauvegardes physiques.
# WAL-G attend une cle de 32 octets encodee en HEXADECIMAL (64 caracteres) :
# openssl rand -hex 32
# Sans cette cle, aucune restauration n'est possible : conservez-la dans le
# coffre-fort ET hors ligne.
WALG_LIBSODIUM_KEY=REMPLACER_64_CARACTERES_HEXADECIMAUX
# --- Chiffrement des dumps logiques (age) ------------------------------------
# Cle publique age destinataire des dumps quotidiens.
# age-keygen -o backup-age.key && grep 'public key' backup-age.key
BACKUP_AGE_RECIPIENT=age1REMPLACER
# Chemin de la cle PRIVEE sur db-01, lue par pg-restore.sh.
BACKUP_AGE_KEY_FILE=/root/.config/xpeditis/backup-age.key
# --- Storage Box Hetzner (seconde copie des dumps) ---------------------------
# Souscrite separement (BX11 ~4 EUR/mois). Cf. 12-sauvegardes-restauration.md.
STORAGEBOX_HOST=uXXXXXX.your-storagebox.de
STORAGEBOX_USER=uXXXXXX
STORAGEBOX_PORT=23
STORAGEBOX_SSH_KEY=/root/.ssh/storagebox
# --- Alertes -----------------------------------------------------------------
# Meme webhook que la CI/CD : une sauvegarde en echec doit se voir.
DISCORD_WEBHOOK_URL=
# Battement de coeur externe appele a chaque sauvegarde reussie
# (BetterStack Heartbeats ou healthchecks.io, gratuit). Le service alerte quand
# l'appel n'arrive PAS -- c'est ce qui detecte un serveur eteint ou un timer
# systemd desactive, ce qu'une supervision interne ne verrait jamais.
BACKUP_HEARTBEAT_URL=