`external-ip` pointait sur 91.121.90.228, l'adresse d'admin.opytex.org, alors
que la stack tourne sur chioggia (188.165.240.182) : coturn annonçait aux
clients une machine qui n'écoute rien sur ces ports.
3478 n'était par ailleurs publié qu'en TCP, alors qu'un client TURN tente
l'UDP en premier. Les deux défauts se cumulaient, le relais était inopérant.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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>