Le runner Gitea Actions partage l'hote avec la prod (Postgres deja sur
5432), et les jobs tournent en container sur un reseau Docker dedie.
Le mapping `ports: 5432:5432` echouait avec "address already in use",
et de toute facon le service est joignable via son nom (`postgres`)
depuis le container du job — pas besoin d'exposer le port sur l'hote.
- Drop `ports:` block du service postgres
- DATABASE_URL : host `127.0.0.1` -> `postgres`
Workflow Gitea declenche sur chaque PR ciblant develop, avec deux jobs
paralleles :
- backend : composer install, php-cs-fixer dry-run, bootstrap DB test
(service postgres:16-alpine), phpunit
- frontend : npm ci, eslint, vitest, nuxt build
Ajoute aussi la cible make php-cs-fixer-check (dry-run) pour avoir la
meme commande en local et en CI.
E2E volontairement hors scope (regle d'or testing.md : tests E2E
uniquement pour bug critique passe en prod).
- 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)
- auto-tag-develop: auto version bump + tag on push to develop
- build-docker: build & push Docker image to Gitea registry on tag
- PR template
- .claude/settings.json with project permissions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>