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 +