# Bonne pratique CI — Stack openus + sonic Guide de référence pour déployer une nouvelle app sur la stack Woodpecker + Docker + Fabio. --- ## Architecture globale ``` Développeur │ git push ▼ Gitea (git.open.us.org) dépôts Git, OAuth Woodpecker │ webhook push ▼ Woodpecker server (open.us.org) orchestrateur CI, UI, API │ job dispatch ▼ Woodpecker agent (sonic) exécute les steps dans Docker │ docker run / docker compose ▼ Stack applicative (sonic) containers app + db sur réseau "sonic" │ ├── Consul (8500) registre de services + KV Fabio ├── Registrator enregistre auto les containers dans Consul ├── Fabio (:80/:443) reverse proxy TLS, routing par domaine └── sonic-acme-1 émission certs Let's Encrypt (acme.sh) ``` --- ## Serveurs | Serveur | Rôle | IP | |---|---|---| | `open.us.org` | Gitea + Woodpecker server (systemd) | - | | `sonic` | Woodpecker agent + Docker + toute la stack | `161.97.174.60` | ### Services sur sonic (toujours actifs) | Container | Rôle | |---|---| | `sonic-fabio` | Reverse proxy TLS, :80/:443/:9998 (UI) | | `sonic-consul` | Registre services, ACL activé, port 8500 | | `sonic-registrator` | Enregistre auto les containers dans Consul | | `sonic-acme-1` | Émet les certs Let's Encrypt (acme.sh, webroot) | | `sonic-nginx-80` | Catch-all 404 pour domaines sans route | --- ## Index des docs | Doc | Contenu | |---|---| | [infra-ci.md](infra-ci.md) | Gitea, Woodpecker server, Woodpecker agent — config et contraintes | | [woodpecker-tips.md](woodpecker-tips.md) | Tous les bugs connus + règles Woodpecker next | | [nouvelle-app-checklist.md](nouvelle-app-checklist.md) | Checklist complète pour déployer une nouvelle app | | [../docs-sbom/integration-nouvelle-app.md](../docs-sbom/integration-nouvelle-app.md) | Ajouter les 3 steps SBOM à une pipeline existante | | [../docs-sonic/stack-routing.md](../docs-sonic/stack-routing.md) | Fabio + Consul + Registrator (détail) | | [../docs-sonic/tls-certificats.md](../docs-sonic/tls-certificats.md) | Certs TLS via acme.sh (détail) | | [../docs-sonic/multi-env-conventions.md](../docs-sonic/multi-env-conventions.md) | COMPOSE_PROJECT_NAME, multi-user, multi-branch |