2025-12-16 01:53:25 +01:00
2025-12-16 01:31:23 +01:00
2025-10-03 16:19:28 +02:00
2025-05-13 21:50:45 +02:00
2025-05-19 19:47:18 +02:00

📘 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 dannonces 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 :

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 dannonces 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

docker compose up --build -d

Si besoin :

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
Description
No description provided
Readme 80 KiB
Languages
Python 33.3%
CSS 32%
JavaScript 24.8%
HTML 9.3%
Dockerfile 0.6%