🚀 Démarrage
Ce guide vous explique comment installer le projet LIPAIX sur votre machine. Il est écrit pour les développeurs qui rejoignent le projet pour la première fois.
🧩 Ce que vous installez
Le dépôt LIPAIX est un monorepo — un seul dépôt contenant plusieurs applications liées :
apps/web— Le site public + MyLipaix + l'API backend (tout dans une seule application Next.js)apps/discord-bot— Le service du bot Discordshared/common— Code TypeScript partagé utilisé par les deux applicationsdocs/vitepress— Cette documentation
En pratique, vous ferez tourner principalement apps/web en local, sauf si vous travaillez sur le bot.
✅ Prérequis
Avant de commencer, installez les outils suivants :
| Outil | Version minimale | À quoi ça sert |
|---|---|---|
| Node.js | 22+ | Environnement d'exécution JavaScript |
| pnpm | 9+ | Gestionnaire de paquets (n'utilisez pas npm ou yarn) |
| Git | Toute version récente | Contrôle de version |
| VS Code | — | Éditeur recommandé |
Pour vérifier vos installations :
node --version # doit afficher v22.x.x ou supérieur
pnpm --version # doit afficher 9.x.x ou supérieur
git --version📥 Récupérer le code
git clone https://github.com/lipaix/lipaix-web-v3.git
cd lipaix-web-v3
pnpm installpnpm install télécharge toutes les dépendances de toutes les applications du monorepo en une seule fois.
🔐 Variables d'environnement
Les applications ont besoin de valeurs de configuration (connexion à la base de données, clés API, etc.) qui sont stockées dans un fichier .env.local et ne sont jamais commitées sur git.
Obtenez le fichier .env.local auprès de l'équipe — n'essayez pas de le créer de zéro. Le fichier est partagé en privé au sein de l'équipe.
Placez le fichier à l'emplacement apps/web/.env.local.
Variables clés (application web)
| Variable | Ce qu'elle fait |
|---|---|
DATABASE_URI | Chaîne de connexion PostgreSQL |
PAYLOAD_SECRET | Clé secrète pour le chiffrement des sessions PayloadCMS |
DISCORD_BOT_TOKEN | Token du bot Discord (utilisé par l'application web pour la connexion Discord) |
DISCORD_CLIENT_ID | ID de l'application OAuth Discord |
DISCORD_CLIENT_SECRET | Secret de l'application OAuth Discord |
LIPAIX_API_TOKEN | Token API interne utilisé par le bot Discord pour appeler l'API web |
BASE_URL | L'URL où tourne l'application (ex. : http://localhost:3000 en local) |
Variables clés (bot Discord)
Pour le bot Discord, créez apps/discord-bot/.env.local (obtenez-le également auprès de l'équipe) :
| Variable | Ce qu'elle fait |
|---|---|
DISCORD_BOT_TOKEN | Le token secret du bot |
DISCORD_BOT_APP_ID | L'ID de l'application du bot |
DISCORD_GUILD_ID | L'ID du serveur Discord (guild) où le bot opère |
MYLIPAIX_BASE_URL | L'URL de l'application web (pour les appels API) |
LIPAIX_DISCORD_ACTION | Token d'action interne |
BILLETWEB_API_KEY | Clé API Billetweb pour la commande /tickets |
BILLETWEB_USER | Identifiant utilisateur Billetweb |
▶️ Lancer l'application web
Depuis la racine du dépôt :
pnpm web:devCela démarre le serveur de développement Next.js. Une fois lancé :
- Site public :
http://localhost:3000 - MyLipaix :
http://localhost:3000/admin
La première fois que vous le lancez, PayloadCMS vous invitera à créer un utilisateur administrateur initial. Suivez les instructions à l'écran.
🤖 Lancer le bot Discord
Dans un terminal séparé :
pnpm discord:devLe bot se connecte à Discord et commence à écouter les commandes slash.
Enregistrer les commandes slash
Les commandes slash (/dispos, /selecs, /tickets) doivent être enregistrées auprès de Discord une fois avant d'apparaître dans le serveur. Lancez :
pnpm discord:commands:registerVous n'avez besoin de faire ça que lorsque des commandes sont ajoutées ou modifiées.
📚 Lancer la documentation
pnpm docs:devLe site de documentation tourne sur http://localhost:3001.
🗄️ Migrations de base de données
Quand le schéma de la base de données change (des collections PayloadCMS sont ajoutées ou modifiées), vous devez lancer les migrations :
pnpm web:db:migrate🛠️ Problèmes fréquents
Erreurs "Cannot find module" après pnpm install
Lancez d'abord pnpm build dans shared/common — le package partagé doit être compilé avant que les applications puissent l'utiliser :
pnpm common:buildErreurs de connexion à la base de données
Vérifiez que votre DATABASE_URI dans .env.local est correct et que la base de données PostgreSQL est accessible.
Le bot Discord ne répond pas aux commandes
Assurez-vous que les commandes sont enregistrées (pnpm discord:commands:register) et que le DISCORD_GUILD_ID correspond au serveur dans lequel vous testez.
