Aller au contenu

Outil D&D Master

Rôle

Outil d'aide au maître de jeu pour la campagne D&D. Gère les entités de la campagne et génère des briques de préparation de session via IA.

Accès

LXC 115 — 192.168.1.70
Port 80
URL https://dnd.2h15.fr (VPN uniquement)
Stack React + TypeScript + Vite (frontend) · FastAPI + PostgreSQL (backend)

Architecture

Internet (VPN) → Nginx (port 80)
                    ├── /         → /opt/dnd/frontend/dist/ (React build)
                    └── /api/     → FastAPI (service dnd.service, venv)
                                        └── PostgreSQL (local)
Chemin Rôle
/opt/dnd/backend/ Code FastAPI, venv Python
/opt/dnd/frontend/ Code React/TypeScript/Vite, build dans dist/

Entités gérées

Entité Description
Campagne Contexte global, paramètres
PJ Personnages joueurs
PNJ Personnages non-joueurs
Lieux Locations de la campagne
Factions Groupes et organisations
Quêtes Quêtes actives, en veille (dormant)
Briques de prépa Contenu généré pour les sessions
Sessions Historique des sessions jouées

Campagne en cours

La Malédiction de Strahd (D&D 5e) — 7 PJs, 29 PNJs, 18 lieux, 4 factions, 14 quêtes.

Briques de préparation

Les briques sont des blocs de contenu réutilisables lors des sessions.

Types

social · revelation · exploration · event

Statuts

  • available — prête à être utilisée
  • used — déjà utilisée en session

Génération IA

La génération est interactive via un modal chat :

  1. Claude pose des questions pour clarifier la demande
  2. Claude propose un résumé de la brique avant de la créer
  3. La brique est générée uniquement après confirmation explicite

Le contexte injecté automatiquement : liste des PJs, PNJs actifs, quêtes actives et en veille, résumé de la dernière session.

Intelligence artificielle

L'IA est accédée via le CLI Claude Code (claude -p) — credentials dans /root/.claude/.credentials.json sur LXC 115.

Token Claude expiré

Si une erreur 401 apparaît, re-pousser les credentials depuis le host Proxmox :

pct push 115 /root/.claude/.credentials.json /root/.claude/.credentials.json

Raccourcis clavier (UX keyboard-first)

Raccourci Action
Ctrl+K Ouvrir la palette de commandes
j / k Navigation dans les listes
n Nouvel élément
e Éditer l'élément sélectionné
x Marquer une brique comme utilisée
g + lettre Navigation rapide vers une section

Monitoring

  • Dashboard de supervision : oui
  • Uptime Kuma : monitor HTTP dnd.2h15.fr/api/health

Débogage

# Statut du service backend
pct exec 115 -- systemctl status dnd

# Logs backend
pct exec 115 -- journalctl -u dnd -n 50

# Statut nginx
pct exec 115 -- systemctl status nginx

# Health check API
pct exec 115 -- curl -s http://localhost/api/health

Déploiement frontend

Après modification du code frontend :

# Dans LXC 115
pct exec 115 -- bash -c "cd /opt/dnd/frontend && npm run build"
# Le build est servi directement depuis dist/ par Nginx