# Déploiement Ferme (release Gitea) ## 1) Premier déploiement ### Pré-requis système (Ubuntu) 1. Mettre à jour la machine ```bash sudo apt update sudo apt install -y software-properties-common ca-certificates curl gnupg unzip git nginx ``` 2. Installer PHP 8.4 + FPM + extensions ```bash 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 ``` 3. Installer PostgreSQL (si la DB est locale) ```bash sudo apt install -y postgresql postgresql-contrib sudo -u postgres psql ``` Dans psql : ```sql CREATE USER ferme_user WITH PASSWORD 'motdepassefort'; CREATE DATABASE ferme OWNER ferme_user; \q ``` ### Dossier de déploiement 1. Créer le dossier de déploiement ```bash sudo mkdir -p /var/www/ferme sudo chown -R malio:malio /var/www/ferme ``` 2. Créer le fichier d’environnement - Backend : `/var/www/ferme/.env` - `APP_ENV=prod` - `APP_DEBUG=0` - `APP_SECRET=...` - `DATABASE_URL=postgresql://ferme_user:motdepassefort@127.0.0.1:5432/ferme?serverVersion=16&charset=utf8` - `JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem` - `JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem` - `JWT_PASSPHRASE=...` - `COOKIE_SECURE=1` - `PONT_BASCULE_BYPASS=false` 3. Générer les clés JWT ```bash cd /var/www/ferme mkdir -p config/jwt php bin/console lexik:jwt:generate-keypair ``` 4. Config Nginx (sous-domaine)
Copier le fichier de conf /deploy/nginx/ferme.conf dans /etc/nginx/sites-available/ferme.conf ```bash sudo ln -s /etc/nginx/sites-available/ferme.conf /etc/nginx/sites-enabled/ferme.conf sudo nginx -t && sudo systemctl reload nginx ``` 5. Installer le script de déploiement (disponible /scripts/deploy-release.sh) ```bash sudo nano /usr/local/bin/deploy-ferme sudo chmod +x /usr/local/bin/deploy-ferme ``` ## 2) Déployer une release 1. Créer un tag sur `develop` (auto-tag `v0.0.X`) 2. Attendre que la release Gitea soit publiée 3. Déployer la release ```bash sudo DEPLOY_OWNER=malio DEPLOY_GROUP=www-data /usr/local/bin/deploy-ferme v0.0.X ``` ### 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`