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

2.0 KiB

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 (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.