107 lines
4.1 KiB
Bash
107 lines
4.1 KiB
Bash
# ObsiGate — Environment variables
|
|
# Copiez ce fichier en .env et modifiez les valeurs
|
|
# Le fichier .env n'est JAMAIS commité (présent dans .gitignore)
|
|
|
|
# Auth (décommenter pour activer)
|
|
OBSIGATE_AUTH_ENABLED=true
|
|
OBSIGATE_ADMIN_USER=admin
|
|
OBSIGATE_ADMIN_PASSWORD=chab30
|
|
|
|
# DANGER : si OBSIGATE_AUTH_ENABLED=false, toute requête devient un admin
|
|
# anonyme. Le serveur REFUSE de démarrer sur une adresse non-loopback
|
|
# (ex. 0.0.0.0) sauf si l'on force l'opt-in ci-dessous. À réserver au local.
|
|
# OBSIGATE_ALLOW_INSECURE=false
|
|
|
|
# Sécurité des cookies : true|false|auto (défaut : auto — Secure si la
|
|
# requête arrive en https, sinon pas de flag ; les navigateurs ignorent les
|
|
# cookies `Secure` en HTTP, ce qui casserait les logins en local).
|
|
# Derrière un reverse proxy qui termine TLS, auto suffit avec
|
|
# OBSIGATE_TRUST_PROXY=true (X-Forwarded-Proto honoré).
|
|
# OBSIGATE_SECURE_COOKIES=auto
|
|
|
|
# Tokens TTL en secondes
|
|
# OBSIGATE_ACCESS_TOKEN_TTL=31536000000 # 1000 ans
|
|
# OBSIGATE_REFRESH_TOKEN_TTL=604800
|
|
|
|
# Rate limiting
|
|
# OBSIGATE_LOGIN_MAX_ATTEMPTS=10
|
|
# OBSIGATE_ACCOUNT_MAX_ATTEMPTS=10
|
|
# OBSIGATE_LOGIN_WINDOW_SECONDS=900
|
|
# Compteurs partagés/persistants (SQLite WAL, multi-workers) — défaut : mémoire.
|
|
# OBSIGATE_RATELIMIT_DB=data/ratelimit.db
|
|
|
|
# IP client derrière un reverse proxy (fait confiance à X-Forwarded-For)
|
|
# OBSIGATE_TRUST_PROXY=false
|
|
|
|
# Webhooks : sécurité SSRF
|
|
# OBSIGATE_WEBHOOK_ALLOW_HTTP=false # autoriser http:// (défaut : HTTPS requis)
|
|
# OBSIGATE_WEBHOOK_ALLOW_PRIVATE=false # autoriser les IP privées/boucle
|
|
# Secret d'un webhook : OBSIGATE_WEBHOOK_SECRET_<ID_WEBHOOK_EN_MAJUSCULES>
|
|
|
|
# Watcher
|
|
# OBSIGATE_WATCHER_ENABLED=true
|
|
# OBSIGATE_WATCHER_USE_POLLING=false
|
|
# OBSIGATE_WATCHER_POLLING_INTERVAL=5.0
|
|
# OBSIGATE_WATCHER_DEBOUNCE=2.0
|
|
|
|
# Ignored directories (séparés par des virgules)
|
|
# OBSIGATE_IGNORED_DIRS=.obsidian,.trash,.git,__pycache__,node_modules,.obsigate-backup
|
|
|
|
# Audit
|
|
# OBSIGATE_AUDIT_MAX_SIZE=10485760
|
|
|
|
# Backup
|
|
# OBSIGATE_BACKUP_DIR=.obsigate-backup
|
|
|
|
# PDF (ROADMAP #74)
|
|
# OBSIGATE_PDF_MAX_SIZE_MB=50 # PDFs plus volumineux = texte non indexé
|
|
# OBSIGATE_PDF_EXTRACT_TIMEOUT=30 # secondes avant abandon de l'extraction
|
|
|
|
# WebAuthn / MFA (ROADMAP #64) — par défaut rp_id/origines sont dérivés de la
|
|
# requête (hôte exact, port inclus) : rien à configurer en accès direct.
|
|
# À renseigner uniquement pour un accès via reverse-proxy sous un autre nom
|
|
# (avec OBSIGATE_TRUST_PROXY=true pour X-Forwarded-Host/Proto) :
|
|
# OBSIGATE_WEBAUTHN_RP_ID=obsigate.example.com
|
|
# OBSIGATE_WEBAUTHN_RP_NAME=ObsiGate
|
|
# OBSIGATE_WEBAUTHN_ORIGINS=https://obsigate.example.com
|
|
|
|
# ── AI Provider Configuration ──
|
|
# Définir au moins un provider pour activer les fonctionnalités AI dans l'éditeur
|
|
|
|
# AI_DEFAULT_PROVIDER=deepseek # deepseek | openrouter | gemini
|
|
|
|
# DeepSeek (recommandé, bon marché)
|
|
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
DEEPSEEK_MODEL=deepseek-chat
|
|
|
|
# OpenRouter (accès à plusieurs modèles)
|
|
# OPENROUTER_API_KEY=sk-or-v1-...
|
|
# OPENROUTER_MODEL=openai/gpt-4o-mini
|
|
|
|
# Google Gemini
|
|
# GEMINI_API_KEY=AIza...
|
|
# GEMINI_MODEL=gemini-2.0-flash
|
|
|
|
# ── Assistant IA — recherche web (outil web_search) ──
|
|
# Instance SearXNG auto-hébergée (aucune clé API requise)
|
|
# OBSIGATE_SEARXNG_URL=https://search.dracodev.net
|
|
# Chaîne de repli sans clé (DuckDuckGo puis Bing) si SearXNG ne remonte rien
|
|
# OBSIGATE_WEB_FALLBACK=1
|
|
# OBSIGATE_WEB_TIMEOUT=10
|
|
# Fournisseurs à clé (#92), essayés avant SearXNG — injecter via Infisical en prod
|
|
# OBSIGATE_TAVILY_API_KEY=
|
|
# OBSIGATE_BRAVE_API_KEY=
|
|
# OBSIGATE_SERPAPI_API_KEY=
|
|
# OBSIGATE_EXA_API_KEY=
|
|
# Ordre des fournisseurs (sinon : clés présentes puis SearXNG puis replis)
|
|
# OBSIGATE_WEB_PROVIDERS=brave,searxng
|
|
# Réessais réseau (backoff maison) + cache SQLite des résultats web
|
|
# OBSIGATE_WEB_RETRY=1
|
|
# OBSIGATE_WEB_CACHE_TTL=900 # secondes ; 0 = cache désactivé
|
|
# Rendu dynamique (pages SPA) — dépendance optionnelle :
|
|
# pip install playwright && playwright install chromium
|
|
# ── Assistant IA — sources connectées (Gitea / GitHub) ──
|
|
# OBSIGATE_GITEA_URL=https://git.example.net
|
|
# OBSIGATE_GITEA_TOKEN=
|
|
# OBSIGATE_GITHUB_TOKEN=
|