Déclarer `labels: backup.enable` sur un volume qui existe déjà ne se
contente pas d'être sans effet : Compose détecte la divergence entre la
déclaration et le volume, et propose de le recréer — donc de détruire le
coffre. La question est posée au premier `up`, avec « data will be lost ».
La sauvegarde de ce volume passe par MANUAL_VOLUMES dans backup.conf.
Le label reste la bonne méthode pour un volume neuf uniquement.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Le dépôt accueille désormais les stacks Docker de chioggia (serveur
dédié) en plus du DNS et d'AdGuard : « Home Infrastructure » n'était
plus exact. Renommage du dossier de travail en `infra`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Première stack migrée vers le nouveau modèle. Le nom du dossier est
conservé à l'identique : il détermine le nom du projet Compose
(vaultopytexorg) et donc le préfixe des volumes, ce qui permet de
reprendre les données existantes.
- env_file : les 22 variables non sensibles, en clair et diffables
- secrets.env.yaml : ADMIN_TOKEN et SSO_CLIENT_SECRET, chiffrés
- env_file: .env supprimé ; les deux secrets passent par ${VAR:?} pour
échouer franchement si `sops exec-env` est oublié
Corrections au passage :
- priority=10 sur le router principal. Sans elle Traefik la déduisait de
la longueur de la règle (23), contre 26 sur le router /admin : trois
caractères de marge avant que /admin ne perde le forward auth.
- backup.enable sur le volume, qui n'était couvert par aucune sauvegarde.
À compléter dans MANUAL_VOLUMES : un label n'agit pas sur un volume
déjà créé.
- version d'image figée (1.35.7) au lieu de latest, détectable par Renovate
- security_opt: no-new-privileges
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Met en place la mécanique de gestion des secrets du dépôt :
- .sops.yaml : deux périmètres séparés par acteur. Les
stacks/*/secrets.env.yaml sont déchiffrables par le compte de
déploiement de chioggia ET l'admin ; tout le reste par l'admin seul.
Une compromission du serveur ne donne donc pas accès aux credentials
OVH, qui restent gérés par pass.
- .gitignore : tout .env est traité comme un accident. La configuration
non sensible de chaque stack vit dans un fichier `env_file` versionné.
- README : création des clés, emplacements, recettes et pièges.
Les secrets sont injectés à la volée par `sops exec-env` : aucun fichier
déchiffré ne touche le disque.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>