Le SDK Sentry (back) valide le TLS de GlitchTip (logs.malio-dev.fr, certificat
signé par la CA interne MALIO auto-signée). Sans cette CA dans le trust store du
conteneur, le handshake échoue et l'event est silencieusement abandonné
(sentry:test -> "Message not sent"). On installe ca-certificates, on copie la
root CA et on lance update-ca-certificates, comme côté Lesstime.
Complète le branchement Sentry/GlitchTip côté déploiement pour que le front
reçoive son DSN et uploade ses source maps en prod.
- infra/prod/Dockerfile (stage frontend-build) : ARG NUXT_PUBLIC_SENTRY_DSN +
SENTRY_URL/ORG/PROJECT/AUTH_TOKEN, passés en préfixe inline du RUN npm run
generate (pas en ENV → token non persisté ; stage intermédiaire jeté de toute
façon). Vides par défaut => module Sentry inerte, pas d'upload.
- .gitea/workflows/build-docker.yml : --build-arg depuis les secrets Gitea
(INVENTORY_SENTRY_DSN_FRONT, SENTRY_URL, SENTRY_ORG, SENTRY_PROJECT,
SENTRY_AUTH_TOKEN).
- infra/prod/.env.example : documente SENTRY_DSN (back, runtime).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Install symfony/monolog-bundle with rotating_file handlers.
Add named volume inventory_logs for prod log persistence.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
qpdf was only installed in dev Dockerfile, causing the PDF compressor
to silently skip compression in production.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Les fichiers documents étaient stockés sous storage/storage/documents/
au lieu de storage/ directement, causant des 404 en prod.
Le deploy script corrige la structure et le Dockerfile crée le
répertoire var/storage/documents dans l'image.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Align project structure with Lesstime: move docker/ to infra/dev/ and
deploy/ to infra/prod/. Update all references in docker-compose,
makefile, CI workflow, Dockerfile, .gitignore and .dockerignore.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>