b617487d0d
Export JSON workflows-n8n/chlova-alerts.v1.0.0.json (webhook → mail, formate par type d'alerte) + doc d'asset (palier privileged, rollback). ALERT_WEBHOOK_URL dans .env.example + compose (vide = log-only). need-review.md : alertes implémentées. Compose revalidé, 53 tests, 0 vuln. Palier de risque : privilégié (workflow envoie des mails) — désactivable via ALERT_WEBHOOK_URL vide ; non exécuté depuis le dépôt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
3.2 KiB
Bash
47 lines
3.2 KiB
Bash
# CHLOVA — variables d'environnement (TEMPLATE)
|
|
# Copier en `.env` et renseigner. NE JAMAIS committer `.env` ni de vraie valeur.
|
|
# L'agent ne voit jamais ces secrets en clair : il manipule des références.
|
|
|
|
# ── Ollama (proxy cloud) ───────────────────────────────────────────────
|
|
# Le conteneur Ollama local proxifie vers ollama.com. Egress doit autoriser
|
|
# ollama.com. Joignable uniquement sur le réseau Docker interne.
|
|
OLLAMA_BASE_URL=http://ollama:11434
|
|
OLLAMA_API_KEY= # SECRET — clé API Ollama cloud
|
|
OLLAMA_MODEL=qwen3:cloud # modèle cloud (suffixe :cloud), tool-calling
|
|
|
|
# ── MCP n8n : NATIF (instance n8n ≥ 2.18.4) ────────────────────────────
|
|
# Pas de conteneur dédié : n8n sert son propre MCP. Activer côté instance
|
|
# (env d'instance + activation par workflow), puis copier l'URL + le token
|
|
# depuis n8n → Connection details. URL = endpoint MCP de l'instance (interne).
|
|
# Chemin natif n8n = /mcp-server/http. Préférer l'hôte INTERNE (réseau Docker) ;
|
|
# si le MCP n'est routé que via le domaine public, utiliser l'URL publique (TLS)
|
|
# et autoriser ce domaine en egress (voir infra/networks.md).
|
|
MCP_N8N_URL=http://n8n:5678/mcp-server/http # ou https://<n8n-public>/mcp-server/http
|
|
MCP_N8N_AUTH_TOKEN= # SECRET — "MCP Access Token" n8n (Bearer)
|
|
|
|
# ── MCP Portainer (portainer/portainer-mcp) ────────────────────────────
|
|
PORTAINER_URL=https://portainer:9443 # interne uniquement
|
|
PORTAINER_MCP_AUTH_TOKEN= # SECRET — token Portainer à portée RESTREINTE
|
|
# Phase 1 : DOIT rester true (le boot échoue sinon). Phase 2 : peut passer false
|
|
# pour autoriser les écritures Portainer (sous gatekeeper + review).
|
|
PORTAINER_READ_ONLY=true
|
|
MCP_PORTAINER_URL=http://mcp-portainer:3000
|
|
|
|
# ── Surface Telegram (Phase 1) ─────────────────────────────────────────
|
|
TELEGRAM_BOT_TOKEN= # SECRET — token du bot
|
|
TELEGRAM_ALLOWED_USER_IDS= # liste d'IDs autorisés, séparés par virgule
|
|
|
|
# ── Backend CHLOVA ─────────────────────────────────────────────────────
|
|
CHLOVA_ENV=development # development | production
|
|
CHLOVA_LOG_LEVEL=info
|
|
# Gate de phase : 1 = lecture seule (défaut, fail-safe) ; 2 = écriture sous
|
|
# gatekeeper + cycle need-review. Toute valeur autre que "2" retombe sur 1.
|
|
CHLOVA_PHASE=1
|
|
CHLOVA_DB_PATH=./data/chlova.db # SQLite : table assets (need-review, Phase 2)
|
|
# Alertes (Phase 3) : URL du webhook n8n qui envoie le mail (workflow
|
|
# workflows-n8n/chlova-alerts.v1.0.0.json). Vide = alertes log-only (fail-safe).
|
|
# Peut contenir un token de chemin → secret, jamais commité.
|
|
ALERT_WEBHOOK_URL= # ex. http://n8n:5678/webhook/chlova-alert
|
|
# Phase 1 : aucun port publié (Telegram en long-polling). Renseigné en P3+ si API/UI.
|
|
# CHLOVA_HTTP_PORT=8080
|