Files
parenthese/deploy/HOSTINGER_GITHUB_SETUP.md
T
IliesAllaliandClaude Opus 5.5 882a981e0b Workflows : actions épinglées par SHA, clé d'hôte SSH épinglée, audit npm
Chaque action est référencée par son commit, version en commentaire. Le
déploiement lit la clé d'hôte dans le secret SSH_KNOWN_HOSTS et exige sa
vérification ; sans secret, repli sur ssh-keyscan avec un avertissement.
La CI échoue sur une faille critique d'une dépendance de production.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:42:11 +02:00

31 lines
2.0 KiB
Markdown

# Déploiement de parenthese.io
Ce document concerne l'instance hébergée par Ilies Allali. Pour installer Parenthèse chez vous, suivez plutôt la section « Auto-héberger » du [README](../README.fr.md) (Docker).
## Principe
Chaque push sur `main` lance d'abord la CI (`.github/workflows/ci.yml`). Si elle passe, `.github/workflows/deploy-hostinger.yml` démarre. Le workflow se connecte au serveur en SSH, aligne le dépôt sur `origin/main` sous verrou, puis lance `deploy/deploy.sh`, qui ne réinstalle et ne reconstruit que ce qui a changé depuis le dernier déploiement réussi.
## Secrets du dépôt
- `HOSTINGER_HOST` : adresse du serveur
- `HOSTINGER_PORT` : port SSH (facultatif, 22 par défaut)
- `HOSTINGER_USER` : utilisateur SSH
- `HOSTINGER_SSH_PRIVATE_KEY` : clé privée dont la clé publique est dans `authorized_keys` sur le serveur
- `SSH_KNOWN_HOSTS` : clé d'hôte du serveur, épinglée. La produire depuis une machine de confiance avec `ssh-keyscan -p PORT HÔTE`, comparer l'empreinte (`ssh-keygen -lf`) à celle affichée sur le serveur par `ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub`, puis coller les lignes telles quelles. Sans ce secret, le workflow reprend la clé présentée au moment du run et affiche un avertissement.
## Ce qui vit sur le serveur, hors du dépôt
- `backend/.env` : configuration de production de l'API (voir `backend/.env.production.example`)
- `/etc/parenthese/build.env` : variables de build du front et de la landing (`VITE_POSTHOG_KEY`, `VITE_POSTHOG_HOST`)
- `/etc/cron.d/parenthese-backup` : sauvegarde nocturne par `deploy/backup.sh`
- `/etc/genealogy/backup.env` (facultatif) : rétention et envoi S3 des sauvegardes
## Prérequis du serveur
Node 20, `pm2` en global, PostgreSQL joignable par `DATABASE_URL`, nginx configuré avec `deploy/nginx.conf`, `pg_dump` et `flock`.
## Déployer à la main
`bash deploy/deploy.sh --sync` depuis le dépôt sur le serveur. `FORCE_FULL=1` pour tout reconstruire. Ne pas le lancer pendant un déploiement GitHub : le verrou le fera attendre.