## Problème
Le volume nommé `starseed_logs` est monté sur `/var/www/html/var/log` (docker-compose.prod.yml), mais ce dossier **n'existe pas dans l'image**. Au premier montage d'un volume vide, Docker crée le point de montage en `root:root`, ce qui empêche `www-data` (le worker php-fpm) d'écrire les logs → crash de l'application.
Même problème que celui rencontré et patché à la main sur Lesstime.
## Correctif
Ajout de `var/log` au `mkdir -p` du Dockerfile, avant le `chown -R www-data:www-data`. Ainsi tout volume de logs neuf hérite automatiquement des droits `www-data` — plus besoin de chown manuel.
## Déploiement
Nécessite un rebuild + push de l'image pour prendre effet en prod.
---------
Co-authored-by: Matthieu <contact@malio.fr>
Reviewed-on: #138
- .env.prod.example : JWT_COOKIE_SECURE=0, CORS_ALLOW_ORIGIN en http
- prompt-rename-prod.md : retirer etape certbot/Let's Encrypt, verifier la resolution locale a la place
- deployment-docker.md : aligner DEFAULT_URI, CORS et JWT_COOKIE_SECURE sur HTTP
- Rename project name across code, configs, docs, dev/prod infra
- Dev: DOCKER_APP_NAME + POSTGRES_DB switched to starseed, containers become php-starseed-fpm / nginx-starseed / starseed-db-1
- Dev: mount nginx.conf on default.conf instead of starseed.conf to avoid alphabetical-order clash with image's default site
- Makefile: export CURRENT_UID/CURRENT_GID at top level so docker compose builds (db-reset etc.) get them
- Prod: image registry path, container_name, volumes, vhost server_name + paths, DATABASE_URL, CORS, CI workflow
- Add doc/prompt-rename-prod.md with the migration runbook for the prod server (DB rename, FS move, vhost, Let's Encrypt)
Create var/cache and var/log directories in Dockerfile and ensure
correct ownership in Makefile before running composer install.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Persist var/log/ via named volume coltura_logs so logs survive
container restarts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Maintenance is handled by nginx-proxy on the host, not inside the
container. deploy.sh extracts maintenance.html from the container.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Single container with supervisord (Nginx + PHP-FPM), 3-stage
Dockerfile build, pre-built image from registry, port 8086.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Without APP_ENV=prod, Symfony defaults to dev and tries to load
DoctrineFixturesBundle which is excluded by --no-dev.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>