gitea ci
ci-cd / backend-test (push) Failing after 7m57s
ci-cd / build-backend (push) Skipped
ci-cd / frontend-test (push) Failing after 32s
ci-cd / build-frontend (push) Skipped
ci-cd / deploy (push) Skipped

This commit is contained in:
AdamThomas
2026-09-16 21:09:28 +02:00
parent 0ede409841
commit 010cac8adc
8 changed files with 237 additions and 170 deletions
+13 -10
View File
@@ -398,11 +398,11 @@ fonctions d'IA. *(L'envoi d'emails par SMTP est en place — voir § 2.)*
├── README.md
├── docker-compose.yml # dev : db + backend (hot reload)
├── .env.example
├── .gitlab-ci.yml # CI/CD : tests → build (registre GitLab) → SSH sur le VPS
├── .gitea/workflows/ci-cd.yml # CI/CD : tests → build (registre Gitea) → SSH sur le VPS
├── deploy/
│ ├── docker-compose.prod.yml # db + backend + frontend, ports en 127.0.0.1
│ ├── Caddyfile.benevoles # bloc à ajouter au Caddy du VPS (reverse proxy)
│ └── README.md # variables CI/CD requises, mise en service du VPS
│ └── README.md # secrets/variables CI/CD requis, mise en service du VPS
├── docker/postgres-init/ # création de la base de test au 1er boot
├── backend/
│ ├── pyproject.toml # géré par uv
@@ -481,19 +481,22 @@ Aucune dépendance locale requise hors Docker.
## 9. Déploiement
- Dépôt GitLab. VPS avec Docker + un Caddy déjà installé en service système
(hors de ce dépôt), qui reçoit tout le trafic public en HTTPS et fait
reverse proxy vers les conteneurs.
- `.gitlab-ci.yml` : à chaque push, tests (backend + frontend) ; sur `main`
seulement, build des images `backend` et `frontend` (registre de conteneurs
du projet GitLab) puis SSH sur le VPS → copie de
- Dépôt Gitea (instance auto-hébergée). VPS avec Docker + un Caddy déjà
installé en service système (hors de ce dépôt), qui reçoit tout le trafic
public en HTTPS et fait reverse proxy vers les conteneurs. Nécessite un
runner Gitea Actions (`act_runner`, exécuteur Docker) attaché au dépôt.
- `.gitea/workflows/ci-cd.yml` : à chaque push, tests (backend + frontend) ;
sur `main` seulement, build des images `backend` et `frontend` (registre de
conteneurs intégré à Gitea) puis SSH sur le VPS → copie de
`deploy/docker-compose.prod.yml` → `pull` → migration Alembic → `up -d`.
- Le frontend est un **build statique** (`frontend/Dockerfile.prod`, servi par
nginx) : `VITE_API_MODE`/`VITE_EDITION_ID` sont figées au moment du build,
pas à l'exécution — l'édition de production doit donc exister avant la
première construction de cette image (voir `deploy/README.md`).
- Variables CI/CD requises (voir `deploy/README.md`) : `SSH_HOST`, `SSH_USER`,
`SSH_KEY`, `DEPLOY_PATH`, `VITE_EDITION_ID`.
- Secrets/variables Actions requis (voir `deploy/README.md`) : secrets
`REGISTRY_TOKEN`, `SSH_KEY` ; variables `REGISTRY_HOST`,
`REGISTRY_NAMESPACE`, `REGISTRY_USER`, `SSH_HOST`, `SSH_USER`,
`DEPLOY_PATH`, `VITE_EDITION_ID`.
- Le VPS porte un fichier `.env` (non versionné) avec `POSTGRES_USER`,
`POSTGRES_PASSWORD`, `POSTGRES_DB`, `JWT_SECRET`, `PUBLIC_BASE_URL` et les
variables `EMAIL_ENABLED` / `SMTP_*` (voir `deploy/README.md`).