mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 11:54:42 +02:00
docs(readme): section « Accès & authentification » illustrée + index admin/ (#84)
* docs(readme): section « Accès & authentification » + index admin/ à jour - README principal : nouvelle section Authentik/Guacamole (hub SSO, URLs LAN/Internet, user console, VPN dormant), rôles Ansible manquants dans l'arborescence, roadmap et vault mis à jour - admin/README.md : entrées navigation + tables (auth-portal, wireguard, satisfactory) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(readme): section « Accès & authentification » illustrée (Authentik/Guacamole) Ajoute la section au README principal (absente jusqu'ici) : schéma du flux SSO, URLs LAN/Internet, user console, VPN dormant, + 3 captures du parcours utilisateur (login → hub → machines). Rôles Ansible, vault et roadmap complétés. .playwright-mcp ignoré. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
dc9fc884ac
commit
9c5b8d2048
5 changed files with 60 additions and 3 deletions
55
README.md
55
README.md
|
|
@ -129,6 +129,46 @@ calling) pour répondre à partir de données réelles.
|
|||
|
||||
---
|
||||
|
||||
## Accès & authentification
|
||||
|
||||
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.
|
||||
|
||||
```
|
||||
Utilisateur ──▶ Authentik (hub + login unique) ──SSO──▶ Guacamole ──SSH──▶ s01 / g01
|
||||
(LAN ou Internet) (console dans le navigateur)
|
||||
```
|
||||
|
||||
| Service | LAN | Internet |
|
||||
|---|---|---|
|
||||
| **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) |
|
||||
|
||||
- **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.
|
||||
|
||||
### En images
|
||||
|
||||
Le parcours utilisateur, du login à la console :
|
||||
|
||||
| 1 · Connexion (Authentik) | 2 · Hub « My applications » | 3 · Choix de la machine (Guacamole) |
|
||||
|---|---|---|
|
||||
|  |  |  |
|
||||
| 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) ·
|
||||
🛠️ [Administration (utilisateurs, apps du hub)](admin/k8s/auth-portal-admin.md) ·
|
||||
👤 [Guide utilisateur à distribuer](docs/portail-guide-utilisateur.md) ·
|
||||
🔐 [WireGuard](admin/infra/wireguard.md)
|
||||
|
||||
---
|
||||
|
||||
## Infrastructure
|
||||
|
||||
### Machines
|
||||
|
|
@ -177,7 +217,11 @@ calling) pour répondre à partir de données réelles.
|
|||
│ ├── minio # ⚠️ placeholder vide — service non déployé
|
||||
│ ├── postgresql # Base de données
|
||||
│ ├── qdrant # Base vectorielle
|
||||
│ └── hermes_auto_improve # Worker analyse doc + trigger server :9095
|
||||
│ ├── hermes_auto_improve # Worker analyse doc + trigger server :9095
|
||||
│ ├── hermes_exec # Exécuteur d'actions vocales (jeton, :9096)
|
||||
│ ├── console_user # User `console` sans sudo (consoles SSH du portail)
|
||||
│ ├── wireguard # VPN accès distant (51820/udp — dormant)
|
||||
│ └── satisfactory_server # Serveur de jeu dédié sur gpu-01 (:7777)
|
||||
├── hermes-skills/ # Skills Hermes versionnés
|
||||
│ ├── funk/
|
||||
│ │ ├── agent-delegation/ # Délégation ask-agent (system/monitor/brain)
|
||||
|
|
@ -196,7 +240,8 @@ calling) pour répondre à partir de données réelles.
|
|||
├── talos/ # Cluster Kubernetes (talhelper)
|
||||
└── k8s/ # Workloads ArgoCD
|
||||
├── infra/ # monitoring, nfs-provisioner (Traefik + MetalLB via helm au bootstrap)
|
||||
└── apps/ # Open WebUI, n8n, STT, SearXNG, Ghostfolio, external-services
|
||||
└── apps/ # Open WebUI, n8n, STT, SearXNG, Ghostfolio, finlab,
|
||||
# Authentik + Guacamole (portail, ns auth), external-services
|
||||
```
|
||||
|
||||
---
|
||||
|
|
@ -256,7 +301,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 : `vault_anthropic_api_key`, `vault_pg_hermes_password`, `vault_pg_litellm_password`, `vault_pg_n8n_password`, `vault_pg_openwebui_password`, `vault_pg_ghostfolio_password`, `vault_postfix_relay_password`, `vault_n8n_api_key`.
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -292,5 +337,9 @@ Elle est gérée automatiquement par le rôle Ansible `llama_server`.
|
|||
- [x] Modèle d'embedding dédié — nomic-embed-text sur gpu-01 `:1238` (utilisé par la mémoire STT **et le RAG**)
|
||||
- [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] VPN WireGuard sur s01 (profils admin/invité) — dormant, prêt à activer
|
||||
- [ ] WOL compute nodes (configuration BIOS)
|
||||
- [ ] Route statique Freebox
|
||||
- [ ] TLS sur l'exposition Internet (vrai domaine + Let's Encrypt) / MFA Authentik
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@
|
|||
| Voir les métriques / alertes | [k8s/monitoring.md](k8s/monitoring.md) |
|
||||
| Problème réseau / nftables | [infra/reseau.md](infra/reseau.md) |
|
||||
| Problème NFS / stockage | [infra/nfs.md](infra/nfs.md) |
|
||||
| Gérer les utilisateurs du portail (créer/révoquer/assigner) | [k8s/auth-portal-admin.md](k8s/auth-portal-admin.md) |
|
||||
| Portail consoles / SSO — architecture & pièges | [k8s/auth-portal.md](k8s/auth-portal.md) |
|
||||
| Accès distant VPN (WireGuard, dormant) | [infra/wireguard.md](infra/wireguard.md) |
|
||||
| Serveur de jeu Satisfactory | [ops/satisfactory.md](ops/satisfactory.md) |
|
||||
| Incident passé | [incidents.md](incidents.md) |
|
||||
|
||||
---
|
||||
|
|
@ -34,6 +38,7 @@
|
|||
| [ops/cluster.md](ops/cluster.md) | `funk-start`, `funk-stop`, `funk-status` — démarrage/arrêt cluster complet |
|
||||
| [ops/ansible.md](ops/ansible.md) | Commandes Ansible — ping, apply, vault, debug, facts |
|
||||
| [ops/systeme.md](ops/systeme.md) | Services systemd, logs, ressources, NetworkManager, dnf |
|
||||
| [ops/satisfactory.md](ops/satisfactory.md) | Serveur dédié Satisfactory sur gpu-01 — accès, saves, pièges |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -46,6 +51,7 @@
|
|||
| [infra/dnsmasq.md](infra/dnsmasq.md) | DNS local `lab.local` — résolution, logs, ajout d'entrées |
|
||||
| [infra/ssh.md](infra/ssh.md) | Connexions SSH — alias, jump host, transfert de fichiers |
|
||||
| [infra/email.md](infra/email.md) | Postfix relay — SMTP sortant via Gmail (App Password) |
|
||||
| [infra/wireguard.md](infra/wireguard.md) | VPN WireGuard sur s01 — accès distant (dormant : pas de redirection Freebox) |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -59,6 +65,8 @@
|
|||
| [k8s/n8n.md](k8s/n8n.md) | n8n — automatisation, workflows actifs, credentials |
|
||||
| [k8s/open-webui.md](k8s/open-webui.md) | Open WebUI — chat web, backend LiteLLM |
|
||||
| [k8s/ghostfolio.md](k8s/ghostfolio.md) | Ghostfolio — suivi de portefeuille (PostgreSQL s01 + Redis) |
|
||||
| [k8s/auth-portal.md](k8s/auth-portal.md) | Authentik + Guacamole — architecture, déploiement, accès Internet, pièges |
|
||||
| [k8s/auth-portal-admin.md](k8s/auth-portal-admin.md) | Portail — administration : utilisateurs, machines, apps du hub, révocation |
|
||||
| [k8s/k9s.md](k8s/k9s.md) | k9s — TUI de gestion du cluster |
|
||||
|
||||
---
|
||||
|
|
|
|||
BIN
docs/img/portail/01-login.jpg
Normal file
BIN
docs/img/portail/01-login.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 893 KiB |
BIN
docs/img/portail/02-hub.png
Normal file
BIN
docs/img/portail/02-hub.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
BIN
docs/img/portail/03-machines.png
Normal file
BIN
docs/img/portail/03-machines.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
Loading…
Add table
Add a link
Reference in a new issue