No description
  • PHP 82.5%
  • Twig 13%
  • CSS 2.3%
  • Dockerfile 1.2%
  • Shell 0.8%
  • Other 0.2%
Find a file
Nora c5e6c8b6b3
All checks were successful
CI / PHP - tests + static + lint (push) Successful in 2m25s
Release / PHP - tests + static + lint (push) Successful in 2m47s
Release / Fusion dans main (push) Successful in 17s
Merge pull request 'fix(docker): FrankenPHP 1.13.4 (correctifs de sécurité worker mode)' (#9) from feature/frankenphp-1.13.4 into develop
Reviewed-on: #9
2026-10-26 17:22:25 +00:00
.claude/skills/ghost-writer-brume chore: copies locales d'atomiseur-spec et reprise-magos retirées 2026-10-24 17:41:14 +02:00
.forgejo/workflows ci: T16 lint:container, lint:twig et lint:yaml dans la CI et son miroir release 2026-10-22 15:41:06 +02:00
.idea rollback 2026-03-01 13:13:41 +01:00
assets chore(assets): T15 retrait du squelette hello_controller.js 2026-10-22 15:39:56 +02:00
bin init project 2026-01-13 18:34:32 +01:00
config chore(flex): T14 recettes Flex rejouées pour Symfony 8.1 2026-10-22 15:37:45 +02:00
docker/frankenphp fix(docker): FrankenPHP 1.13.4 (correctifs de sécurité worker mode) 2026-10-26 18:15:06 +01:00
docs update version 2026-10-22 16:05:36 +02:00
migrations fix 2026-03-01 13:24:35 +01:00
public refactor: Mago lint, analyze et guard verts (T07) 2026-10-21 11:49:57 +02:00
src chore(flex): T14 recettes Flex rejouées pour Symfony 8.1 2026-10-22 15:37:45 +02:00
templates add plausible 2026-10-22 16:07:09 +02:00
tests test(phpunit): T17 PHPUnit 12.5 → 13.4 2026-10-22 15:43:01 +02:00
translations init project 2026-01-13 18:34:32 +01:00
var/data feat(mail): connexion DBAL default sur SQLite (T01) 2026-10-21 18:37:52 +02:00
.dockerignore feat(docker): .dockerignore complet pour l'image prod (T04) 2026-10-21 18:25:08 +02:00
.editorconfig init project 2026-01-13 18:34:32 +01:00
.env chore(deps): T03 retrait notifier et mailtrap-mailer 2026-10-22 15:00:13 +02:00
.env.dev init project 2026-01-13 18:34:32 +01:00
.env.prod.example fix mail 2026-10-22 13:59:43 +02:00
.env.test feat(mail): transports async et failed sur SQLite (T02) 2026-10-21 18:38:26 +02:00
.gitignore feat(mail): fusion de feature/migration-vps dans la branche mail (T06) 2026-10-21 18:43:35 +02:00
CLAUDE.md docs: CLAUDE.md écrit sur la structure commune 2026-10-24 17:26:51 +02:00
compose.override.yaml feat(mail): transports async et failed sur SQLite (T02) 2026-10-21 18:38:26 +02:00
compose.prod.yaml feat(mail): formulaire de contact envoyé depuis noreply@, reçu sur contact@ 2026-10-22 13:25:10 +02:00
compose.yaml docs(deploy): commentaires sans deploy.sh dans compose.yaml et la CI 2026-10-21 18:34:08 +02:00
composer.json test(phpunit): T17 PHPUnit 12.5 → 13.4 2026-10-22 15:43:01 +02:00
composer.lock test(phpunit): T17 PHPUnit 12.5 → 13.4 2026-10-22 15:43:01 +02:00
importmap.php chore(assets): T10 @hotwired/turbo 8 dans l'importmap 2026-10-22 15:25:44 +02:00
LICENSE.md Initial commit 2026-01-13 18:30:57 +01:00
mago.toml refactor: Mago lint, analyze et guard verts (T07) 2026-10-21 11:49:57 +02:00
phpstan.dist.neon chore(phpstan): extensions Symfony et PHPUnit, conteneur compilé (T03) 2026-10-21 11:45:54 +02:00
phpunit.dist.xml chore(docker): stack de dev FrankenPHP sur 8380, Mailpit sur 8325 (T11) 2026-10-21 11:53:55 +02:00
README.md feat(deploy): documentation de déploiement en production (T12) 2026-10-21 18:33:44 +02:00
release.sh chore(release): release.sh tague depuis develop propre et poussé (T10) 2026-10-21 11:51:21 +02:00
symfony.lock chore(flex): T14 recettes Flex rejouées pour Symfony 8.1 2026-10-22 15:37:45 +02:00

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 ; main protégée (push réservé au porteur de RELEASE_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.