fix(mcp): intégration réelle passerelle MCP Portainer (image+auth) (v0.34.0)
Image portainer-mcp 0.6.0 (inexistant) -> 2.42.6. Passerelle HTTP :17717/mcp attend Bearer (secret passerelle) + X-Portainer-API-Key (clé API restreinte chlova) : ajout config.portainerApiKey + McpServerConfig.extraHeaders, backend envoie les deux. socket-proxy supprimé (plus de socket monté). Compose prod, .env.example, deploy.md à jour. Typecheck + 78 tests verts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016w5jRe87MGdd6AMvXQcHNi
This commit is contained in:
+9
-5
@@ -58,13 +58,16 @@ git push gitea main # auth : <admin> + token de l'étape 1.3
|
||||
> Le MCP Portainer n'expose pas la gestion users/tokens : étapes UI. Principe :
|
||||
> CHLOVA n'accède qu'à ses ressources, tokens à portée minimale.
|
||||
|
||||
### 3a. Portainer — user `chlova` + token
|
||||
### 3a. Portainer — user `chlova` + clé API + secret de passerelle
|
||||
1. **Users → Add user** : `chlova`, non-admin.
|
||||
2. **Environments → local → Access** : rôle le plus bas suffisant. *(CE = RBAC
|
||||
par environnement, pas par stack ; le vrai verrou Phase 1 reste
|
||||
`PORTAINER_READ_ONLY=true`.)*
|
||||
par environnement, pas par stack ; verrous additionnels :
|
||||
`PORTAINER_READ_ONLY=true` côté serveur MCP **et** la clé API étant celle de
|
||||
`chlova`, l'accès réel est borné à ce que `chlova` peut voir.)*
|
||||
3. Connecté en `chlova` → **My account → Access tokens → Add token** →
|
||||
`PORTAINER_MCP_AUTH_TOKEN`.
|
||||
`PORTAINER_API_KEY` (envoyé en `X-Portainer-API-Key`, cloisonne l'accès).
|
||||
4. **`PORTAINER_MCP_AUTH_TOKEN`** = secret de **passerelle** au choix (chaîne
|
||||
aléatoire) ; même valeur dans le stack `mcp-portainer` et côté backend.
|
||||
|
||||
### 3b. n8n-chlova — MCP token
|
||||
1. `https://n8n-chlova.pogoo.app` → créer le compte propriétaire.
|
||||
@@ -96,7 +99,8 @@ l'opérateur, jamais par l'agent).
|
||||
| `OLLAMA_API_KEY` | clé Ollama cloud | **oui** |
|
||||
| `OLLAMA_MODEL` | `qwen3:cloud` | non |
|
||||
| `MCP_N8N_AUTH_TOKEN` | token MCP n8n-chlova (§3b) | **oui** |
|
||||
| `PORTAINER_MCP_AUTH_TOKEN` | token user chlova (§3a) | **oui** |
|
||||
| `PORTAINER_MCP_AUTH_TOKEN` | secret de passerelle (§3a.4) | **oui** |
|
||||
| `PORTAINER_API_KEY` | clé API Portainer de chlova (§3a.3) | **oui** |
|
||||
| `CHLOVA_ADMIN_USER` | ex. `kantin` | non |
|
||||
| `CHLOVA_ADMIN_PASSWORD_HASH` | (§4) | **oui** |
|
||||
| `CHLOVA_TOTP_SECRET` | (§4) | **oui** |
|
||||
|
||||
Reference in New Issue
Block a user