# ⚙️ Variables d'Environnement ## Fichier `.env` Ce fichier contient toutes les variables sensibles et de configuration. **Ne jamais le commiter !** ### Template ```bash # ═══════════════════════════════════════════════════════════ # EFFI SERVER - Variables d'environnement # ═══════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════ # 1. OPEN WEBUI # ═══════════════════════════════════════════════════════════ WEBUI_SECRET_KEY=votre_cle_secrete_longue_et_aleatoire # ═══════════════════════════════════════════════════════════ # 2. OLLAMA / PC GAMING # ═══════════════════════════════════════════════════════════ OLLAMA_HOST=192.168.1.11 PC_GAMING_MAC=XX:XX:XX:XX:XX:XX BROADCAST_IP=192.168.1.255 # ═══════════════════════════════════════════════════════════ # 3. COUCHDB (Obsidian LiveSync) # ═══════════════════════════════════════════════════════════ COUCHDB_USER=master COUCHDB_PASSWORD=votre_mot_de_passe_securise # ═══════════════════════════════════════════════════════════ # 4. N8N (Automatisation) # ═══════════════════════════════════════════════════════════ N8N_USER=master N8N_PASSWORD=votre_mot_de_passe_securise ``` --- ## Description des variables ### WEBUI_SECRET_KEY **Utilisé par** : Open WebUI **Description** : Clé secrète pour la gestion des sessions et le chiffrement. **Génération** : ```bash # Linux openssl rand -hex 32 # ou python3 -c "import secrets; print(secrets.token_hex(32))" ``` ### OLLAMA_HOST **Utilisé par** : wol-proxy **Description** : IP du PC Gaming où tourne Ollama. **Exemple** : `192.168.1.11` ### PC_GAMING_MAC **Utilisé par** : wol-proxy **Description** : Adresse MAC du PC Gaming pour le Wake-on-LAN. **Format** : `XX:XX:XX:XX:XX:XX` **Trouver l'adresse MAC** : ```bash # Sur le PC Gaming ip link show # ou ifconfig | grep ether ``` ### BROADCAST_IP **Utilisé par** : wol-proxy **Description** : Adresse de broadcast du réseau local. **Standard** : `192.168.1.255` (pour un réseau 192.168.1.0/24) ### COUCHDB_USER / COUCHDB_PASSWORD **Utilisés par** : CouchDB **Description** : Identifiants administrateur pour CouchDB. **Note** : L'utilisateur par défaut dans les exemples est `master`. ### N8N_USER / N8N_PASSWORD **Utilisés par** : n8n **Description** : Identifiants pour l'accès à l'interface n8n (Basic Auth). --- ## Variables système ### TZ (TimeZone) **Valeur par défaut** : `Europe/Paris` **Utilisée par** : Tous les services ### HSA_OVERRIDE_GFX_VERSION **Valeur** : `11.0.0` **Utilisée par** : Services ROCm (speaches, openedai-speech) **Description** : Force la version GFX pour la compatibilité ROCm. --- ## Configuration réseau ### Ports utilisés | Service | Port | Protocole | Description | |---------|------|-----------|-------------| | Open WebUI | 3000 | TCP | Interface web | | wol-proxy | 3011 | TCP | Proxy Ollama | | Obsidian | 3100 | TCP | Interface Obsidian web | | Qdrant HTTP | 6333 | TCP | API REST | | Qdrant gRPC | 6334 | TCP | API gRPC | | n8n | 5678 | TCP | Interface workflow | | CouchDB | 5984 | TCP | Base de données | | mcpo | 8000 | TCP | Proxy MCP | | speaches | 8200 | TCP | STT API | | openedai-speech | 8100 | TCP | TTS API | | pipelines | 9099 | TCP | Middleware | --- ## Sécurité ### Bonnes pratiques 1. **Mots de passe** : Utiliser des mots de passe forts (>16 caractères, variété) 2. **Réseau** : Ne jamais exposer les ports directement sur Internet 3. **VPN** : Utiliser WireGuard ou Tailscale pour l'accès externe 4. **Backup** : Sauvegarder régulièrement le fichier `.env` 5. **Permissions** : Limiter l'accès au fichier `.env` (chmod 600) ### Commandes de sécurité ```bash # Permissions restrictives chmod 600 ~/effi/.env # Vérifier les permissions ls -la ~/effi/.env # Backup chiffré gpg -c ~/effi/.env cp ~/effi/.env.gpg ~/backups/ ``` --- ## Dépannage environnement ### Variable non prise en compte **Cause** : Le conteneur doit être recréé (pas juste redémarré) **Solution** : ```bash docker compose down docker compose up -d ``` ### Erreur "variable is not set" **Cause** : Variable manquante dans le `.env` **Solution** : Vérifier que toutes les variables requises sont définies ### Caractères spéciaux dans les mots de passe **Attention** : Certains caractères peuvent poser problème dans les URLs (%, @, #, etc.) **Solution** : Utiliser des mots de passe avec caractères alphanumériques uniquement, ou encoder les caractères spéciaux.