FateWeaver est un bot Discord complet pour gérer un jeu de rôle avec gestion de personnages, chantiers communautaires, système de nourriture et mécanique de survie.
- Création et personnalisation de personnages
- Système de points d'action (PA) régénérables
- Gestion de la faim et de la mort
- Système de reroll pour recommencer
- Chantiers communautaires nécessitant des investissements collectifs
- Progression en temps réel avec objectifs PA
- Gestion des contributions individuelles
- Messages automatiques lors de la complétion
- Stock communautaire de vivres
- Système de faim affectant les personnages
- Repas nécessitant des vivres du stock commun
- Commandes administrateur pour la gestion du serveur
- Gestion des personnages (modification stats, mort, reroll)
- Gestion des stocks de nourriture
- Logs automatiques des événements importants
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Discord Bot │◄──►│ Backend API │◄──►│ PostgreSQL │
│ │ │ │ │ │
│ • Commands │ │ • REST API │ │ • Characters │
│ • Events │ │ • Business │ │ • Chantiers │
│ • Interactions │ │ Logic │ │ • Towns │
└─────────────────┘ └──────────────────┘ │ • Users │
│ • Guilds │
┌─────────────────┐ ┌──────────────────┐ └─────────────────┘
│ Frontend │◄──►│ Database │
│ (Dashboard) │ │ (Prisma ORM) │
└─────────────────┘ └──────────────────┘
- Node.js 18+
- Docker et Docker Compose
- PostgreSQL (via Docker)
- Compte Discord avec token bot
-
Cloner le repository
git clone https://github.com/MatthiasBlc/FateWeaverBot.git cd FateWeaverBot -
Configuration de l'environnement
cp .env.example .env # Éditer .env avec vos configurations -
Configuration du dossier partagé (développement local uniquement)
cd backend ln -sfn ../shared shared cd ..
Note : Ce symlink est nécessaire uniquement pour le développement local. En production, Docker copie automatiquement les fichiers nécessaires.
-
Lancer les services
# Développement docker compose up -d # Production docker compose -f docker-compose.prod.yml up -d
-
Configuration du bot Discord
- Créez une application Discord sur https://discord.com/developers/applications
- Récupérez le token et l'ID client
- Ajoutez le bot à votre serveur
-
Déploiement initial
# Dans le container du bot docker compose exec discord-botdev npm run deploy
- Bot Discord - Fonctionnalités, commandes et déploiement
- Backend API - Architecture serveur et endpoints
- Frontend - Interface utilisateur (si disponible)
FateWeaverBot/
├── bot/ # Bot Discord (TypeScript)
│ ├── src/
│ │ ├── commands/ # Commandes slash simples
│ │ ├── features/ # Fonctionnalités complexes
│ │ ├── services/ # Services externes
│ │ └── utils/ # Utilitaires
│ └── package.json
├── backend/ # API REST (TypeScript)
│ ├── src/
│ │ ├── controllers/ # Endpoints API
│ │ ├── routes/ # Définition des routes
│ │ └── services/ # Logique métier
│ ├── shared/ # Symlink vers ../shared (local uniquement)
│ └── package.json
├── shared/ # Code partagé entre bot et backend
│ └── constants/ # Constantes partagées (emojis, etc.)
├── frontend/ # Interface React (optionnelle)
└── common.yml # Configuration Docker partagée
# Bot Discord
cd bot
npm run dev # Développement avec hot reload
npm run build # Build de production
npm run deploy # Déploiement intelligent des commandes
# Backend API
cd backend
npm run dev # Développement
npm run build # Build
# Services complets
docker compose up -d # Tous les services/ping- Test de connectivité/profil- Affichage du profil personnage/manger- Prendre un repas/chantiers liste- Voir les chantiers disponibles/chantiers build- Investir dans un chantier
/admin help- Aide administrateur/admin chantiers- Gestion des chantiers/admin personnage- Gestion des personnages/admin nourriture- Gestion du stock
# Discord
DISCORD_TOKEN=votre_token_bot
DISCORD_CLIENT_ID=votre_client_id
DISCORD_GUILD_ID=123456789 # Vide = mode global
# Base de données
DATABASE_URL=postgresql://user:pass@host:5432/db
# Backend
PORT=3000
SESSION_SECRET=votre_secret_session
# CORS (si nécessaire)
CORS_ORIGIN=http://localhost:8080docker compose up -d# Build et déploiement
./deploy_prod.sh
# Ou manuellement
docker compose -f docker-compose.prod.yml up -d --build- Logs des événements : Messages automatiques dans le channel de logs configuré
- Logs applicatifs : Via Docker logs ou fichiers de logs
- Base de données : Prisma Studio accessible via tunnel SSH
- Variables d'environnement sécurisées
- Validation des tokens Discord
- Gestion des permissions utilisateur
- Logs sécurisés des actions sensibles
- Fork le projet
- Créez une branche feature (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add AmazingFeature') - Push la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
Ce projet est sous licence privée. Voir le fichier LICENSE pour plus de détails.
MatthiasBlc - GitHub
⭐ Si ce projet vous plaît, n'hésitez pas à lui donner une étoile !!