- .forgejo/workflows/ci.yml : build + test cargo (workspace), build npm
(app/) sur toute PR/push ; déploiement (main uniquement) : build
release, scp + redémarrage systemd sur tripoli-edge et tripoli-api.
- Runner Forgejo Actions déployé en systemd (aucun n'existait avant) :
socket Docker de l'hôte partagé avec les conteneurs de job plutôt
qu'un docker:dind imbriqué et privilégié - plus léger sur une machine
déjà partagée.
- Déploiement via un compte système "deploy" sans privilège : peut
seulement déposer un binaire dans /opt/deploy-staging et lancer un
script sudo dédié qui n'accepte que "tripoli-edge" ou "tripoli-api"
comme argument. Aucune clé root dans le pipeline. Clé SSH de
déploiement générée sur le serveur, jamais passée par cette
conversation - stockée directement comme secret Forgejo Actions par
l'utilisateur.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>