mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 05:34:43 +02:00
docs: hub SSO complet sur le domaine public funklab.online (HTTPS) (#94)
Met à jour toute la doc pour l'état final du 2026-07-07 : - CLAUDE.md : état actuel (hub SSO + domaine/TLS), rôle Traefik versionné, secrets OIDC au vault, date - README : section « Accès & authentification » réécrite (5 apps sur le domaine, chaîne DNS/Freebox/Traefik, lab-admins), roadmap, vault - public-domain.md : tableau des apps déployées (URL, auth, redirect_uri) + modes d'intégration (OIDC / Proxy Provider / route seule) - auth-portal.md : section « Accès externe » → domaine HTTPS (URLs à jour) - auth-portal-admin.md : URL admin + pièges (slug/discovery 404 ArgoCD) - guide utilisateur + index admin/ : URLs funklab.online Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
502403d0f9
commit
a13b5a70cd
7 changed files with 92 additions and 55 deletions
40
README.md
40
README.md
|
|
@ -133,25 +133,32 @@ calling) pour répondre à partir de données réelles.
|
|||
|
||||
L'identité est centralisée dans **Authentik** (IdP OIDC, namespace k8s `auth`) : chaque
|
||||
personne a **un seul compte**, et sa page « **My applications** » sert de portail — une
|
||||
tuile par application autorisée, SSO automatique au clic.
|
||||
tuile par application autorisée, **SSO** automatique au clic. Tout est exposé sur le
|
||||
domaine public **`funklab.online`** en **HTTPS** (certificats Let's Encrypt).
|
||||
|
||||
```
|
||||
Utilisateur ──▶ Authentik (hub + login unique) ──SSO──▶ Guacamole ──SSH──▶ s01 / g01
|
||||
(LAN ou Internet) (console dans le navigateur)
|
||||
Utilisateur ──▶ auth.funklab.online (hub + login unique) ──SSO──▶ app.funklab.online
|
||||
(LAN ou Internet) (Guacamole, Grafana…)
|
||||
```
|
||||
|
||||
| Service | LAN | Internet |
|
||||
| Application | URL publique (HTTPS) | Auth |
|
||||
|---|---|---|
|
||||
| **Authentik** — hub + annuaire | `http://auth.lab.local` | `http://kaya.freeboxos.fr:9081` |
|
||||
| **Guacamole** — consoles SSH web | via la tuile du hub | `http://kaya.freeboxos.fr:9080` (via la tuile) |
|
||||
| **Authentik** — hub + annuaire | `auth.funklab.online` | — |
|
||||
| **Guacamole** — consoles SSH s01/g01 | `portail.funklab.online` | SSO |
|
||||
| **Grafana** — dashboards | `grafana.funklab.online` | SSO (`lab-admins`→Admin, sinon Viewer) |
|
||||
| **Open WebUI** — chat IA | `openwebui.funklab.online` | SSO |
|
||||
| **Argo CD** — GitOps | `argocd.funklab.online` | SSO (`lab-admins`) |
|
||||
| **n8n** — automatisation | `n8n.funklab.online` | login natif |
|
||||
|
||||
- **Chaîne réseau** : DNS OVH `*.funklab.online → 82.67.223.17` → Freebox `80/443` → s01
|
||||
(DNAT nftables + rate-limit) → **Traefik** (Let's Encrypt HTTP-01) → l'app. En interne,
|
||||
dnsmasq résout `*.funklab.online → Traefik` (mêmes URLs sur le LAN, split-horizon).
|
||||
- **Groupe `lab-admins`** : admin dans toutes les apps ; les autres comptes = accès simple.
|
||||
- **Accès aux machines** : Guacamole ouvre un terminal SSH **dans le navigateur** vers
|
||||
storage-01 / gpu-01, sous l'utilisateur **`console`** (sans sudo, clé dédiée — rôle
|
||||
Ansible `console_user`). Les accès sont assignés par utilisateur et journalisés.
|
||||
- **Exposition Internet** : redirections Freebox `9081`/`9080` → s01 → DNAT nftables
|
||||
(rate-limité) → VIPs MetalLB dédiées. Authentification obligatoire dès la porte.
|
||||
- **Alternative VPN** : un serveur **WireGuard** est prêt sur s01 (profils admin/invité,
|
||||
filtrage nftables par pair) mais **dormant** — aucune redirection Freebox active.
|
||||
Ansible `console_user`). Accès assignés par utilisateur et journalisés.
|
||||
- **Alternative VPN** : un serveur **WireGuard** est prêt sur s01 (profils admin/invité)
|
||||
mais **dormant** — l'accès distant passe par le domaine public.
|
||||
|
||||
### En images
|
||||
|
||||
|
|
@ -163,6 +170,7 @@ Le parcours utilisateur, du login à la console :
|
|||
| Login unique. | Une tuile par app autorisée → clic = SSO. | Clic sur une machine → terminal SSH dans le navigateur. |
|
||||
|
||||
📖 [Architecture & pièges](admin/k8s/auth-portal.md) ·
|
||||
🌐 [Domaine public + HTTPS](admin/k8s/public-domain.md) ·
|
||||
🛠️ [Administration (utilisateurs, apps du hub)](admin/k8s/auth-portal-admin.md) ·
|
||||
👤 [Guide utilisateur à distribuer](docs/portail-guide-utilisateur.md) ·
|
||||
🔐 [WireGuard](admin/infra/wireguard.md)
|
||||
|
|
@ -301,7 +309,7 @@ ansible-vault encrypt ansible/group_vars/all/vault.yml
|
|||
ansible-vault edit ansible/group_vars/all/vault.yml
|
||||
```
|
||||
|
||||
Variables stockées dans le vault : clé API Anthropic, mots de passe PostgreSQL (hermes, litellm, n8n, openwebui, ghostfolio, authentik, guacamole), App Password Gmail, clé API n8n, jeton hermes-exec, clé SSH du user `console`, secrets Authentik (copies des secrets k8s) et clés WireGuard. Liste exhaustive : `CLAUDE.md` § Secrets Ansible Vault.
|
||||
Variables stockées dans le vault : clé API Anthropic, mots de passe PostgreSQL (hermes, litellm, n8n, openwebui, ghostfolio, authentik, guacamole), App Password Gmail, clé API n8n, jeton hermes-exec, clé SSH du user `console`, secrets Authentik (copies des secrets k8s), **secrets clients OIDC des apps du hub** (grafana, openwebui, argocd) et clés WireGuard. Liste exhaustive : `CLAUDE.md` § Secrets Ansible Vault.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -338,8 +346,10 @@ Elle est gérée automatiquement par le rôle Ansible `llama_server`.
|
|||
- [x] Réparer Qdrant — crash-loop résolu 2026-06-17 ; collection `funk-docs` **reconstruite** depuis (436 chunks)
|
||||
- [x] Re-ingérer le RAG (`rag-ingest`) **basculé sur l'embedding dédié `:1238`** (dim 768)
|
||||
- [x] Serveur dédié Satisfactory sur gpu-01 (`kaya.freeboxos.fr:7777`, IPv4 full-stack)
|
||||
- [x] Annuaire **Authentik** + portail consoles **Guacamole** (SSO, namespace `auth`) — hub utilisateur exposé sur Internet (`:9081`/`:9080`, rate-limité)
|
||||
- [x] Annuaire **Authentik** + portail consoles **Guacamole** (SSO, namespace `auth`)
|
||||
- [x] VPN WireGuard sur s01 (profils admin/invité) — dormant, prêt à activer
|
||||
- [x] **Domaine public `funklab.online` + HTTPS** (Let's Encrypt HTTP-01 sur Traefik, DNS OVH wildcard, Freebox 80/443)
|
||||
- [x] **Hub SSO complet** : Grafana, Open WebUI, Argo CD en OIDC + n8n (login natif) sur `*.funklab.online` ; groupe `lab-admins` = admin partout
|
||||
- [ ] WOL compute nodes (configuration BIOS)
|
||||
- [ ] Route statique Freebox
|
||||
- [ ] TLS sur l'exposition Internet (vrai domaine + Let's Encrypt) / MFA Authentik
|
||||
- [ ] MFA/TOTP Authentik (durcissement)
|
||||
- [ ] Proxy Provider Authentik pour exposer les apps sans login (Prometheus, Alertmanager, SearXNG)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue