Intégrations externes Intégrations externes Dernière mise à jour : 2026-05-10 Pour chaque service tiers : à quoi il sert, endpoints consommés, où sont les credentials, quel est le mode dégradé. Qdrant Rôle : Vector DB. Une collection par jeu ( rules_) + une par TCG ( magic-cards, etc.). Endpoint : QDRANT_URL (ex. http://192.168.10.100:6333) Credentials : aucun (cluster privé LAN, accès filtré au niveau réseau Docker) Vecteurs : dense 1024 (bge-m3) + sparse BM25 natif Mode dégradé : aucun. Si Qdrant est down, le retrieval échoue, l'app renvoie 500. Health : GET /collections (vérifié par /api/admin/health) TEI bge-m3 (embeddings) Rôle : Génère les embeddings dense 1024 dim pour les questions et chunks. Endpoint : TEI_URL (ex. http://192.168.10.100:8099) Credentials : aucun Modèle : BAAI/bge-m3 servi par TEI (HuggingFace) Latence typique : ~50-100ms pour un batch de 32 sur RTX 3060 Mode dégradé : aucun fallback. Sans TEI : pas de retrieval. Health : GET /health TEI Reranker bge-v2-m3 Rôle : Cross-encoder qui re-classe les top-50 candidats fusionnés (RRF) avant la génération. Endpoint : TEI_RERANKER_URL (ex. http://192.168.10.100:8990) Credentials : aucun Modèle : BAAI/bge-reranker-v2-m3 Mode dégradé : si reranker down, on retombe sur le score RRF brut (suboptimal mais fonctionnel). Claude Code CLI (Anthropic) Rôle : Génération streamée des réponses RAG, HyDE, decompose-query, contextual retrieval, hierarchy, conflict detect, classify intent. Accès : SSH ed25519 vers la VM oracle (compte dédié). Endpoint : CLAUDE_SSH_HOST + CLAUDE_SSH_USER=oracle + clé privée CLAUDE_SSH_KEY_PATH Credentials Anthropic : stockés sur la VM dans /home/oracle/.claude/.credentials.json (compte personnel Pro/Team) Modèles : claude-haiku-4-5-20251001 : HyDE, decompose, classify, contextual, conflict claude-opus-... (par défaut) : réponses RAG, deckbuilding Quota : géré par services/claude-quota.ts. Pause auto + reprise programmée à resetAt + 2 min. Sécurité : ForceCommand wrapper /home/oracle/bin/oracle-claude.sh valide préfixe cd /home/oracle/work && claude . validateModel() côté backend bloque l'injection. BoardGameGeek (XML API v2) Rôle : Récupère metadata jeux (image, méchaniques, catégories), liste extensions, scrape forums "Rules" pour ingest dans le RAG. Endpoint : https://boardgamegeek.com/xmlapi2/... Credentials : BGG_API_TOKEN (optionnel). Sans token, rate-limit plus strict mais fonctionnel. Cache : hot games 6h (mémoire), forums via cron quotidien (configurable) Mode dégradé : sans BGG, tu peux toujours créer un jeu manuellement (skip étape 1 du wizard). Sources de cartes par TCG TCG Endpoint / source MTG https://api.scryfall.com/bulk-data → JSON all_cards (téléchargé localement) Lorcana https://github.com/LorcanaJSON/LorcanaJSON (raw GitHub, MIT) FAB npm @flesh-and-blood/cards + @flesh-and-blood/types (bundlé dans l'image Docker) Riftbound https://riftbound.leagueoflegends.com/en-us/card-gallery (API JSON Riot) Terraforming Mars HTML parsing local + cards.json Ark Nova JSON local + sprites découpées Sources méta-game Source TCG Méthode 17Lands MTG (draft analytics) API publique MTGGoldfish MTG (constructed metagame) Scrape (Cheerio) + rate-limit 1.5s MTGTop8 MTG (top 8s tournois) Scrape + rate-limit 1.5s Mobalytics Riftbound (tier list) Scrape RiftboundStats Riftbound (tournois) API fabtcg.com FAB (tournois LSS) Scrape (header META_FAB_USER_AGENT Cloudflare-compatible) Tous gérés via src/services/meta/*.ts. Cron meta-sync.ts pilote la fréquence (par défaut hebdo, configurable). Email (SMTP) Rôle : Notification admin au register, password reset. Credentials : SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_FROM, SMTP_SECURE Mode dégradé : si SMTP_HOST vide, tous les emails sont silencieusement skippés. L'admin doit checker /admin à la main. Reverse proxy (Nginx Proxy Manager) Rôle : TLS Let's Encrypt + reverse proxy rules.thymon.fr → container :3000. Pas dans le code : config NPM via UI, hors scope du repo. Heartbeats SSE 8s : nécessaires pour ne pas se faire fermer la connexion par le proxy_read_timeout 60s par défaut. TRUST_PROXY=true : Hono fait confiance aux X-Forwarded-* headers de NPM. Aucune autre intégration Pas de Sentry / Datadog / monitoring tiers Pas de S3 / cloud storage (tout en local sur Unraid) Pas de service d'analytics (Umami pourrait être ajouté facilement, pas en place actuellement) Pas de webhook entrant (tout est trigger soit user, soit cron)