mirror of
https://github.com/IliesAllali/parenthese.git
synced 2026-11-15 16:32:03 +00:00
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>
31 lines
2.0 KiB
Markdown
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.
|