35 Commits

Author SHA1 Message Date
aab8280ff8 feat(forgejo): change group for runner 2026-08-20 14:39:27 +00:00
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
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