Commit Graph

50 Commits

Author SHA1 Message Date
dbf771515f fix(forgejo): change runner config 2026-08-20 16:32:55 +02:00
dea4604828 feat(forge): add forgejo 2026-08-20 15:11:59 +02:00
0e301e76bd feat(paperless): update to version 3.0.5 2026-08-20 14:54:55 +02:00
3f6a3475c8 feat(paperless): move consume and export to own volume 2026-08-20 14:45:21 +02:00
3844100012 feat(matrix): clean livekit, nginx 2026-08-20 14:28:17 +02:00
4ad4bb59c6 feat(stacks): upgrade version for matrix stack 2026-08-19 18:48:05 +02:00
948358971d feat(stacks): fix version for matrix 2026-08-19 18:39:09 +02:00
1b221dfec8 feat(stacks): readme for matrix 2026-08-19 18:36:33 +02:00
885c3b62ea fix: rotate POSTGRES_PASSWORD for matrix 2026-08-19 16:34:02 +00:00
c7147957b1 fix: rotate TURN_STATIC_AUTH_SECRET 2026-08-19 16:28:54 +00:00
e6a8ad6547 fix: turn TURN_CLI_PASSWORD, LIVEKIT_KEY, LIVEKIT_SECRET 2026-08-19 16:25:18 +00:00
1c05fd3578 fix(stacks): coturn annonce la bonne IP et publie 3478 en UDP
`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>
2026-08-19 17:48:23 +02:00
0584856ea3 feat(stasks): migrate matrix 2026-08-19 17:10:23 +02:00
b002113473 feat(stacks): update paperless to 1.20.15 2026-08-18 06:21:55 +02:00
b602d42c92 feat(stacks): on paperless update db (16.15), tika (3.3.1.0), gotenberg
(8.34.0) and redis (balkey 9.1.1)
2026-08-18 05:42:21 +02:00
8fdf461ae1 feat(stacks): migrate paperless 2026-08-17 16:32:13 +02:00
306667b6e1 feat(stacks): update PG version to 16.15 for rss 2026-08-17 15:29:51 +02:00
c2cf727bdf feat(stacks): update freshrss to 1.29.1 2026-08-17 15:23:39 +02:00
3c70a467ed fix(stacks): change OIDC_CLIENT_SECRET 2026-08-17 15:14:19 +02:00
b220593def feat(stacks): migrate rss 2026-08-17 14:58:35 +02:00
322f2f89b5 feat(stacks): migrate mail-relay 2026-08-17 13:35:57 +02:00
122881e539 feat(stacks): rotate traefik-crowdsec secret 2026-08-14 06:27:53 +02:00
10fff06464 feat(stacks): migrate traefik 2026-08-14 06:21:01 +02:00
9a2722def3 feat(stacks): migrate nuage 2026-08-13 21:10:48 +02:00
5430eb19fc feat(stacks): migrate brodeuse-voyageuse 2026-08-13 21:10:37 +02:00
fbb521594d feat(stacks): migrate photos.opytex.org 2026-08-13 16:18:52 +02:00
9e109095f0 feat(stacks): migrate maintenant 2026-08-13 16:18:18 +02:00
2e8cedbba5 feat(stacks): add behind-proxy to ntfy 2026-08-13 07:12:58 +02:00
2695378473 feat(stacks): migrate plesna.opytex.org 2026-08-13 07:03:32 +02:00
ac5b728ffd feat(stacks): migrate ntfy.opytex.org 2026-08-13 07:03:19 +02:00
19479e8d4b feat(stacks): migrate liens.opytex.org 2026-08-13 07:03:01 +02:00
b37353899f feat(stacks): remove comments 2026-08-13 07:02:49 +02:00
29d78c82e2 fix(vault): retire le label du volume, Compose voulait le recréer
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>
2026-08-12 16:47:27 +02:00
78038f7679 docs: le dépôt ne couvre plus seulement l'infra domestique
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>
2026-08-12 16:45:25 +02:00
4aacd902f1 feat(vault): migre vault.opytex.org vers stacks/
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>
2026-08-12 16:38:34 +02:00
d619f165f0 feat(secrets): chiffrement des secrets avec SOPS + age
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>
2026-08-12 16:38:34 +02:00
7b8a41ea4a feat(dns): add maintenant.opytex.org 2026-08-12 14:46:57 +02:00
886cb3ac91 feat(ovh): add maintenant.opytex.org 2026-07-21 15:11:24 +02:00
529511ab02 feat(ovh): add vault and plesna 2026-07-20 18:17:15 +02:00
a02628222e feat(home): add ollama and openwebui local dns 2026-05-09 07:12:15 +02:00
0af6f597f6 feat(dns): add ntfy and livekit 2026-04-22 15:20:19 +02:00
f6e5eb5069 feat(dns): add ntfy 2026-03-29 18:19:56 +02:00
4764aad0e9 change openwebui ip 2026-02-22 17:59:46 +01:00
fac90a194c feat: add zebra 2025-12-12 09:32:42 +01:00
4e2bd3a448 feat(dns): import ovh opytex registrations 2025-11-30 17:43:45 +01:00
c9e7e8b27c refact: rename orga 2025-11-30 06:56:35 +01:00
c7314b3ac8 feat: add crapaudine 2025-11-30 06:54:44 +01:00
dc67006fbd docs(readme): init a readme 2025-11-28 15:37:09 +01:00
b0d70c4f8d feat(adguad): add DNS rewrite 2025-11-28 15:29:04 +01:00
5daf8bb0cd chore(init): init gitignore for terraform 2025-11-28 15:27:51 +01:00