# Countdown Application Symfony capable d'enregistrer des timers et de les restituer à un frontend Javascript qui lancera les timers appropriés. ![Workflow](./countdownWorkflow.png) # Déploiement sur serveur ## Pré requis : Debian 12 Bookworm, ou une distribution avec php8.2 et Mariadb-server Je pars sur un container LXC avec une Debian 12 Bookworm toute fraiche ```bash apt install zip php8.2 php8.2-{xml,zip,mysql} git mariadb-server ``` On installe composer (si composer est déjà dispo sur le serveur, c'est cool aussi) ```bash php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" mv composer.phar /usr/local/bin/composer ``` Création d'un user (ca c'est pareil si vous avez déjà une machine avec des users, pas besoin de se prendre la tête) ```bash adduser bidule ``` En utilisateur : ```bash git clone https://gogs.fdlibre.eu/sangfroid/countdown-symfony.git cd countdown-symfony composer install --no-dev --optimize-autoloader ``` Une erreur liée au MakerBundle vient crier lorsque le clear:cache est effectué. Ce n'est rien, et je vais surement le retirer des packages de dev. On'a encore pas précisé à notre application qu'elle va travailler en Prod : ```bash composer dump-env prod ``` Le fichier .env.local.php est créé à partir du .env On le corrige un peu : ```bash vi .env.local.php ``` On passe la variable env à 'prod' on vient remplacer le user, le mot de passe et le nom de la base de donnée dans la ligne mysql Ensuite, on initialise la base de données ```bash php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate ```