mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 05:44: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
16
CLAUDE.md
16
CLAUDE.md
|
|
@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||
|
||||
**Funk** — homelab IA composé d'un cluster Kubernetes (Talos) pour les services applicatifs, d'un hôte d'inférence LLM dédié (gpu-01 / llama-server ROCm), et d'un agent autonome (Hermes Agent) sur storage-01. Stack IaC complète : Ansible + talhelper + ArgoCD.
|
||||
|
||||
**État actuel (2026-06-23)** :
|
||||
**État actuel (2026-07-07)** :
|
||||
- ✅ Hermes Agent opérationnel — multi-profils (funk-ai/system/monitor/brain)
|
||||
- ✅ Qdrant réparé (2026-06-17) — fin du crash-loop (segment `funk-docs` corrompu, voir `admin/incidents.md`). La collection RAG `funk-docs` a depuis été **reconstruite** (436 chunks, 🟢 green, embeddings nomic-embed-text dim 768) — `rag-query` opérationnel
|
||||
- ✅ Monitoring complet — Prometheus + Grafana + AlertManager → webhook Hermes + n8n
|
||||
|
|
@ -21,8 +21,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||
- ✅ SearXNG opérationnel — `searxng.lab.local`, namespace `ai`, **méta-moteur de recherche web self-host** (privé, in-cluster) consommé par l'outil `web_search` d'Asa (API JSON). Manifests `k8s/apps/searxng/`
|
||||
- ✅ Ghostfolio opérationnel — `ghostfolio.lab.local`, namespace `ai`, suivi de portefeuille (PostgreSQL s01 + Redis in-cluster)
|
||||
- ✅ hermes-auto-improve — analyse quotidienne de `admin/` par Hermes à 22h (n8n → trigger :9095), PR sur `hermes/daily-work`
|
||||
- 🆕 Annuaire + portail consoles (2026-07-06) — **Authentik** (`auth.lab.local`, IdP OIDC) + **Guacamole** (`portail.lab.local`, consoles SSH web vers s01/g01 via user `console` sans sudo), namespace `auth`. Config initiale (admin Authentik, provider OIDC, connexions) : voir `admin/k8s/auth-portal.md`. **Accès Internet** : Authentik = hub utilisateur (`kaya.freeboxos.fr:9081`, page « My applications ») → SSO vers Guacamole (`:9080`) — VIPs MetalLB `.201`/`.202`, rate-limit nftables, URL canonique publique pour tous (hairpin LAN). Admin quotidienne : `admin/k8s/auth-portal-admin.md` ; guide utilisateur : `docs/portail-guide-utilisateur.md`
|
||||
- 🆕 WireGuard (2026-07-06) — serveur VPN prêt sur s01 (pairs `full`/`portal`, filtrage nftables) mais **dormant** : pas de redirection Freebox `51820/udp` (choix simplicité 2026-07-07, accès portail via `:9080` direct). Voir `admin/infra/wireguard.md`
|
||||
- ✅ **Hub SSO Authentik + domaine public `funklab.online` (HTTPS)** (2026-07-07) — **Authentik** (`auth.funklab.online`, IdP OIDC, ns `auth`) est le hub : page « My applications » → tuiles → **SSO**. Apps exposées en HTTPS (cert Let's Encrypt par sous-domaine, `*.funklab.online`) : **Guacamole** (`portail.`, consoles SSH s01/g01 via user `console` sans sudo), **Grafana** (`grafana.`, lab-admins→Admin), **Open WebUI** (`openwebui.`), **Argo CD** (`argocd.`, lab-admins→admin) — tous OIDC ; **n8n** (`n8n.`, login natif). Groupe transverse **`lab-admins`** = admin partout. Chaîne : DNS OVH `*.funklab.online → 82.67.223.17` → Freebox `80/443` → s01 (DNAT nftables + rate-limit) → **Traefik** (Let's Encrypt HTTP-01, helm hors ArgoCD) ; dnsmasq split-horizon interne. Les ports historiques `kaya.freeboxos.fr:9080/9081` restent un chemin réseau. Docs : `admin/k8s/public-domain.md` (domaine/TLS), `admin/k8s/auth-portal.md` (archi/pièges), `admin/k8s/auth-portal-admin.md` (admin : users, apps, `lab-admins`), `docs/portail-guide-utilisateur.md` (guide users)
|
||||
- 🆕 WireGuard (2026-07-06) — serveur VPN prêt sur s01 (pairs `full`/`portal`, filtrage nftables) mais **dormant** : pas de redirection Freebox `51820/udp` (l'accès distant passe par le domaine public HTTPS). Voir `admin/infra/wireguard.md`
|
||||
- ⏳ WOL compute nodes non configuré (BIOS) — allumage manuel requis
|
||||
|
||||
Journal de progression : `PROGRESS.md` → `progress/YYYY-MM-DD.md`
|
||||
|
|
@ -126,6 +126,7 @@ Variables chiffrées dans `ansible/group_vars/all/vault.yml` :
|
|||
- `vault_console_ssh_private_key` — clé privée SSH des connexions Guacamole (user `console` sur s01/g01)
|
||||
- `vault_authentik_secret_key`, `vault_authentik_redis_password` — copies de sûreté des valeurs du secret k8s `auth/authentik-secret`
|
||||
- `vault_wireguard_server_private_key`, `vault_wireguard_peer_private_keys` — clés WireGuard (serveur + dict par pair)
|
||||
- `vault_grafana_oauth_client_secret`, `vault_openwebui_oauth_client_secret`, `vault_argocd_oidc_client_secret` — secrets clients OIDC des apps du hub (= secrets k8s `monitoring/grafana-oauth-secret`, `ai/open-webui-oauth`, `argocd/argocd-oidc`)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -186,10 +187,13 @@ k8s/
|
|||
│ ├── guacamole/ # namespace: auth — portail consoles SSH web s01/g01 (portail.lab.local)
|
||||
│ └── {external-services}/ # ExternalName/Endpoints pointant vers storage-01 ou gpu-01
|
||||
└── infra/ # Helm releases (HelmRelease + values.yaml)
|
||||
├── monitoring/ # kube-prometheus-stack 85.0.2
|
||||
├── monitoring/ # kube-prometheus-stack 85.0.2 (+ ingressroute-public.yaml grafana)
|
||||
├── traefik/ # values.yaml (Let's Encrypt) + redirect.yaml — appliqué par helm upgrade
|
||||
└── nfs-provisioner/
|
||||
# ⚠️ Traefik + MetalLB ne sont PAS dans k8s/infra/ : ils sont installés via `helm install`
|
||||
# lors du bootstrap Talos (voir admin/k8s/talos.md), hors pattern App-of-Apps ArgoCD.
|
||||
# ⚠️ Traefik + MetalLB ne sont PAS gérés par ArgoCD : installés via `helm install/upgrade`
|
||||
# (Traefik : values versionnées dans k8s/infra/traefik/, cert Let's Encrypt HTTP-01 ;
|
||||
# MetalLB : bootstrap Talos). Idem ArgoCD lui-même (k8s/argocd-bootstrap/values.yaml).
|
||||
# Voir admin/k8s/talos.md et admin/k8s/public-domain.md.
|
||||
```
|
||||
|
||||
### Ajouter un nouveau workload k8s
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue