From 2e315781599988fbb331a2e4368b5fbe0575ea77 Mon Sep 17 00:00:00 2001 From: Ploush Date: Thu, 9 Apr 2026 15:23:15 +0200 Subject: [PATCH] ajout cicd --- .github/workflows/deploy.yml | 44 ++++++++++++++++ .editorconfig => app/.editorconfig | 0 .env => app/.env | 0 .env.dev => app/.env.dev | 0 .env.test => app/.env.test | 0 .gitignore => app/.gitignore | 0 api-client.php => app/api-client.php | 0 {assets => app/assets}/app.js | 0 {assets => app/assets}/controllers.json | 0 .../controllers/clickable-card_controller.js | 0 .../controllers/copy_link_controller.js | 0 .../controllers/csrf_protection_controller.js | 0 .../controllers/header_dropdown_controller.js | 0 .../assets}/controllers/hello_controller.js | 0 .../controllers/mod_optional_controller.js | 0 .../modpack_download_controller.js | 0 .../controllers/theme_toggle_controller.js | 0 .../controllers/tom-select_controller.js | 0 {assets => app/assets}/images/bg-dark.png | Bin {assets => app/assets}/images/bg-light.png | Bin {assets => app/assets}/js/header.js | 0 {assets => app/assets}/stimulus_bootstrap.js | 0 .../assets}/styles/administration/index.css | 0 .../styles/administration/modpacks/index.css | 0 .../styles/administration/mods/index.css | 0 .../styles/administration/users/index.css | 0 {assets => app/assets}/styles/app.css | 0 .../assets}/styles/globals/bulles.css | 0 .../assets}/styles/globals/form.css | 0 .../assets}/styles/globals/navbutton.css | 0 .../assets}/styles/partials/flash.css | 0 .../assets}/styles/partials/header.css | 0 .../assets}/styles/vitrine/index.css | 0 {bin => app/bin}/console | 0 {bin => app/bin}/phpunit | 0 .../compose.override.yaml | 0 compose.yaml => app/compose.yaml | 0 composer.json => app/composer.json | 0 composer.lock => app/composer.lock | 0 {config => app/config}/bundles.php | 0 .../config}/packages/asset_mapper.yaml | 0 {config => app/config}/packages/cache.yaml | 0 {config => app/config}/packages/csrf.yaml | 0 {config => app/config}/packages/debug.yaml | 0 {config => app/config}/packages/doctrine.yaml | 0 .../config}/packages/doctrine_migrations.yaml | 0 .../config}/packages/framework.yaml | 0 {config => app/config}/packages/mailer.yaml | 0 .../config}/packages/messenger.yaml | 0 {config => app/config}/packages/monolog.yaml | 0 {config => app/config}/packages/notifier.yaml | 0 .../config}/packages/property_info.yaml | 0 {config => app/config}/packages/routing.yaml | 0 {config => app/config}/packages/security.yaml | 0 .../config}/packages/translation.yaml | 0 {config => app/config}/packages/twig.yaml | 0 {config => app/config}/packages/ux_turbo.yaml | 0 .../config}/packages/validator.yaml | 0 .../config}/packages/web_profiler.yaml | 0 {config => app/config}/preload.php | 0 {config => app/config}/reference.php | 0 {config => app/config}/routes.yaml | 0 {config => app/config}/routes/framework.yaml | 0 .../config}/routes/routing.controllers.yaml | 0 {config => app/config}/routes/security.yaml | 0 .../config}/routes/web_profiler.yaml | 0 {config => app/config}/services.yaml | 0 .../document}/DOCUMENTATION_API.md | 0 .../document}/GUIDE_USER_RAPIDE_API.md | 0 {document => app/document}/INDEX.md | 0 importmap.php => app/importmap.php | 0 {migrations => app/migrations}/.gitignore | 0 .../migrations}/Version20260320225432.php | 2 +- .../migrations}/Version20260403163636.php | 2 +- .../migrations}/Version20260403164519.php | 2 +- .../migrations}/Version20260405171429.php | 2 +- .../migrations}/Version20260406173517.php | 2 +- .../migrations}/Version20260407125351.php | 2 +- phpunit.dist.xml => app/phpunit.dist.xml | 0 {public => app/public}/index.php | 0 .../src}/Command/ApiKeyCreateCommand.php | 0 {src => app/src}/Command/ApiTestCommand.php | 0 {src => app/src}/Controller/.gitignore | 0 .../Controller/AdministrationController.php | 0 .../Controller/Api/V1/ApiKeyController.php | 0 .../Controller/Api/V1/StateController.php | 0 .../src}/Controller/ModpackController.php | 0 .../src}/Controller/SecurityController.php | 0 .../src}/Controller/SettingsController.php | 0 .../src}/Controller/VitrineController.php | 0 {src => app/src}/Entity/.gitignore | 0 {src => app/src}/Entity/ApiKey.php | 0 .../src}/Entity/CategoriePublication.php | 0 {src => app/src}/Entity/Constitue.php | 0 {src => app/src}/Entity/Illustration.php | 0 {src => app/src}/Entity/Joueur.php | 0 {src => app/src}/Entity/Mod.php | 0 {src => app/src}/Entity/Modpack.php | 0 {src => app/src}/Entity/Publication.php | 0 {src => app/src}/Entity/Session.php | 0 {src => app/src}/Entity/Territoire.php | 0 {src => app/src}/Entity/User.php | 0 .../EventListener/ApiExceptionListener.php | 0 .../EventListener/ApiForceSessionListener.php | 0 .../AccessDeniedSubscriber.php | 0 .../src}/EventSubscriber/LogoutSubscriber.php | 0 .../EventSubscriber/TwigGlobalSubscriber.php | 0 {src => app/src}/Form/Mod/ModType.php | 0 .../src}/Form/Modpack/ModpackDownloadType.php | 0 {src => app/src}/Form/Modpack/ModpackType.php | 0 .../src}/Form/User/Settings/ProfileType.php | 0 .../src}/Form/User/Settings/SecurityType.php | 0 {src => app/src}/Form/User/UserFormType.php | 0 {src => app/src}/Kernel.php | 0 {src => app/src}/Repository/.gitignore | 0 .../src}/Repository/ApiKeyRepository.php | 0 .../CategoriePublicationRepository.php | 0 .../src}/Repository/ConstitueRepository.php | 0 .../Repository/IllustrationRepository.php | 0 .../src}/Repository/JoueurRepository.php | 0 {src => app/src}/Repository/ModRepository.php | 0 .../src}/Repository/ModpackRepository.php | 0 .../src}/Repository/PublicationRepository.php | 0 .../src}/Repository/SessionRepository.php | 0 .../src}/Repository/TerritoireRepository.php | 0 .../src}/Repository/UserRepository.php | 0 .../src}/Security/AccessDeniedHandler.php | 0 .../src}/Security/ApiAccessDeniedHandler.php | 0 .../Security/ApiAuthenticationEntryPoint.php | 0 .../Security/ApiBearerTokenAuthenticator.php | 0 {src => app/src}/Security/ApiTokenHandler.php | 0 {src => app/src}/Security/ApiUserProvider.php | 0 .../src}/Security/LoginFailureHandler.php | 0 .../src}/Security/LoginSuccessHandler.php | 0 .../src}/Security/LogoutSuccessHandler.php | 0 .../src}/Service/ModpackZipService.php | 0 {src => app/src}/Service/UploaderService.php | 0 symfony.lock => app/symfony.lock | 0 .../templates}/administration/index.html.twig | 0 .../administration/modpacks/edit.html.twig | 0 .../administration/modpacks/index.html.twig | 0 .../administration/mods/edit.html.twig | 0 .../administration/mods/index.html.twig | 0 .../administration/users/edit.html.twig | 0 .../administration/users/index.html.twig | 0 {templates => app/templates}/base.html.twig | 0 .../templates}/modpack/index.html.twig | 0 .../templates}/partials/_header.html.twig | 0 .../partials/_login_dropdown.html.twig | 0 .../partials/_logout_dropdown.html.twig | 0 .../partials/_theme_toggle.html.twig | 0 .../templates}/security/login.html.twig | 0 .../templates}/settings/base.html.twig | 0 .../templates}/settings/profile.html.twig | 0 .../templates}/settings/security.html.twig | 0 .../templates}/vitrine/index.html.twig | 0 {tests => app/tests}/bootstrap.php | 0 {translations => app/translations}/.gitignore | 0 compose.yml | 32 ++++++++++++ docker/apache/Dockerfile | 47 ++++++++++++++++++ docker/apache/symfony.conf | 30 +++++++++++ 161 files changed, 159 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/deploy.yml rename .editorconfig => app/.editorconfig (100%) rename .env => app/.env (100%) rename .env.dev => app/.env.dev (100%) rename .env.test => app/.env.test (100%) rename .gitignore => app/.gitignore (100%) rename api-client.php => app/api-client.php (100%) rename {assets => app/assets}/app.js (100%) rename {assets => app/assets}/controllers.json (100%) rename {assets => app/assets}/controllers/clickable-card_controller.js (100%) rename {assets => app/assets}/controllers/copy_link_controller.js (100%) rename {assets => app/assets}/controllers/csrf_protection_controller.js (100%) rename {assets => app/assets}/controllers/header_dropdown_controller.js (100%) rename {assets => app/assets}/controllers/hello_controller.js (100%) rename {assets => app/assets}/controllers/mod_optional_controller.js (100%) rename {assets => app/assets}/controllers/modpack_download_controller.js (100%) rename {assets => app/assets}/controllers/theme_toggle_controller.js (100%) rename {assets => app/assets}/controllers/tom-select_controller.js (100%) rename {assets => app/assets}/images/bg-dark.png (100%) rename {assets => app/assets}/images/bg-light.png (100%) rename {assets => app/assets}/js/header.js (100%) rename {assets => app/assets}/stimulus_bootstrap.js (100%) rename {assets => app/assets}/styles/administration/index.css (100%) rename {assets => app/assets}/styles/administration/modpacks/index.css (100%) rename {assets => app/assets}/styles/administration/mods/index.css (100%) rename {assets => app/assets}/styles/administration/users/index.css (100%) rename {assets => app/assets}/styles/app.css (100%) rename {assets => app/assets}/styles/globals/bulles.css (100%) rename {assets => app/assets}/styles/globals/form.css (100%) rename {assets => app/assets}/styles/globals/navbutton.css (100%) rename {assets => app/assets}/styles/partials/flash.css (100%) rename {assets => app/assets}/styles/partials/header.css (100%) rename {assets => app/assets}/styles/vitrine/index.css (100%) rename {bin => app/bin}/console (100%) rename {bin => app/bin}/phpunit (100%) rename compose.override.yaml => app/compose.override.yaml (100%) rename compose.yaml => app/compose.yaml (100%) rename composer.json => app/composer.json (100%) rename composer.lock => app/composer.lock (100%) rename {config => app/config}/bundles.php (100%) rename {config => app/config}/packages/asset_mapper.yaml (100%) rename {config => app/config}/packages/cache.yaml (100%) rename {config => app/config}/packages/csrf.yaml (100%) rename {config => app/config}/packages/debug.yaml (100%) rename {config => app/config}/packages/doctrine.yaml (100%) rename {config => app/config}/packages/doctrine_migrations.yaml (100%) rename {config => app/config}/packages/framework.yaml (100%) rename {config => app/config}/packages/mailer.yaml (100%) rename {config => app/config}/packages/messenger.yaml (100%) rename {config => app/config}/packages/monolog.yaml (100%) rename {config => app/config}/packages/notifier.yaml (100%) rename {config => app/config}/packages/property_info.yaml (100%) rename {config => app/config}/packages/routing.yaml (100%) rename {config => app/config}/packages/security.yaml (100%) rename {config => app/config}/packages/translation.yaml (100%) rename {config => app/config}/packages/twig.yaml (100%) rename {config => app/config}/packages/ux_turbo.yaml (100%) rename {config => app/config}/packages/validator.yaml (100%) rename {config => app/config}/packages/web_profiler.yaml (100%) rename {config => app/config}/preload.php (100%) rename {config => app/config}/reference.php (100%) rename {config => app/config}/routes.yaml (100%) rename {config => app/config}/routes/framework.yaml (100%) rename {config => app/config}/routes/routing.controllers.yaml (100%) rename {config => app/config}/routes/security.yaml (100%) rename {config => app/config}/routes/web_profiler.yaml (100%) rename {config => app/config}/services.yaml (100%) rename {document => app/document}/DOCUMENTATION_API.md (100%) rename {document => app/document}/GUIDE_USER_RAPIDE_API.md (100%) rename {document => app/document}/INDEX.md (100%) rename importmap.php => app/importmap.php (100%) rename {migrations => app/migrations}/.gitignore (100%) rename {migrations => app/migrations}/Version20260320225432.php (99%) rename {migrations => app/migrations}/Version20260403163636.php (96%) rename {migrations => app/migrations}/Version20260403164519.php (98%) rename {migrations => app/migrations}/Version20260405171429.php (98%) rename {migrations => app/migrations}/Version20260406173517.php (96%) rename {migrations => app/migrations}/Version20260407125351.php (96%) rename phpunit.dist.xml => app/phpunit.dist.xml (100%) rename {public => app/public}/index.php (100%) rename {src => app/src}/Command/ApiKeyCreateCommand.php (100%) rename {src => app/src}/Command/ApiTestCommand.php (100%) rename {src => app/src}/Controller/.gitignore (100%) rename {src => app/src}/Controller/AdministrationController.php (100%) rename {src => app/src}/Controller/Api/V1/ApiKeyController.php (100%) rename {src => app/src}/Controller/Api/V1/StateController.php (100%) rename {src => app/src}/Controller/ModpackController.php (100%) rename {src => app/src}/Controller/SecurityController.php (100%) rename {src => app/src}/Controller/SettingsController.php (100%) rename {src => app/src}/Controller/VitrineController.php (100%) rename {src => app/src}/Entity/.gitignore (100%) rename {src => app/src}/Entity/ApiKey.php (100%) rename {src => app/src}/Entity/CategoriePublication.php (100%) rename {src => app/src}/Entity/Constitue.php (100%) rename {src => app/src}/Entity/Illustration.php (100%) rename {src => app/src}/Entity/Joueur.php (100%) rename {src => app/src}/Entity/Mod.php (100%) rename {src => app/src}/Entity/Modpack.php (100%) rename {src => app/src}/Entity/Publication.php (100%) rename {src => app/src}/Entity/Session.php (100%) rename {src => app/src}/Entity/Territoire.php (100%) rename {src => app/src}/Entity/User.php (100%) rename {src => app/src}/EventListener/ApiExceptionListener.php (100%) rename {src => app/src}/EventListener/ApiForceSessionListener.php (100%) rename {src => app/src}/EventSubscriber/AccessDeniedSubscriber.php (100%) rename {src => app/src}/EventSubscriber/LogoutSubscriber.php (100%) rename {src => app/src}/EventSubscriber/TwigGlobalSubscriber.php (100%) rename {src => app/src}/Form/Mod/ModType.php (100%) rename {src => app/src}/Form/Modpack/ModpackDownloadType.php (100%) rename {src => app/src}/Form/Modpack/ModpackType.php (100%) rename {src => app/src}/Form/User/Settings/ProfileType.php (100%) rename {src => app/src}/Form/User/Settings/SecurityType.php (100%) rename {src => app/src}/Form/User/UserFormType.php (100%) rename {src => app/src}/Kernel.php (100%) rename {src => app/src}/Repository/.gitignore (100%) rename {src => app/src}/Repository/ApiKeyRepository.php (100%) rename {src => app/src}/Repository/CategoriePublicationRepository.php (100%) rename {src => app/src}/Repository/ConstitueRepository.php (100%) rename {src => app/src}/Repository/IllustrationRepository.php (100%) rename {src => app/src}/Repository/JoueurRepository.php (100%) rename {src => app/src}/Repository/ModRepository.php (100%) rename {src => app/src}/Repository/ModpackRepository.php (100%) rename {src => app/src}/Repository/PublicationRepository.php (100%) rename {src => app/src}/Repository/SessionRepository.php (100%) rename {src => app/src}/Repository/TerritoireRepository.php (100%) rename {src => app/src}/Repository/UserRepository.php (100%) rename {src => app/src}/Security/AccessDeniedHandler.php (100%) rename {src => app/src}/Security/ApiAccessDeniedHandler.php (100%) rename {src => app/src}/Security/ApiAuthenticationEntryPoint.php (100%) rename {src => app/src}/Security/ApiBearerTokenAuthenticator.php (100%) rename {src => app/src}/Security/ApiTokenHandler.php (100%) rename {src => app/src}/Security/ApiUserProvider.php (100%) rename {src => app/src}/Security/LoginFailureHandler.php (100%) rename {src => app/src}/Security/LoginSuccessHandler.php (100%) rename {src => app/src}/Security/LogoutSuccessHandler.php (100%) rename {src => app/src}/Service/ModpackZipService.php (100%) rename {src => app/src}/Service/UploaderService.php (100%) rename symfony.lock => app/symfony.lock (100%) rename {templates => app/templates}/administration/index.html.twig (100%) rename {templates => app/templates}/administration/modpacks/edit.html.twig (100%) rename {templates => app/templates}/administration/modpacks/index.html.twig (100%) rename {templates => app/templates}/administration/mods/edit.html.twig (100%) rename {templates => app/templates}/administration/mods/index.html.twig (100%) rename {templates => app/templates}/administration/users/edit.html.twig (100%) rename {templates => app/templates}/administration/users/index.html.twig (100%) rename {templates => app/templates}/base.html.twig (100%) rename {templates => app/templates}/modpack/index.html.twig (100%) rename {templates => app/templates}/partials/_header.html.twig (100%) rename {templates => app/templates}/partials/_login_dropdown.html.twig (100%) rename {templates => app/templates}/partials/_logout_dropdown.html.twig (100%) rename {templates => app/templates}/partials/_theme_toggle.html.twig (100%) rename {templates => app/templates}/security/login.html.twig (100%) rename {templates => app/templates}/settings/base.html.twig (100%) rename {templates => app/templates}/settings/profile.html.twig (100%) rename {templates => app/templates}/settings/security.html.twig (100%) rename {templates => app/templates}/vitrine/index.html.twig (100%) rename {tests => app/tests}/bootstrap.php (100%) rename {translations => app/translations}/.gitignore (100%) create mode 100644 compose.yml create mode 100644 docker/apache/Dockerfile create mode 100644 docker/apache/symfony.conf diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..2827b6e --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,44 @@ +# ============================================================ +# GitHub Actions — Build + Push image → GHCR +# Déclenche un redéploiement automatique via webhook Portainer +# ============================================================ + +name: Build & Deploy + +on: + push: + branches: + - master + +jobs: + build-and-push: + name: Build image et push sur GHCR + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write # Nécessaire pour pousser sur ghcr.io + + steps: + - name: Checkout du code + uses: actions/checkout@v4 + + - name: Connexion au GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} # Automatique, rien à configurer + + - name: Build et push de l'image Docker + uses: docker/build-push-action@v5 + with: + context: . + file: ./docker/apache/Dockerfile + push: true + tags: ghcr.io/${{ github.repository }}:latest + + - name: Déclenche le redéploiement Portainer + run: | + curl -s -X POST "${{ secrets.PORTAINER_WEBHOOK_URL }}" + # PORTAINER_WEBHOOK_URL est un secret GitHub (voir étapes d'installation) diff --git a/.editorconfig b/app/.editorconfig similarity index 100% rename from .editorconfig rename to app/.editorconfig diff --git a/.env b/app/.env similarity index 100% rename from .env rename to app/.env diff --git a/.env.dev b/app/.env.dev similarity index 100% rename from .env.dev rename to app/.env.dev diff --git a/.env.test b/app/.env.test similarity index 100% rename from .env.test rename to app/.env.test diff --git a/.gitignore b/app/.gitignore similarity index 100% rename from .gitignore rename to app/.gitignore diff --git a/api-client.php b/app/api-client.php similarity index 100% rename from api-client.php rename to app/api-client.php diff --git a/assets/app.js b/app/assets/app.js similarity index 100% rename from assets/app.js rename to app/assets/app.js diff --git a/assets/controllers.json b/app/assets/controllers.json similarity index 100% rename from assets/controllers.json rename to app/assets/controllers.json diff --git a/assets/controllers/clickable-card_controller.js b/app/assets/controllers/clickable-card_controller.js similarity index 100% rename from assets/controllers/clickable-card_controller.js rename to app/assets/controllers/clickable-card_controller.js diff --git a/assets/controllers/copy_link_controller.js b/app/assets/controllers/copy_link_controller.js similarity index 100% rename from assets/controllers/copy_link_controller.js rename to app/assets/controllers/copy_link_controller.js diff --git a/assets/controllers/csrf_protection_controller.js b/app/assets/controllers/csrf_protection_controller.js similarity index 100% rename from assets/controllers/csrf_protection_controller.js rename to app/assets/controllers/csrf_protection_controller.js diff --git a/assets/controllers/header_dropdown_controller.js b/app/assets/controllers/header_dropdown_controller.js similarity index 100% rename from assets/controllers/header_dropdown_controller.js rename to app/assets/controllers/header_dropdown_controller.js diff --git a/assets/controllers/hello_controller.js b/app/assets/controllers/hello_controller.js similarity index 100% rename from assets/controllers/hello_controller.js rename to app/assets/controllers/hello_controller.js diff --git a/assets/controllers/mod_optional_controller.js b/app/assets/controllers/mod_optional_controller.js similarity index 100% rename from assets/controllers/mod_optional_controller.js rename to app/assets/controllers/mod_optional_controller.js diff --git a/assets/controllers/modpack_download_controller.js b/app/assets/controllers/modpack_download_controller.js similarity index 100% rename from assets/controllers/modpack_download_controller.js rename to app/assets/controllers/modpack_download_controller.js diff --git a/assets/controllers/theme_toggle_controller.js b/app/assets/controllers/theme_toggle_controller.js similarity index 100% rename from assets/controllers/theme_toggle_controller.js rename to app/assets/controllers/theme_toggle_controller.js diff --git a/assets/controllers/tom-select_controller.js b/app/assets/controllers/tom-select_controller.js similarity index 100% rename from assets/controllers/tom-select_controller.js rename to app/assets/controllers/tom-select_controller.js diff --git a/assets/images/bg-dark.png b/app/assets/images/bg-dark.png similarity index 100% rename from assets/images/bg-dark.png rename to app/assets/images/bg-dark.png diff --git a/assets/images/bg-light.png b/app/assets/images/bg-light.png similarity index 100% rename from assets/images/bg-light.png rename to app/assets/images/bg-light.png diff --git a/assets/js/header.js b/app/assets/js/header.js similarity index 100% rename from assets/js/header.js rename to app/assets/js/header.js diff --git a/assets/stimulus_bootstrap.js b/app/assets/stimulus_bootstrap.js similarity index 100% rename from assets/stimulus_bootstrap.js rename to app/assets/stimulus_bootstrap.js diff --git a/assets/styles/administration/index.css b/app/assets/styles/administration/index.css similarity index 100% rename from assets/styles/administration/index.css rename to app/assets/styles/administration/index.css diff --git a/assets/styles/administration/modpacks/index.css b/app/assets/styles/administration/modpacks/index.css similarity index 100% rename from assets/styles/administration/modpacks/index.css rename to app/assets/styles/administration/modpacks/index.css diff --git a/assets/styles/administration/mods/index.css b/app/assets/styles/administration/mods/index.css similarity index 100% rename from assets/styles/administration/mods/index.css rename to app/assets/styles/administration/mods/index.css diff --git a/assets/styles/administration/users/index.css b/app/assets/styles/administration/users/index.css similarity index 100% rename from assets/styles/administration/users/index.css rename to app/assets/styles/administration/users/index.css diff --git a/assets/styles/app.css b/app/assets/styles/app.css similarity index 100% rename from assets/styles/app.css rename to app/assets/styles/app.css diff --git a/assets/styles/globals/bulles.css b/app/assets/styles/globals/bulles.css similarity index 100% rename from assets/styles/globals/bulles.css rename to app/assets/styles/globals/bulles.css diff --git a/assets/styles/globals/form.css b/app/assets/styles/globals/form.css similarity index 100% rename from assets/styles/globals/form.css rename to app/assets/styles/globals/form.css diff --git a/assets/styles/globals/navbutton.css b/app/assets/styles/globals/navbutton.css similarity index 100% rename from assets/styles/globals/navbutton.css rename to app/assets/styles/globals/navbutton.css diff --git a/assets/styles/partials/flash.css b/app/assets/styles/partials/flash.css similarity index 100% rename from assets/styles/partials/flash.css rename to app/assets/styles/partials/flash.css diff --git a/assets/styles/partials/header.css b/app/assets/styles/partials/header.css similarity index 100% rename from assets/styles/partials/header.css rename to app/assets/styles/partials/header.css diff --git a/assets/styles/vitrine/index.css b/app/assets/styles/vitrine/index.css similarity index 100% rename from assets/styles/vitrine/index.css rename to app/assets/styles/vitrine/index.css diff --git a/bin/console b/app/bin/console similarity index 100% rename from bin/console rename to app/bin/console diff --git a/bin/phpunit b/app/bin/phpunit similarity index 100% rename from bin/phpunit rename to app/bin/phpunit diff --git a/compose.override.yaml b/app/compose.override.yaml similarity index 100% rename from compose.override.yaml rename to app/compose.override.yaml diff --git a/compose.yaml b/app/compose.yaml similarity index 100% rename from compose.yaml rename to app/compose.yaml diff --git a/composer.json b/app/composer.json similarity index 100% rename from composer.json rename to app/composer.json diff --git a/composer.lock b/app/composer.lock similarity index 100% rename from composer.lock rename to app/composer.lock diff --git a/config/bundles.php b/app/config/bundles.php similarity index 100% rename from config/bundles.php rename to app/config/bundles.php diff --git a/config/packages/asset_mapper.yaml b/app/config/packages/asset_mapper.yaml similarity index 100% rename from config/packages/asset_mapper.yaml rename to app/config/packages/asset_mapper.yaml diff --git a/config/packages/cache.yaml b/app/config/packages/cache.yaml similarity index 100% rename from config/packages/cache.yaml rename to app/config/packages/cache.yaml diff --git a/config/packages/csrf.yaml b/app/config/packages/csrf.yaml similarity index 100% rename from config/packages/csrf.yaml rename to app/config/packages/csrf.yaml diff --git a/config/packages/debug.yaml b/app/config/packages/debug.yaml similarity index 100% rename from config/packages/debug.yaml rename to app/config/packages/debug.yaml diff --git a/config/packages/doctrine.yaml b/app/config/packages/doctrine.yaml similarity index 100% rename from config/packages/doctrine.yaml rename to app/config/packages/doctrine.yaml diff --git a/config/packages/doctrine_migrations.yaml b/app/config/packages/doctrine_migrations.yaml similarity index 100% rename from config/packages/doctrine_migrations.yaml rename to app/config/packages/doctrine_migrations.yaml diff --git a/config/packages/framework.yaml b/app/config/packages/framework.yaml similarity index 100% rename from config/packages/framework.yaml rename to app/config/packages/framework.yaml diff --git a/config/packages/mailer.yaml b/app/config/packages/mailer.yaml similarity index 100% rename from config/packages/mailer.yaml rename to app/config/packages/mailer.yaml diff --git a/config/packages/messenger.yaml b/app/config/packages/messenger.yaml similarity index 100% rename from config/packages/messenger.yaml rename to app/config/packages/messenger.yaml diff --git a/config/packages/monolog.yaml b/app/config/packages/monolog.yaml similarity index 100% rename from config/packages/monolog.yaml rename to app/config/packages/monolog.yaml diff --git a/config/packages/notifier.yaml b/app/config/packages/notifier.yaml similarity index 100% rename from config/packages/notifier.yaml rename to app/config/packages/notifier.yaml diff --git a/config/packages/property_info.yaml b/app/config/packages/property_info.yaml similarity index 100% rename from config/packages/property_info.yaml rename to app/config/packages/property_info.yaml diff --git a/config/packages/routing.yaml b/app/config/packages/routing.yaml similarity index 100% rename from config/packages/routing.yaml rename to app/config/packages/routing.yaml diff --git a/config/packages/security.yaml b/app/config/packages/security.yaml similarity index 100% rename from config/packages/security.yaml rename to app/config/packages/security.yaml diff --git a/config/packages/translation.yaml b/app/config/packages/translation.yaml similarity index 100% rename from config/packages/translation.yaml rename to app/config/packages/translation.yaml diff --git a/config/packages/twig.yaml b/app/config/packages/twig.yaml similarity index 100% rename from config/packages/twig.yaml rename to app/config/packages/twig.yaml diff --git a/config/packages/ux_turbo.yaml b/app/config/packages/ux_turbo.yaml similarity index 100% rename from config/packages/ux_turbo.yaml rename to app/config/packages/ux_turbo.yaml diff --git a/config/packages/validator.yaml b/app/config/packages/validator.yaml similarity index 100% rename from config/packages/validator.yaml rename to app/config/packages/validator.yaml diff --git a/config/packages/web_profiler.yaml b/app/config/packages/web_profiler.yaml similarity index 100% rename from config/packages/web_profiler.yaml rename to app/config/packages/web_profiler.yaml diff --git a/config/preload.php b/app/config/preload.php similarity index 100% rename from config/preload.php rename to app/config/preload.php diff --git a/config/reference.php b/app/config/reference.php similarity index 100% rename from config/reference.php rename to app/config/reference.php diff --git a/config/routes.yaml b/app/config/routes.yaml similarity index 100% rename from config/routes.yaml rename to app/config/routes.yaml diff --git a/config/routes/framework.yaml b/app/config/routes/framework.yaml similarity index 100% rename from config/routes/framework.yaml rename to app/config/routes/framework.yaml diff --git a/config/routes/routing.controllers.yaml b/app/config/routes/routing.controllers.yaml similarity index 100% rename from config/routes/routing.controllers.yaml rename to app/config/routes/routing.controllers.yaml diff --git a/config/routes/security.yaml b/app/config/routes/security.yaml similarity index 100% rename from config/routes/security.yaml rename to app/config/routes/security.yaml diff --git a/config/routes/web_profiler.yaml b/app/config/routes/web_profiler.yaml similarity index 100% rename from config/routes/web_profiler.yaml rename to app/config/routes/web_profiler.yaml diff --git a/config/services.yaml b/app/config/services.yaml similarity index 100% rename from config/services.yaml rename to app/config/services.yaml diff --git a/document/DOCUMENTATION_API.md b/app/document/DOCUMENTATION_API.md similarity index 100% rename from document/DOCUMENTATION_API.md rename to app/document/DOCUMENTATION_API.md diff --git a/document/GUIDE_USER_RAPIDE_API.md b/app/document/GUIDE_USER_RAPIDE_API.md similarity index 100% rename from document/GUIDE_USER_RAPIDE_API.md rename to app/document/GUIDE_USER_RAPIDE_API.md diff --git a/document/INDEX.md b/app/document/INDEX.md similarity index 100% rename from document/INDEX.md rename to app/document/INDEX.md diff --git a/importmap.php b/app/importmap.php similarity index 100% rename from importmap.php rename to app/importmap.php diff --git a/migrations/.gitignore b/app/migrations/.gitignore similarity index 100% rename from migrations/.gitignore rename to app/migrations/.gitignore diff --git a/migrations/Version20260320225432.php b/app/migrations/Version20260320225432.php similarity index 99% rename from migrations/Version20260320225432.php rename to app/migrations/Version20260320225432.php index cdc3ad8..7069d43 100644 --- a/migrations/Version20260320225432.php +++ b/app/migrations/Version20260320225432.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace DoctrineMigrations; +namespace app\migrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; diff --git a/migrations/Version20260403163636.php b/app/migrations/Version20260403163636.php similarity index 96% rename from migrations/Version20260403163636.php rename to app/migrations/Version20260403163636.php index d871de6..891827c 100644 --- a/migrations/Version20260403163636.php +++ b/app/migrations/Version20260403163636.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace DoctrineMigrations; +namespace app\migrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; diff --git a/migrations/Version20260403164519.php b/app/migrations/Version20260403164519.php similarity index 98% rename from migrations/Version20260403164519.php rename to app/migrations/Version20260403164519.php index fbd2c07..f4ca8ec 100644 --- a/migrations/Version20260403164519.php +++ b/app/migrations/Version20260403164519.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace DoctrineMigrations; +namespace app\migrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; diff --git a/migrations/Version20260405171429.php b/app/migrations/Version20260405171429.php similarity index 98% rename from migrations/Version20260405171429.php rename to app/migrations/Version20260405171429.php index 292aad6..e3f1876 100644 --- a/migrations/Version20260405171429.php +++ b/app/migrations/Version20260405171429.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace DoctrineMigrations; +namespace app\migrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; diff --git a/migrations/Version20260406173517.php b/app/migrations/Version20260406173517.php similarity index 96% rename from migrations/Version20260406173517.php rename to app/migrations/Version20260406173517.php index bbfba42..84460a7 100644 --- a/migrations/Version20260406173517.php +++ b/app/migrations/Version20260406173517.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace DoctrineMigrations; +namespace app\migrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; diff --git a/migrations/Version20260407125351.php b/app/migrations/Version20260407125351.php similarity index 96% rename from migrations/Version20260407125351.php rename to app/migrations/Version20260407125351.php index 20a03b1..25b20cb 100644 --- a/migrations/Version20260407125351.php +++ b/app/migrations/Version20260407125351.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace DoctrineMigrations; +namespace app\migrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; diff --git a/phpunit.dist.xml b/app/phpunit.dist.xml similarity index 100% rename from phpunit.dist.xml rename to app/phpunit.dist.xml diff --git a/public/index.php b/app/public/index.php similarity index 100% rename from public/index.php rename to app/public/index.php diff --git a/src/Command/ApiKeyCreateCommand.php b/app/src/Command/ApiKeyCreateCommand.php similarity index 100% rename from src/Command/ApiKeyCreateCommand.php rename to app/src/Command/ApiKeyCreateCommand.php diff --git a/src/Command/ApiTestCommand.php b/app/src/Command/ApiTestCommand.php similarity index 100% rename from src/Command/ApiTestCommand.php rename to app/src/Command/ApiTestCommand.php diff --git a/src/Controller/.gitignore b/app/src/Controller/.gitignore similarity index 100% rename from src/Controller/.gitignore rename to app/src/Controller/.gitignore diff --git a/src/Controller/AdministrationController.php b/app/src/Controller/AdministrationController.php similarity index 100% rename from src/Controller/AdministrationController.php rename to app/src/Controller/AdministrationController.php diff --git a/src/Controller/Api/V1/ApiKeyController.php b/app/src/Controller/Api/V1/ApiKeyController.php similarity index 100% rename from src/Controller/Api/V1/ApiKeyController.php rename to app/src/Controller/Api/V1/ApiKeyController.php diff --git a/src/Controller/Api/V1/StateController.php b/app/src/Controller/Api/V1/StateController.php similarity index 100% rename from src/Controller/Api/V1/StateController.php rename to app/src/Controller/Api/V1/StateController.php diff --git a/src/Controller/ModpackController.php b/app/src/Controller/ModpackController.php similarity index 100% rename from src/Controller/ModpackController.php rename to app/src/Controller/ModpackController.php diff --git a/src/Controller/SecurityController.php b/app/src/Controller/SecurityController.php similarity index 100% rename from src/Controller/SecurityController.php rename to app/src/Controller/SecurityController.php diff --git a/src/Controller/SettingsController.php b/app/src/Controller/SettingsController.php similarity index 100% rename from src/Controller/SettingsController.php rename to app/src/Controller/SettingsController.php diff --git a/src/Controller/VitrineController.php b/app/src/Controller/VitrineController.php similarity index 100% rename from src/Controller/VitrineController.php rename to app/src/Controller/VitrineController.php diff --git a/src/Entity/.gitignore b/app/src/Entity/.gitignore similarity index 100% rename from src/Entity/.gitignore rename to app/src/Entity/.gitignore diff --git a/src/Entity/ApiKey.php b/app/src/Entity/ApiKey.php similarity index 100% rename from src/Entity/ApiKey.php rename to app/src/Entity/ApiKey.php diff --git a/src/Entity/CategoriePublication.php b/app/src/Entity/CategoriePublication.php similarity index 100% rename from src/Entity/CategoriePublication.php rename to app/src/Entity/CategoriePublication.php diff --git a/src/Entity/Constitue.php b/app/src/Entity/Constitue.php similarity index 100% rename from src/Entity/Constitue.php rename to app/src/Entity/Constitue.php diff --git a/src/Entity/Illustration.php b/app/src/Entity/Illustration.php similarity index 100% rename from src/Entity/Illustration.php rename to app/src/Entity/Illustration.php diff --git a/src/Entity/Joueur.php b/app/src/Entity/Joueur.php similarity index 100% rename from src/Entity/Joueur.php rename to app/src/Entity/Joueur.php diff --git a/src/Entity/Mod.php b/app/src/Entity/Mod.php similarity index 100% rename from src/Entity/Mod.php rename to app/src/Entity/Mod.php diff --git a/src/Entity/Modpack.php b/app/src/Entity/Modpack.php similarity index 100% rename from src/Entity/Modpack.php rename to app/src/Entity/Modpack.php diff --git a/src/Entity/Publication.php b/app/src/Entity/Publication.php similarity index 100% rename from src/Entity/Publication.php rename to app/src/Entity/Publication.php diff --git a/src/Entity/Session.php b/app/src/Entity/Session.php similarity index 100% rename from src/Entity/Session.php rename to app/src/Entity/Session.php diff --git a/src/Entity/Territoire.php b/app/src/Entity/Territoire.php similarity index 100% rename from src/Entity/Territoire.php rename to app/src/Entity/Territoire.php diff --git a/src/Entity/User.php b/app/src/Entity/User.php similarity index 100% rename from src/Entity/User.php rename to app/src/Entity/User.php diff --git a/src/EventListener/ApiExceptionListener.php b/app/src/EventListener/ApiExceptionListener.php similarity index 100% rename from src/EventListener/ApiExceptionListener.php rename to app/src/EventListener/ApiExceptionListener.php diff --git a/src/EventListener/ApiForceSessionListener.php b/app/src/EventListener/ApiForceSessionListener.php similarity index 100% rename from src/EventListener/ApiForceSessionListener.php rename to app/src/EventListener/ApiForceSessionListener.php diff --git a/src/EventSubscriber/AccessDeniedSubscriber.php b/app/src/EventSubscriber/AccessDeniedSubscriber.php similarity index 100% rename from src/EventSubscriber/AccessDeniedSubscriber.php rename to app/src/EventSubscriber/AccessDeniedSubscriber.php diff --git a/src/EventSubscriber/LogoutSubscriber.php b/app/src/EventSubscriber/LogoutSubscriber.php similarity index 100% rename from src/EventSubscriber/LogoutSubscriber.php rename to app/src/EventSubscriber/LogoutSubscriber.php diff --git a/src/EventSubscriber/TwigGlobalSubscriber.php b/app/src/EventSubscriber/TwigGlobalSubscriber.php similarity index 100% rename from src/EventSubscriber/TwigGlobalSubscriber.php rename to app/src/EventSubscriber/TwigGlobalSubscriber.php diff --git a/src/Form/Mod/ModType.php b/app/src/Form/Mod/ModType.php similarity index 100% rename from src/Form/Mod/ModType.php rename to app/src/Form/Mod/ModType.php diff --git a/src/Form/Modpack/ModpackDownloadType.php b/app/src/Form/Modpack/ModpackDownloadType.php similarity index 100% rename from src/Form/Modpack/ModpackDownloadType.php rename to app/src/Form/Modpack/ModpackDownloadType.php diff --git a/src/Form/Modpack/ModpackType.php b/app/src/Form/Modpack/ModpackType.php similarity index 100% rename from src/Form/Modpack/ModpackType.php rename to app/src/Form/Modpack/ModpackType.php diff --git a/src/Form/User/Settings/ProfileType.php b/app/src/Form/User/Settings/ProfileType.php similarity index 100% rename from src/Form/User/Settings/ProfileType.php rename to app/src/Form/User/Settings/ProfileType.php diff --git a/src/Form/User/Settings/SecurityType.php b/app/src/Form/User/Settings/SecurityType.php similarity index 100% rename from src/Form/User/Settings/SecurityType.php rename to app/src/Form/User/Settings/SecurityType.php diff --git a/src/Form/User/UserFormType.php b/app/src/Form/User/UserFormType.php similarity index 100% rename from src/Form/User/UserFormType.php rename to app/src/Form/User/UserFormType.php diff --git a/src/Kernel.php b/app/src/Kernel.php similarity index 100% rename from src/Kernel.php rename to app/src/Kernel.php diff --git a/src/Repository/.gitignore b/app/src/Repository/.gitignore similarity index 100% rename from src/Repository/.gitignore rename to app/src/Repository/.gitignore diff --git a/src/Repository/ApiKeyRepository.php b/app/src/Repository/ApiKeyRepository.php similarity index 100% rename from src/Repository/ApiKeyRepository.php rename to app/src/Repository/ApiKeyRepository.php diff --git a/src/Repository/CategoriePublicationRepository.php b/app/src/Repository/CategoriePublicationRepository.php similarity index 100% rename from src/Repository/CategoriePublicationRepository.php rename to app/src/Repository/CategoriePublicationRepository.php diff --git a/src/Repository/ConstitueRepository.php b/app/src/Repository/ConstitueRepository.php similarity index 100% rename from src/Repository/ConstitueRepository.php rename to app/src/Repository/ConstitueRepository.php diff --git a/src/Repository/IllustrationRepository.php b/app/src/Repository/IllustrationRepository.php similarity index 100% rename from src/Repository/IllustrationRepository.php rename to app/src/Repository/IllustrationRepository.php diff --git a/src/Repository/JoueurRepository.php b/app/src/Repository/JoueurRepository.php similarity index 100% rename from src/Repository/JoueurRepository.php rename to app/src/Repository/JoueurRepository.php diff --git a/src/Repository/ModRepository.php b/app/src/Repository/ModRepository.php similarity index 100% rename from src/Repository/ModRepository.php rename to app/src/Repository/ModRepository.php diff --git a/src/Repository/ModpackRepository.php b/app/src/Repository/ModpackRepository.php similarity index 100% rename from src/Repository/ModpackRepository.php rename to app/src/Repository/ModpackRepository.php diff --git a/src/Repository/PublicationRepository.php b/app/src/Repository/PublicationRepository.php similarity index 100% rename from src/Repository/PublicationRepository.php rename to app/src/Repository/PublicationRepository.php diff --git a/src/Repository/SessionRepository.php b/app/src/Repository/SessionRepository.php similarity index 100% rename from src/Repository/SessionRepository.php rename to app/src/Repository/SessionRepository.php diff --git a/src/Repository/TerritoireRepository.php b/app/src/Repository/TerritoireRepository.php similarity index 100% rename from src/Repository/TerritoireRepository.php rename to app/src/Repository/TerritoireRepository.php diff --git a/src/Repository/UserRepository.php b/app/src/Repository/UserRepository.php similarity index 100% rename from src/Repository/UserRepository.php rename to app/src/Repository/UserRepository.php diff --git a/src/Security/AccessDeniedHandler.php b/app/src/Security/AccessDeniedHandler.php similarity index 100% rename from src/Security/AccessDeniedHandler.php rename to app/src/Security/AccessDeniedHandler.php diff --git a/src/Security/ApiAccessDeniedHandler.php b/app/src/Security/ApiAccessDeniedHandler.php similarity index 100% rename from src/Security/ApiAccessDeniedHandler.php rename to app/src/Security/ApiAccessDeniedHandler.php diff --git a/src/Security/ApiAuthenticationEntryPoint.php b/app/src/Security/ApiAuthenticationEntryPoint.php similarity index 100% rename from src/Security/ApiAuthenticationEntryPoint.php rename to app/src/Security/ApiAuthenticationEntryPoint.php diff --git a/src/Security/ApiBearerTokenAuthenticator.php b/app/src/Security/ApiBearerTokenAuthenticator.php similarity index 100% rename from src/Security/ApiBearerTokenAuthenticator.php rename to app/src/Security/ApiBearerTokenAuthenticator.php diff --git a/src/Security/ApiTokenHandler.php b/app/src/Security/ApiTokenHandler.php similarity index 100% rename from src/Security/ApiTokenHandler.php rename to app/src/Security/ApiTokenHandler.php diff --git a/src/Security/ApiUserProvider.php b/app/src/Security/ApiUserProvider.php similarity index 100% rename from src/Security/ApiUserProvider.php rename to app/src/Security/ApiUserProvider.php diff --git a/src/Security/LoginFailureHandler.php b/app/src/Security/LoginFailureHandler.php similarity index 100% rename from src/Security/LoginFailureHandler.php rename to app/src/Security/LoginFailureHandler.php diff --git a/src/Security/LoginSuccessHandler.php b/app/src/Security/LoginSuccessHandler.php similarity index 100% rename from src/Security/LoginSuccessHandler.php rename to app/src/Security/LoginSuccessHandler.php diff --git a/src/Security/LogoutSuccessHandler.php b/app/src/Security/LogoutSuccessHandler.php similarity index 100% rename from src/Security/LogoutSuccessHandler.php rename to app/src/Security/LogoutSuccessHandler.php diff --git a/src/Service/ModpackZipService.php b/app/src/Service/ModpackZipService.php similarity index 100% rename from src/Service/ModpackZipService.php rename to app/src/Service/ModpackZipService.php diff --git a/src/Service/UploaderService.php b/app/src/Service/UploaderService.php similarity index 100% rename from src/Service/UploaderService.php rename to app/src/Service/UploaderService.php diff --git a/symfony.lock b/app/symfony.lock similarity index 100% rename from symfony.lock rename to app/symfony.lock diff --git a/templates/administration/index.html.twig b/app/templates/administration/index.html.twig similarity index 100% rename from templates/administration/index.html.twig rename to app/templates/administration/index.html.twig diff --git a/templates/administration/modpacks/edit.html.twig b/app/templates/administration/modpacks/edit.html.twig similarity index 100% rename from templates/administration/modpacks/edit.html.twig rename to app/templates/administration/modpacks/edit.html.twig diff --git a/templates/administration/modpacks/index.html.twig b/app/templates/administration/modpacks/index.html.twig similarity index 100% rename from templates/administration/modpacks/index.html.twig rename to app/templates/administration/modpacks/index.html.twig diff --git a/templates/administration/mods/edit.html.twig b/app/templates/administration/mods/edit.html.twig similarity index 100% rename from templates/administration/mods/edit.html.twig rename to app/templates/administration/mods/edit.html.twig diff --git a/templates/administration/mods/index.html.twig b/app/templates/administration/mods/index.html.twig similarity index 100% rename from templates/administration/mods/index.html.twig rename to app/templates/administration/mods/index.html.twig diff --git a/templates/administration/users/edit.html.twig b/app/templates/administration/users/edit.html.twig similarity index 100% rename from templates/administration/users/edit.html.twig rename to app/templates/administration/users/edit.html.twig diff --git a/templates/administration/users/index.html.twig b/app/templates/administration/users/index.html.twig similarity index 100% rename from templates/administration/users/index.html.twig rename to app/templates/administration/users/index.html.twig diff --git a/templates/base.html.twig b/app/templates/base.html.twig similarity index 100% rename from templates/base.html.twig rename to app/templates/base.html.twig diff --git a/templates/modpack/index.html.twig b/app/templates/modpack/index.html.twig similarity index 100% rename from templates/modpack/index.html.twig rename to app/templates/modpack/index.html.twig diff --git a/templates/partials/_header.html.twig b/app/templates/partials/_header.html.twig similarity index 100% rename from templates/partials/_header.html.twig rename to app/templates/partials/_header.html.twig diff --git a/templates/partials/_login_dropdown.html.twig b/app/templates/partials/_login_dropdown.html.twig similarity index 100% rename from templates/partials/_login_dropdown.html.twig rename to app/templates/partials/_login_dropdown.html.twig diff --git a/templates/partials/_logout_dropdown.html.twig b/app/templates/partials/_logout_dropdown.html.twig similarity index 100% rename from templates/partials/_logout_dropdown.html.twig rename to app/templates/partials/_logout_dropdown.html.twig diff --git a/templates/partials/_theme_toggle.html.twig b/app/templates/partials/_theme_toggle.html.twig similarity index 100% rename from templates/partials/_theme_toggle.html.twig rename to app/templates/partials/_theme_toggle.html.twig diff --git a/templates/security/login.html.twig b/app/templates/security/login.html.twig similarity index 100% rename from templates/security/login.html.twig rename to app/templates/security/login.html.twig diff --git a/templates/settings/base.html.twig b/app/templates/settings/base.html.twig similarity index 100% rename from templates/settings/base.html.twig rename to app/templates/settings/base.html.twig diff --git a/templates/settings/profile.html.twig b/app/templates/settings/profile.html.twig similarity index 100% rename from templates/settings/profile.html.twig rename to app/templates/settings/profile.html.twig diff --git a/templates/settings/security.html.twig b/app/templates/settings/security.html.twig similarity index 100% rename from templates/settings/security.html.twig rename to app/templates/settings/security.html.twig diff --git a/templates/vitrine/index.html.twig b/app/templates/vitrine/index.html.twig similarity index 100% rename from templates/vitrine/index.html.twig rename to app/templates/vitrine/index.html.twig diff --git a/tests/bootstrap.php b/app/tests/bootstrap.php similarity index 100% rename from tests/bootstrap.php rename to app/tests/bootstrap.php diff --git a/translations/.gitignore b/app/translations/.gitignore similarity index 100% rename from translations/.gitignore rename to app/translations/.gitignore diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..18ca55b --- /dev/null +++ b/compose.yml @@ -0,0 +1,32 @@ +# ============================================================ +# Stack Symfony — minecraft.ploush.top +# Traefik (rvproxy) + PostgreSQL (db_networking) externes +# ============================================================ + +services: + + apache: + image: ghcr.io/ploush/mcServerWebsite:latest + container_name: apache_symfony + restart: unless-stopped + environment: + APP_ENV: prod + networks: + - rvproxy + - localdb + labels: + - "traefik.enable=true" + - "traefik.docker.network=rvproxy" + # Routeur + - "traefik.http.routers.symfony.rule=Host(`minecraft.ploush.top`)" + - "traefik.http.routers.symfony.entrypoints=websecure" + - "traefik.http.routers.symfony.tls=true" + - "traefik.http.routers.symfony.tls.certresolver=myresolver" + # Service interne (port Apache) + - "traefik.http.services.symfony.loadbalancer.server.port=80" + +networks: + rvproxy: + external: true + localdb: + external: true diff --git a/docker/apache/Dockerfile b/docker/apache/Dockerfile new file mode 100644 index 0000000..ad481c7 --- /dev/null +++ b/docker/apache/Dockerfile @@ -0,0 +1,47 @@ +# ============================================================ +# Image Apache + PHP pour Symfony +# Le code source est copié dans l'image au moment du build +# ============================================================ + +FROM php:8.3-apache + +# ── Dépendances système ────────────────────────────────────── +RUN apt-get update && apt-get install -y \ + libicu-dev \ + libzip-dev \ + libpq-dev \ + unzip \ + git \ + && docker-php-ext-install \ + intl \ + pdo \ + pdo_pgsql \ + zip \ + opcache \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# ── Modules Apache ─────────────────────────────────────────── +RUN a2enmod rewrite headers + +# ── Composer ──────────────────────────────────────────────── +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer + +# ── Code source Symfony ────────────────────────────────────── +WORKDIR /var/www/html + +# On copie d'abord composer.json pour profiter du cache Docker +COPY app/composer.json app/composer.lock ./ +RUN composer install --no-dev --optimize-autoloader --no-scripts --no-interaction + +# Puis le reste du code +COPY app/ . + +# ── Droits ────────────────────────────────────────────────── +RUN chown -R www-data:www-data /var/www/html \ + && chmod -R 755 /var/www/html/var + +# ── Config Apache ──────────────────────────────────────────── +COPY docker/apache/symfony.conf /etc/apache2/sites-enabled/000-default.conf + +EXPOSE 80 diff --git a/docker/apache/symfony.conf b/docker/apache/symfony.conf new file mode 100644 index 0000000..828156c --- /dev/null +++ b/docker/apache/symfony.conf @@ -0,0 +1,30 @@ +# ============================================================ +# VirtualHost Apache pour Symfony +# Le TLS est géré par Traefik, Apache écoute en HTTP simple +# ============================================================ + + + ServerName minecraft.ploush.top + DocumentRoot /var/www/html/public + + + AllowOverride None + Require all granted + + # Toutes les requêtes sont renvoyées vers le front controller Symfony + FallbackResource /index.php + + + # Interdit l'accès aux fichiers sensibles + + Require all denied + + + # En-têtes de sécurité de base + Header always set X-Content-Type-Options "nosniff" + Header always set X-Frame-Options "SAMEORIGIN" + Header always set Referrer-Policy "strict-origin-when-cross-origin" + + ErrorLog ${APACHE_LOG_DIR}/symfony_error.log + CustomLog ${APACHE_LOG_DIR}/symfony_access.log combined +