2.9 KiB
2.9 KiB
Déploiement Ferme (release Gitea)
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 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
Dossier de déploiement
- Créer le dossier de déploiement
sudo mkdir -p /var/www/ferme sudo chown -R malio:malio /var/www/ferme - Créer le fichier d’environnement
- Backend :
/var/www/ferme/.envAPP_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
- 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)
Copier le fichier de conf /deploy/nginx/ferme.conf dans /etc/nginx/sites-available/ferme.confsudo ln -s /etc/nginx/sites-available/ferme.conf /etc/nginx/sites-enabled/ferme.conf sudo nginx -t && sudo systemctl reload nginx - Installer le script de déploiement (disponible /scripts/deploy-release.sh)
sudo nano /usr/local/bin/deploy-ferme sudo chmod +x /usr/local/bin/deploy-ferme
2) Déployer une release
- Créer un tag sur
develop(auto-tagv0.0.X) - Attendre que la release Gitea soit publiée
- (Une seule fois) Donner les droits d'écriture à PHP sur
var/via ACLsudo apt update sudo apt install -y acl sudo setfacl -R -m u:malio:rwx,g:www-data:rwx /var/www/ferme/var sudo setfacl -R -m d:u:malio:rwx,d:g:www-data:rwx /var/www/ferme/var - Déployer la release
Notes :
/usr/local/bin/deploy-ferme vX.Y.Z- Lancer le déploiement en tant que
malio(ousudo -u malio) pour éviter de casser les droits. - Le script applique
umask 002pour garder les fichiers group-writable (www-data).
- Lancer le déploiement en tant que
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