# 📘 Gesthub last-commit Construit avec les outils et les technologies nĂ©cessaires :
Flask JSON Keycloak GNU%20Bash MariaDB
Docker Python Mattermost
## đŸ§± Objectif CrĂ©er un site web multi-services (extranet/intranet) avec : - Authentification centralisĂ©e via **Keycloak** - Reverse proxy **Caddy** - Frontend/backend **Flask** - Chat & Gestion de tĂąches via **Mattermost** - Gestion d’annonces via JSON avec droits `/admin` (a faire) --- ## 🐳 DĂ©marrage du projet ### 1. **Structure Docker** Les services sont dĂ©finis dans `docker-compose.yml` : - `caddy`: Reverse proxy + HTTPS automatique - `flask`: Application web backend - `mariadb`: Base de donnĂ©es - `keycloak`: SSO + gestion utilisateurs - `mattermost`: Chat et gestion de tĂąches (type Trello) RĂ©seau utilisĂ© : `gesthub_gesthub` --- ## 🔐 Authentification Keycloak ### ✅ Étapes : 1. CrĂ©ation du **realm `Gesthub`** 2. Ajout des clients (Flask et Mattermost) 3. Activation `OpenID Connect` 4. Configuration des **Redirect URIs** - Exemples : - Flask → `https://dashboard.ninolbt.com/login/callback` - Mattermost → `https://mattermost.ninolbt.com/signup/openid/complete` 5. Pour les utilisateurs `/admin`, on utilise le **groupe `/admin`** dans Keycloak. --- ## 🌐 Reverse Proxy Caddy ### đŸ› ïž `Caddyfile` : ```caddyfile https://dashboard.ninolbt.com { reverse_proxy flask:5000 } https://keycloak.ninolbt.com { reverse_proxy keycloak:8080 } https://mattermost.ninolbt.com { reverse_proxy mattermost:8065 } ``` **Volumes persistants** : `caddy_data` et `caddy_config` montĂ©s dans `/data` et `/config` --- ## đŸ§© Flask - back du dashboard - Permet la crĂ©ation/modification/suppression d’annonces en JSON (en test) - Accessible uniquement pour les utilisateurs avec le rĂŽle `/admin` (via token) (en test) - Chargement des assets statiques corrigĂ© avec Caddy --- ## đŸ—‚ïž Gestion des droits - Auth via Keycloak pour Flask, Mattermost, Wekan - VĂ©rification des groupes dans Flask (`/admin`) - Redirections correctes avec URLs HTTPS Caddy --- ## 📌 Bugs et corrections - ⚠ Redirection Keycloak incorrecte → CorrigĂ© avec bon `redirect_uri` - ⚠ Assets statiques Flask → corrigĂ© via URL absolue en HTTPS - ✅ Reverse proxy fonctionne avec tous les services - ✅ HTTPS opĂ©rationnel via Caddy avec certificats Let's Encrypt --- ## 🚀 DĂ©marrage ```bash docker compose up --build -d ``` Si besoin : ```bash docker compose logs -f [service] ``` --- ## đŸ“€ Export complet Pour rendre le projet exportable : - Tout est containerisĂ© (Docker) - Config Keycloak exportĂ© (JSON disponible dans le dossier `export_keycloak`) - `docker-compose.yml`, `Caddyfile`, fichier disponible dans le repo