Code
Clone this repository
Search code…
Vérifié : tous les agents actifs appellent thebrain/unmute via le réseau Docker interne (LLM_BASE_URL=http://thebrain:8000/v1 dans chaque .env), jamais via le hostname public. joshua était le seul appelant public (pipeline_definitions/*.json référençant thebrain.caronboulme.fr, unmute-talk.caronboulme.fr, unmute-transcript.caronboulme.fr) et est désormais arrêté. /forwardauth ne valide donc plus que des JWT Authentik — VK_URL et httpx (devenus inutiles) retirés.
Mosquitto Auth Authentik
Service d'authentification MQTT utilisant Authentik OAuth au lieu de VoightKampff.
Fonctionnement
- Mosquitto envoie les credentials MQTT (username + password) à ce service
- Le password est un access token OAuth Authentik
- Le service fait l'introspection OAuth pour valider le token
- Retourne 200 si valide, 401 sinon
Configuration
1. Créer l'application OAuth dans Authentik
Via l'API ou l'interface web :
# Provider
Name: mosquitto-auth-provider
Client type: Confidential
Client ID: mosquitto-auth-client
Grant types: client_credentials
# Application
Name: mosquitto-auth
Slug: mosquitto-auth
Provider: mosquitto-auth-provider
Récupérer le CLIENT_SECRET généré.
2. Configurer le service
cp .env.example .env
# Éditer .env avec le CLIENT_ID et CLIENT_SECRET
3. Lancer le service
docker compose up -d
4. Mettre à jour Mosquitto
Dans la config Mosquitto (mosquitto.conf), changer :
auth_opt_http_host mosquitto-auth-authentik
auth_opt_http_port 8080
Au lieu de :
auth_opt_http_host voight-kampff
auth_opt_http_port 8080
Endpoints
POST /mqtt/user- Authentification (username + access token)POST /mqtt/acl- Contrôle d'accès aux topicsPOST /mqtt/superuser- Vérification superuser (toujours refuse)GET /health- Health check
ACL Rules
users/{username}/*: Accès privé à son propre namespacecommon/*: Lecture pour tousreply/*: Écriture pour tous