seize-infra-doc/README.md
Hedi Kalboussi 1e90a85359 Documentation initiale infra Seize — passation J7
- 6 docs racine (README, HANDOVER, ARCHITECTURE, DECISIONS, INSTALL, OPERATIONS)
- 9 docs thématiques dans docs/
- 10 templates docker-compose dans configs/
- 7 scripts Python/Shell d'import Furious vers Zitadel
- 2 matrices RBAC

Etat infra au 5 juin 2026 :
- 88 users Furious importes dans Zitadel
- 8 roles RBAC crees et attribues
- Intranet filtre les cartes selon role (Approche A)
- 7 outils SSO operationnels
2026-06-05 17:49:43 +00:00

150 lines
6.1 KiB
Markdown

# Seize Consulting — Infrastructure SSO & RBAC
> Documentation complète de l'infrastructure auto-hébergée de Seize Consulting.
> Stack Docker sur Scaleway, SSO Zitadel, RBAC sur intranet, import automatisé depuis Furious Squad.
**Dernière mise à jour :** 5 juin 2026
**Mainteneur sortant :** Hedi Kalboussi (HKA)
**Repère :** Jour 7 — Import 88 users + RBAC opérationnel
---
## 🚀 Démarrage rapide pour le nouveau mainteneur
Si tu reprends ce projet, **lis dans cet ordre** :
1. **[HANDOVER.md](./HANDOVER.md)** — Ce qui marche, ce qui reste à faire, alertes, secrets exposés
2. **[ARCHITECTURE.md](./ARCHITECTURE.md)** — Comprendre comment tout s'imbrique
3. **[DECISIONS.md](./DECISIONS.md)** — Pourquoi tel choix plutôt qu'un autre
4. **[OPERATIONS.md](./OPERATIONS.md)** — Comment maintenir, dépanner, ajouter un outil
5. **[INSTALL.md](./INSTALL.md)** — Comment redéployer from scratch sur un nouveau serveur
---
## 📋 État actuel de l'infrastructure (au 5 juin 2026)
### Serveur
- **Provider :** Scaleway
- **OS :** Debian 13 (Trixie)
- **Docker :** 29.5.1
- **IP publique :** 151.115.148.243 (à ne pas exposer dans la doc publique)
- **Domaine principal :** `seizeconsulting.com`
### Services en production
| Service | URL | Rôle | SSO |
|---|---|---|---|
| Traefik | `traefik.seizeconsulting.com` | Reverse proxy + TLS | ✅ |
| Zitadel | `sso.seizeconsulting.com` | Identity Provider (IDP) | N/A |
| Intranet | `intranet.seizeconsulting.com` | Page d'accueil + RBAC | ✅ |
| Gitea | `git.seizeconsulting.com` | Forge Git | ✅ auto-registration |
| n8n | `n8n.seizeconsulting.com` | Workflows | ✅ |
| Portainer | `portainer.seizeconsulting.com` | Gestion Docker | ✅ |
| Code Server | `code.seizeconsulting.com` | IDE web | ✅ |
| Uptime Kuma | `status.seizeconsulting.com` | Monitoring | ✅ |
### Utilisateurs Zitadel
- **88 collaborateurs Seize** importés depuis Furious Squad (jour 7)
- **1 admin technique** : `zitadel-admin`
- **1 service account** : `furious-import-service` (IAM_USER_MANAGER)
- **1 client technique** : `login-client` (auto-créé par Zitadel)
### RBAC (Approche A : filtrage côté intranet)
- **8 rôles** dans le project Zitadel "Infra Seize" :
`direction`, `manager`, `expert`, `consultant_senior`, `consultant_junior`,
`alternant`, `stagiaire`, `support`
- **Filtrage** : l'intranet HTML cache/affiche les cartes selon le rôle de l'user (lu via fichier JSON statique `roles-mapping.json`)
- **Limitation acceptée** : un user qui connaît l'URL directe d'un outil bypass le filtre
---
## 🗂️ Structure du repo
```
seize-infra-doc/
├── README.md # ← Tu es ici
├── HANDOVER.md # 🚨 À LIRE EN PRIORITÉ
├── ARCHITECTURE.md # Vue d'ensemble technique
├── DECISIONS.md # Choix architecturaux et anti-patterns
├── INSTALL.md # Procédure d'install from scratch
├── OPERATIONS.md # Maintenance, dépannage, ajouts
├── install.sh # Script d'installation modulaire
├── .env.example # Template variables d'environnement
├── docs/ # Documentation thématique détaillée
│ ├── 01-dns-prerequis.md
│ ├── 02-traefik-setup.md
│ ├── 03-zitadel-setup.md
│ ├── 04-oauth2-proxy-pattern.md
│ ├── 05-applications.md
│ ├── 06-import-furious.md
│ ├── 07-rbac-intranet.md
│ ├── 08-secrets-management.md
│ └── 09-troubleshooting.md
├── configs/ # Templates docker-compose anonymisés
│ ├── traefik/
│ ├── zitadel/
│ ├── intranet/
│ ├── oauth2-proxy/
│ ├── gitea/
│ ├── n8n/
│ ├── portainer/
│ ├── code-server/
│ ├── uptime-kuma/
│ └── postgres/
├── scripts/ # Scripts opérationnels
│ ├── furious-to-zitadel/ # Scripts Python import users
│ └── intranet/ # Template index.html avec RBAC
└── matrices/ # Matrices RBAC et mappings
├── rbac-matrix.md
└── job-title-to-role.csv
```
---
## ⚠️ Avertissements importants
1. **Authentik** tourne encore sur le serveur mais **n'est plus utilisé** (migration faite vers Zitadel). À supprimer pour libérer ressources.
2. **Redis** tourne encore — vérifier s'il est utilisé par autre chose avant suppression.
3. **Secrets exposés dans des conversations IA** : voir [HANDOVER.md](./HANDOVER.md) pour la liste des rotations à faire.
4. **SMTP non configuré dans Zitadel** : les emails de bienvenue/reset password ne partent pas. Distribution des mdp temporaires se fait manuellement via Teams.
5. **Migration outils gratuits** vs **licences pro** : décision business reportée — voir [DECISIONS.md](./DECISIONS.md).
---
## 🆘 Support
- **Mainteneur sortant** : Hedi Kalboussi (`HKA`)
- **Sponsor projet** : Philippe Spoljaric (`PSP`, Admin Infra)
- **CEO** : Pierre-Yves Tachon (`PYT`)
Pour toute question, contacter d'abord Hedi pour passation, puis Philippe pour décisions architecturales.
---
## 📜 Historique du projet
| Jour | Date | Étape majeure |
|---|---|---|
| J1 | 20 mai 2026 | Provisioning Scaleway + Docker + premiers tests |
| J2 | 21 mai 2026 | Première tentative SSO via Authentik |
| J3 | 26-29 mai 2026 | Migration Zitadel, 7 apps SSO configurées |
| J4 | 30 mai 2026 | Gitea auto-registration, fix bug Traefik authRequestHeaders |
| J5 | 1-2 juin 2026 | Analyse Furious API, plan migration outils gratuits |
| J6 | 3-4 juin 2026 | Préparation import, briefings Philippe |
| **J7** | **5 juin 2026** | **Import 88 users + RBAC opérationnel** |
---
## 🔗 Liens utiles
- Console Zitadel : https://sso.seizeconsulting.com/ui/console
- Dashboard Traefik : https://traefik.seizeconsulting.com (direction only)
- Gitea : https://git.seizeconsulting.com
- Documentation Zitadel : https://zitadel.com/docs
- Documentation OAuth2-Proxy : https://oauth2-proxy.github.io/oauth2-proxy/
- Documentation Traefik : https://doc.traefik.io/traefik/