3.1 KiB
3.1 KiB
Déploiement Ferme (recette)
1) Premier déploiement
Pré-requis système (Ubuntu)
- Mettre à jour la machine
sudo apt update sudo apt install -y software-properties-common ca-certificates curl gnupg unzip git nginx - Installer PHP 8.4 + FPM + extensions
sudo add-apt-repository -y ppa:ondrej/php sudo apt update sudo apt install -y \ php8.4 php8.4-fpm php8.4-cli php8.4-common \ php8.4-mbstring php8.4-xml php8.4-curl php8.4-intl \ php8.4-zip php8.4-gd php8.4-pgsql php8.4-opcache - Installer Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer rm composer-setup.php - Installer Node via NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash source ~/.bashrc nvm install --lts - Installer PostgreSQL (si la DB est locale)
Dans psql :
sudo apt install -y postgresql postgresql-contrib sudo -u postgres psqlCREATE USER ferme_user WITH PASSWORD 'motdepassefort'; CREATE DATABASE ferme OWNER ferme_user; \q
Déploiement applicatif
- Cloner le repo
sudo mkdir -p /var/www sudo git clone <repo> /var/www/ferme sudo chown -R malio:malio /var/www/ferme - Variables d’environnement
- Backend :
/var/www/ferme/.env.localAPP_ENV=prodAPP_DEBUG=0APP_SECRET=...DATABASE_URL=postgresql://ferme_user:motdepassefort@127.0.0.1:5432/ferme?serverVersion=16&charset=utf8JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pemJWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pemJWT_PASSPHRASE=...COOKIE_SECURE=1PONT_BASCULE_BYPASS=false
- Frontend :
/var/www/ferme/frontend/.envNUXT_PUBLIC_APP_BASE=/NUXT_PUBLIC_API_BASE=/api
- Backend :
- Générer les clés JWT
cd /var/www/ferme mkdir -p config/jwt php bin/console lexik:jwt:generate-keypair - Config Nginx (sous-domaine)
sudo cp /var/www/ferme/deploy/nginx/ferme.conf /etc/nginx/sites-available/ferme.conf sudo ln -s /etc/nginx/sites-available/ferme.conf /etc/nginx/sites-enabled/ferme.conf sudo nginx -t && sudo systemctl reload nginx - Déployer l’app
cd /var/www/ferme ./scripts/deploy-native.sh - Vérifications
- Front :
http://ferme.malio-dev.fr/ - API :
http://ferme.malio-dev.fr/api/users - Login :
POST http://ferme.malio-dev.fr/api/login_check
- Front :
2) Déployer une nouvelle version (app déjà en place)
- Mettre à jour le code + build + migrations
cd /var/www/ferme ./scripts/deploy-native.sh - Si changement de conf Nginx
sudo cp /var/www/ferme/deploy/nginx/ferme.conf /etc/nginx/sites-available/ferme.conf sudo nginx -t && sudo systemctl reload nginx - Si besoin, purger le cache Symfony
php /var/www/ferme/bin/console cache:clear --env=prod php /var/www/ferme/bin/console cache:warmup --env=prod