# Déploiement Le workflow [`.github/workflows/deploy.yml`](../.github/workflows/deploy.yml) se déclenche sur **chaque push sur `main`** : 1. build de l'image `backend` ; 2. push sur `ghcr.io//-backend` (tags `latest` et `sha-`) ; 3. copie de `deploy/docker-compose.prod.yml` sur le VPS par SSH ; 4. `docker compose -f docker-compose.prod.yml pull && up -d`. ## Secrets GitHub Actions requis | Secret | Description | |----------------|----------------------------------------------------------------| | `SSH_HOST` | Hôte du VPS | | `SSH_USER` | Utilisateur SSH | | `SSH_KEY` | Clé privée SSH (format OpenSSH) | | `DEPLOY_PATH` | Dossier du projet sur le VPS (ex. `/opt/benevoles`) | | `GHCR_TOKEN` | PAT avec scope `read:packages`, pour que le VPS tire l'image | ## Préparation du VPS (une fois) ```bash mkdir -p /opt/benevoles cd /opt/benevoles cat > .env <<'EOF' POSTGRES_USER=benevoles POSTGRES_PASSWORD= POSTGRES_DB=benevoles JWT_SECRET= EOF ``` Le workflow dépose `docker-compose.prod.yml` dans ce dossier et l'utilise tel quel.