- PHP 82.5%
- Twig 13%
- CSS 2.3%
- Dockerfile 1.2%
- Shell 0.8%
- Other 0.2%
| .claude/skills/ghost-writer-brume | ||
| .forgejo/workflows | ||
| .idea | ||
| assets | ||
| bin | ||
| config | ||
| docker/frankenphp | ||
| docs | ||
| migrations | ||
| public | ||
| src | ||
| templates | ||
| tests | ||
| translations | ||
| var/data | ||
| .dockerignore | ||
| .editorconfig | ||
| .env | ||
| .env.dev | ||
| .env.prod.example | ||
| .env.test | ||
| .gitignore | ||
| CLAUDE.md | ||
| compose.override.yaml | ||
| compose.prod.yaml | ||
| compose.yaml | ||
| composer.json | ||
| composer.lock | ||
| importmap.php | ||
| LICENSE.md | ||
| mago.toml | ||
| phpstan.dist.neon | ||
| phpunit.dist.xml | ||
| README.md | ||
| release.sh | ||
| symfony.lock | ||
Brume d'Encre Tattoo
Site vitrine Symfony 7.4 (PHP 8.5) : accueil, portfolio, formulaire de contact avec pièce jointe, plan.
Dev local (Docker)
docker compose up -d --build
| Service | URL |
|---|---|
| Site | http://localhost:8380 |
| Mailpit | http://localhost:8325 |
Ports en 83xx : 8080 (ArtAutomatic), 8180 (LandScapePrint) et 8280 (Artotheque) tournent sur le même poste. Les mails du formulaire de contact arrivent dans Mailpit.
Qualité
Les mêmes contrôles qu'en CI, dans le conteneur (docker compose exec app …) ou sur l'hôte :
composer audit
php bin/console cache:warmup --env=dev # conteneur lu par PHPStan
vendor/bin/phpunit
vendor/bin/phpstan analyse
vendor/bin/mago lint --minimum-fail-level=help
vendor/bin/mago analyze
vendor/bin/mago format --check # `vendor/bin/mago format` pour corriger
vendor/bin/mago guard
Branches, CI et release (Forgejo)
develop: branche de travail. La CI (.forgejo/workflows/ci.yml) tourne à chaque push et sur les PR.main: protégée, alimentée uniquement par la release.
Pour livrer, depuis develop propre et poussée :
./release.sh 1.9.0
Le script pose et pousse le tag v1.9.0. .forgejo/workflows/release.yml rejoue toute la CI sur le tag, vérifie qu'il
est sur develop, puis le fusionne dans main.
Le déploiement reste manuel, par tag, sur le VPS.
Configuration Forgejo (une fois)
- Actions activées sur le dépôt, runner avec le label
docker. - Secret
RELEASE_TOKEN: jeton avec droit d'écriture sur le dépôt. - Branche par défaut
develop;mainprotégée (push réservé au porteur deRELEASE_TOKEN).
Production
La pile de production (compose.prod.yaml, secrets dans .env.prod) tourne sur le VPS derrière Traefik. Prérequis,
premier déploiement, mise à jour par tag, vérifications, retour arrière et bascule DNS :
docs/deploiement-production.md.