Commit Graph

44 Commits

Author SHA1 Message Date
Gato 7ae0d9f87f docs(watchtower): le PAT de pull doit couvrir Bonsai, plus seulement Luz
Le commentaire disait qu'un PAT read:package sur l'org Luz suffisait — c'était
vrai tant que Luz était seul à publier des images. La stack bonsai tire désormais
bonsai-api du même registre avec les mêmes identifiants : un PAT limité à Luz la
laisserait bloquée sur son ancienne image, sans rien signaler.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 14:03:04 +02:00
Gato 30887c066b feat(bonsai): la prod tire l'image publiée par la CI au lieu de la recompiler
Le service api clonait le dépôt et compilait le JAR sur le serveur à chaque
« docker compose build » (Dockerfile.api + secret ssh_key + CACHEBUST). La prod
rebuildait donc ce que la CI avait déjà buildé, sans garantie que les deux
partent du même commit — et aucune image publiée n'atteignait jamais la prod.

Elle tire maintenant …/bonsai-api:main et porte le label watchtower.enable : le
redéploiement suit tout seul chaque merge sur main, comme pour Luz. Le webapp,
lui, continue d'être buildé depuis les sources — d'où le secret ssh_key conservé.

Prérequis : de quoi tirer les images privées de l'org Bonsai. Le PAT de Watchtower
n'a aujourd'hui le scope read:package que sur Luz ; sans extension à Bonsai, le
pull échoue en silence (/v1/update répond 200, la prod ne bouge pas).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 14:02:24 +02:00
Gato 23ce5c86e1 Merge pull request 'La prod suit à nouveau les images publiées : les stacks passent au tag :main' (#1) from fix/stacks-luz-suivent-le-tag-main into main
Reviewed-on: #1
2026-07-26 22:02:44 +02:00
Gato 5558c206a0 fix(luz): les stacks suivent le tag :main, publié par la CI
La prod servait encore a70e0e4 (25/07) alors que main en etait a 79 commits
plus loin : les stacks luz et dev-luz epinglaient « :develop », un tag que la
CI de l'app ne pousse plus depuis qu'elle ne se declenche que sur main
(images.yml publie sha-<court>, main et latest).

Rien ne le signalait : Watchtower repondait bien 200 a /v1/update, ne trouvait
aucune image plus recente pour « :develop » et ne recreait donc rien. Seule la
verification post-deploiement de la CI a fini par le dire.

Les quatre images (backend + webapp, prod et dev-luz) visent desormais « :main ».
Les en-tetes des deux stacks rappellent que ce tag doit rester celui que publie
images.yml, changer l'un imposant de changer l'autre.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-26 21:59:37 +02:00
Gato 9a37ed4b8f fix(watchtower): authentifie le pull des images privées Gitea (reqPackageAccess)
Watchtower déclenchait bien /v1/update (200) mais échouait à tirer
luz-backend/luz-webapp :develop (« unauthorized: reqPackageAccess »),
d'où Updated=0 silencieux : les conteneurs n'étaient jamais recréés et
la prod restait figée sur une ancienne image malgré une CI verte.

Le montage de /root/.docker/config.json était inopérant (le docker login
du CI a lieu sur le runner, pas sur l'hôte). On le remplace par des
identifiants de pull explicites REPO_USER/REPO_PASS (PAT read:package,
via REGISTRY_USER/REGISTRY_PASS du .env). .env.example documenté.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 07:07:07 +02:00
Gato 2b2a924916 refactor(luz): renomme le container webapp « luz » → « luz-webapp »
Aligne le nom du front sur celui du backend (luz-backend) et renomme les
identifiants Traefik associés (routeur/service luz → luz-webapp). La règle
Host(`luz.goutailler-olivier.com`) est inchangée : le site reste servi.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-18 07:40:18 +02:00
Gato 44173a540b fix(luz): prod suit le tag :develop (pas de branche main sur l'app)
Le tag :latest n'est jamais produit (l'app ne pousse que develop) → « manifest
unknown » au pull. La prod tire désormais git.goutailler-olivier.com/luz/luz-*:develop,
comme dev-luz, en conservant sa base persistante et son absence de profil dev.
Labels Watchtower conservés : la prod se recrée automatiquement à chaque push develop.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-18 07:23:53 +02:00
Gato 8efa725753 feat(luz): prod tire les images du registre Gitea + auto-déploiement Watchtower
Remplace les images locales « localhost/luz-*:latest » (ex-deploy.sh SSH, supprimé)
par « git.goutailler-olivier.com/luz/luz-*:latest » et ajoute le label
com.centurylinklabs.watchtower.enable=true sur backend et webapp. La prod suit
désormais le tag :latest (publié par la CI sur push main), séparée de dev-luz
(:develop). Met à jour le bandeau de tête en conséquence.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-18 07:08:58 +02:00
Gato d90b7bc34b feat(dev-luz): déploiement continu depuis le registre via Watchtower
Les images pointent désormais sur git.goutailler-olivier.com/luz/luz-*:develop
(publiées par la CI) au lieu de localhost/luz-*:dev transférées en SSH. Les
services backend/webapp portent le label watchtower.enable=true : Watchtower
tire la nouvelle image et recrée le conteneur dès que la CI la pousse.

Prérequis serveur : docker login sur le registre (root) pour tirer les images
privées de l'org luz.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-18 06:26:27 +02:00
Gato 7d3c6f164e chore(dev-luz): renommer l'environnement de test luz-dev → dev-luz 2026-07-05 10:49:33 +02:00
Gato 7ed2d0b238 fix: nom dev-luz
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
2026-07-04 06:33:09 +02:00
Gato ba13758058 feat(luz): stacks dev + prod avec backend et BDD (routing /api Traefik)
Ajoute l'environnement de test luz-dev/ (webapp + backend /api + PostgreSQL,
profil Spring dev avec seed) et complète le stack prod luz/ avec db + backend
sur luz.goutailler-olivier.com/api. Images chargées en direct par SSH via
Luz/script/deploy.sh (sans registre), d'où les tags localhost/luz-*.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 05:23:04 +02:00
Cédric Olivier 42d006ee6e Clean repo and add deployment script for Bonsai 2026-06-20 07:33:40 +02:00
Gato bba8216cea feat(bonsai): invalidation sélective du cache via CACHEBUST
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 06:52:10 +02:00
Gato e19aeadc63 fix: ssh
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
2026-06-15 06:47:56 +02:00
Gato cdefbe3a81 tech: ajout repo avec build main
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
2026-06-15 06:42:46 +02:00
Gato f65ffea670 chore(olhar): remplace UPLOADS_PATH par DATA_PATH dans .env.example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 09:05:59 +02:00
Gato 2e45a8cc10 chore(olhar): ajout PHOTOS_STORAGE_PATH dans .env.example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 08:55:12 +02:00
Gato 5798440a9b chore(olhar): ajout UPLOADS_PATH dans .env.example
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 08:43:04 +02:00
Gato 0352ffd641 fix(olhar): deploy.sh utilise le compose du repo cloné
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 08:40:45 +02:00
Gato 3ef9311729 fix(olhar): deploy depuis develop car main n'a pas encore la structure monorepo
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 08:25:44 +02:00
Gato 9a477e8b7f feat(olhar): script de déploiement depuis les sources
Clone ou met à jour Gato/Olhar (main), build les deux images
Docker localement, puis relance le stack via docker compose.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 08:19:21 +02:00
Gato c65ffaa15a feat(olhar): compose unifié db + api + pwa, suppression olhar-api
- olhar/docker-compose.yml : fusion des services db (postgres:16) +
  api (olhar-api:latest) + pwa (olhar-pwa:latest) dans un seul stack
- olhar/.env.example : POSTGRES_PASSWORD + JWT_SECRET
- olhar-api/ : dossier supprimé (contenu intégré dans olhar/)
- Données migrées vers ~/Applications/data/olhar/ (au lieu de olhar-api/)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 07:06:02 +02:00
Gato 7f6d6a7aaf fix(olhar-api): monter le dossier uploads pour persister les photos
Sans volume, les photos uploadées étaient perdues à chaque redémarrage du container.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 21:05:35 +02:00
Gato bca776f118 chore: ajouter les fichiers .env.example et extraire les secrets hardcodés
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 08:54:17 +02:00
Gato 85350cfe86 feat: ajout du service olhar-api
Docker Compose calqué sur bonsai-api : PostgreSQL 16 + Spring Boot exposé
sur olhar.goutailler-olivier.com/api via Traefik, avec Watchtower activé.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 08:03:28 +02:00
Gato 2c420e3fce Update doc 2026-06-07 07:33:40 +02:00
Cédric Olivier c25996ea3a fix pb nom image 2026-06-06 23:43:53 +02:00
Gato 14e73f0850 feat: ajouter le projet Olhar accessible sur olhar.goutailler-olivier.com
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 23:07:12 +02:00
Gato cfbff8ecbe Update runner 2026-06-06 22:55:41 +02:00
Cédric Olivier 90bc7f6e35 Optimise Infra 2026-06-06 22:51:44 +02:00
Gato c1deba1b56 update runner 2026-06-06 21:40:59 +02:00
Gato 56a384a9d8 update data path 2026-06-06 21:31:09 +02:00
Gato ad9fbcbbdc Update gitea compose
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
2026-06-06 21:03:52 +02:00
Gato 5ba69d1e16 Rattrapage pb de gitea
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
2026-06-06 21:01:24 +02:00
Gato 86fa4f8519 Changement du runner
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
2026-06-05 06:36:52 +02:00
Gato 16668b1961 docs: documenter le workflow release automatique de Luz 2026-06-05 05:59:02 +02:00
Gato bd6ee2ba2b docs: ajout du projet Luz (luz.goutailler-olivier.com)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 05:51:19 +02:00
Gato 135187f69f CI rollback
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
2026-05-31 17:38:23 +02:00
Gato df3a672387 Update 31 mai
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
2026-05-31 15:09:38 +02:00
Gato 7312d2832f Misa a jours des container 2026-05-25 08:38:30 +02:00
Gato 1aef6e395e update doc installation production 2026-05-25 07:56:19 +02:00
Gato 1a73df83f1 init doc installation 2026-05-25 07:16:42 +02:00
Gato 1df4f33ca3 Add Home 2026-05-25 07:10:56 +02:00