Implement comprehensive config system and clean up codebase

Major changes:
- Add Pydantic-based configuration system (bot/config.py, bot/config_manager.py)
- Add config.yaml with all service URLs, models, and feature flags
- Fix config.yaml path resolution in Docker (check /app/config.yaml first)
- Remove Fish Audio API integration (tested feature that didn't work)
- Remove hardcoded ERROR_WEBHOOK_URL, import from config instead
- Add missing Pydantic models (LogConfigUpdateRequest, LogFilterUpdateRequest)
- Enable Cheshire Cat memory system by default (USE_CHESHIRE_CAT=true)
- Add .env.example template with all required environment variables
- Add setup.sh script for user-friendly initialization
- Update docker-compose.yml with proper env file mounting
- Update .gitignore for config files and temporary files

Config system features:
- Static configuration from config.yaml
- Runtime overrides from config_runtime.yaml
- Environment variables for secrets (.env)
- Web UI integration via config_manager
- Graceful fallback to defaults

Secrets handling:
- Move ERROR_WEBHOOK_URL from hardcoded to .env
- Add .env.example with all placeholder values
- Document all required secrets
- Fish API key and voice ID removed from .env

Documentation:
- CONFIG_README.md - Configuration system guide
- CONFIG_SYSTEM_COMPLETE.md - Implementation summary
- FISH_API_REMOVAL_COMPLETE.md - Removal record
- SECRETS_CONFIGURED.md - Secrets setup record
- BOT_STARTUP_FIX.md - Pydantic model fixes
- MIGRATION_CHECKLIST.md - Setup checklist
- WEB_UI_INTEGRATION_COMPLETE.md - Web UI config guide
- Updated readmes/README.md with new features
This commit is contained in:
2026-02-15 19:51:00 +02:00
parent bb5067a89e
commit 8d09a8a52f
20 changed files with 2688 additions and 164 deletions

38
.gitignore vendored
View File

@@ -1,3 +1,4 @@
# ============================================
# Python
__pycache__/
*.py[cod]
@@ -26,9 +27,11 @@ models/*.bin
# Keep the directory structure
!models/.gitkeep
# Environment variables
# Environment variables & Secrets
.env
.env.local
.env.*.local
*.secret
# Logs
*.log
@@ -43,4 +46,37 @@ Thumbs.db
# Bot memory (contains user data)
bot/memory/*.json
bot/memory/autonomous_context.json
!bot/memory/.gitkeep
# Sensitive files
*credentials*.json
*secrets*.json
*keys*.json
*cookies*.json
# Test outputs
*.tmp
*.temp
test_output.*
output/
temp_*
# Audio files (except static assets)
*.mp3
*.wav
*.ogg
!static/audio/*.mp3
!static/audio/*.wav
# Images (except static assets)
*.png
*.jpg
*.jpeg
*.gif
!static/images/*
# Backups
backups/
*.bak
*.backup