# CLAUDE.md ## Contexte Bot Discord de tracking de Personal Best (PB) pour les clan bosses du jeu Raid Shadow Legends. Communauté TEA — The Ember Accord (4 clans : TEAI, TEAF, TEAC, TEACO). ## Branches | Branche | Environnement | Chemin NAS | |---------|--------------|------------| | `main` | Production | `/share/CACHEDEV1_DATA/discord-bot-prod` | | `dev` | Développement | `/share/CACHEDEV1_DATA/discord-bot-dev` | ## Déploiement CI/CD via Forgejo Actions → runner `vm-runner` (192.168.1.53) → rsync vers NAS QNAP (192.168.1.208). Push sur `main` ou `dev` déclenche le déploiement automatique. Secret requis dans Forgejo : `NAS_SSH_KEY` (clé privée ed25519 pour SSH Elewyn@NAS). ## Persistance des données (NE PAS écraser) Ces dossiers vivent sur le NAS et sont montés dans le container — jamais dans le repo, jamais écrasés par rsync : | Dossier | Contenu | |---------|---------| | `data/` | Base SQLite (`bot_data.db`) | | `screenshots/` | Captures d'écran des PBs | | `logs/` | Logs du bot | ## Variables d'environnement (.env sur le NAS) Fichier `.env` à créer manuellement sur le NAS dans chaque `DEPLOY_PATH` : ``` DISCORD_TOKEN=... AUTHORIZED_CHANNEL_ID=... ``` ## Structure ``` bot.py # Point d'entrée, charge les cogs config.py # Config centralisée (token, chemins, boss, clans) cogs/ # Commandes Discord (un fichier par fonctionnalité) utils/ # Managers (DB, screenshots, mercy) et handlers Dockerfile # Image Python 3.9-slim docker-compose.yml # Déploiement container ``` ## Boss supportés - **Hydra** : normal, hard, brutal, nightmare - **Chimera** : easy, normal, hard, brutal, nightmare, ultra - **CvC** : Clan vs Clan ## Pièges connus - Le `.env` ne doit jamais être commité — il contient le token Discord - `data/`, `screenshots/`, `logs/` sont gitignorés — données persistantes sur le NAS - Le rsync exclut ces dossiers pour ne pas écraser les données en prod