Exploitation & déploiement
Ce site documente le code. Ce qui suit documente la machine : provisionner un serveur, déployer, poser des identifiants, sauvegarder, dépanner.
Cette documentation-là vit dans le dépôt deploy/, et — c’est délibéré — elle est
aussi présente sur le serveur, dans /opt/titreo-epay/. C’est là qu’on la
cherche pendant un incident, sans le dépôt sous la main.
Les quatre documents
Section intitulée « Les quatre documents »| Document | Répond à | Longueur |
|---|---|---|
deploy/HANDOVER.md |
« je reprends ce projet, par où je commence ? » | court, à lire d’abord |
deploy/CREDENTIALS.md |
« on me donne une clé — où la mets-je, et comment sais-je qu’elle marche ? » | une page par nature de secret |
deploy/RUNBOOK.md |
tout le reste : premier déploiement, migration, rollback, rotation des secrets, sauvegarde, logs, métriques, dépannage | exhaustif |
deploy/VPS.md |
choix de l’hébergeur, création de l’instance, architecture processeur | avant même le premier déploiement |
La CLI tep
Section intitulée « La CLI tep »Un seul point d’entrée, façade au-dessus du Makefile et des scripts de
deploy/scripts/, qui restent la source de vérité. tep help liste tout.
tep provision <hôte> # serveur vierge → prêt (utilisateur, Docker, pare-feu, SSH)tep init # assistant → .env.prod complet et validétep deploy --host <hôte> # construit, transfère, migre, démarretep doctor # contrôles de fumée sur le déploiement en ligneAu quotidien :
tep env set <CLÉ> # poser une valeur : saisie masquée, validée, $ doubléstep check titreo|smtp|psp # les identifiants sont-ils acceptés par leur propriétaire ?tep status | logs | health # état, journaux, sondestep backup # sauvegarde à chaudtep heal # redémarre ce que les sondes déclarent maladetep demo setup # boutique de démonstration, de bout en boutAccès Titréo d’un marchand, collecte des logs, paquets installables :
tep gift set --merchant <id> --enseigne <nom> # vérifie les accès auprès de Titréo, puis les enregistre chiffréstep gift check --merchant <id> # les accès enregistrés sont-ils toujours acceptés ?tep check titreo --merchant <id> [--card <barcode>] # idem ; avec --card, lit le solde et l'émetteurtep obs on | off | status # collecte de métriques et de logs (Prometheus, Loki, Alloy)tep plugin build presta --domain <domaine> # construit et contrôle le zip du module PrestaShoptep plugin publish presta|sdk-js|sdk-php # dépose le paquet dans cdn/downloads/, empreinte comprisetep gift set demande la clé en saisie masquée, ou la lit sur l’entrée standard quand la commande
est pilotée par un script. Elle ne passe jamais par la ligne de commande. Il n’existe plus d’accès
Titréo dans .env.prod : seules TITREO_API_BASE et TITREO_PRODUCT_LABELS y restent.
tep obs on est le préalable de la page Logs techniques.
Ce qui tourne sans personne
Section intitulée « Ce qui tourne sans personne »Trois timers systemd sur le serveur :
titreo-sync.timer(2 min) — applique les images publiées par la CI, et la « recette » (compose, Caddyfile, scripts, CLI, documentation). La CI ne se connecte jamais au serveur : elle s’arrête au registre, le serveur tire.titreo-heal.timer(1 min) — le gardien. Docker Compose ne redémarre pas un conteneurunhealthy: une sonde informe, elle ne répare rien. Le gardien répare, avec un plafond horaire au-delà duquel il renonce et le dit — parce qu’à ce stade la panne est dans une dépendance.titreo-backup.timer(03:15) — sauvegarde chiffrée et externalisée, posée seulement si une destination est configurée.
Les deux secrets irrécupérables
Section intitulée « Les deux secrets irrécupérables »PSP_CONFIG_KEK — perdue, les identifiants PSP et les accès Titréo enregistrés en base sont
définitivement illisibles.
BOOTSTRAP_SIGNING_KEY — changée, tous les manifests signés deviennent invalides.
Ils se mettent à l’abri une fois, à la main : tep secrets archive --passphrase.
Détails et raisons dans deploy/CREDENTIALS.md.