Installation de Charly
Ce guide explique comment installer et configurer le projet Charly localement. Le projet est hébergé dans un monorepo sur GitHub, et l'installation nécessite de cloner le dépôt, d'installer les dépendances, et de configurer les fichiers d'environnement pour les applications (web, et cli).
Prérequis
Avant de commencer, assurez-vous d'avoir les outils suivants installés sur votre machine :
- Git : Pour cloner le dépôt.
- Bun (version 1.2.10 ou supérieure) : Le gestionnaire de paquets et runtime utilisé par le projet. Installez-le avec
curl -fsSL https://bun.sh/install | bash. - Node.js (version 20 ou supérieure) : Nécessaire pour certains scripts et outils.
- Docker (optionnel) : Pour exécuter les services via
docker-compose. - Un éditeur de code comme VS Code pour modifier les fichiers de configuration.
Étape 1 : Cloner le monorepo
Le code source de Charly est disponible sur GitHub. Clonez le monorepo avec la commande suivante :
git clone https://github.com/alexandretrotel/charly-monorepo.git
cd charly-monorepoCela télécharge l'ensemble du projet, incluant les dossiers apps/ (pour web, cli, et docs), et packages/ (pour db et shared).
1.1. Changer la configuration git locale
Pour que Vercel détecte les commits, il faut changer son nom d'utilisateur git pour ce projet.
git config user.name "Charly"
git config user.email "charly.technical1@gmail.com"
git config --get user.name
git config --get user.emailÉtape 2 : Installer les dépendances
Le monorepo utilise Bun comme gestionnaire de paquets. À la racine du projet, exécutez la commande suivante pour installer toutes les dépendances :
bun installCette commande installe les dépendances globales (définies dans package.json à la racine) ainsi que celles des workspaces (apps/* et packages/*). Assurez-vous que votre connexion réseau est stable, car le projet inclut plusieurs dépendances comme drizzle-orm, react, et hono.
Étape 3 : Configurer les fichiers d'environnement
Chaque application (web, et cli) nécessite un fichier .env pour définir les variables d'environnement. Ces fichiers doivent être créés dans les dossiers respectifs des applications. Voici les instructions pour chacun :
3.1. Application Web (apps/web/)
Créez un fichier apps/web/.env avec les variables suivantes :
NEXT_PUBLIC_POSTHOG_HOST="https://eu.i.posthog.com"
NEXT_PUBLIC_POSTHOG_KEY="the_key"
DATABASE_URL="postgresql://username:password@localhost:5432/postgres"3.2. Scraping (apps/cli/)
Créez un fichier apps/cli/.env avec les variables suivantes :
# URL de la base de données pour publier les données scrapées
DATABASE_URL=postgresql://username:password@localhost:5432/charly_dbDATABASE_URL: Identique à celle du backend pour garantir la cohérence.
Étape 4 : Lancer les applications
Une fois les dépendances installées et les fichiers .env configurés, vous pouvez lancer les applications individuellement ou ensemble.
4.1. Lancer l'application web
bun run dev:webCela démarre le serveur de développement Next.js sur http://localhost:5173. Ouvrez cette URL dans votre navigateur pour voir l'interface utilisateur.
4.2. Lancer le scraping
Pour exécuter les scripts de scraping (par exemple, pour extraire des événements d'Eventbrite) :
cd apps/cli
bun run src/index.tsCela exécute le script principal de scraping et publie les données dans la base de données.
Étape 5 : Explorer la documentation
Pour consulter la documentation localement, lancez le serveur VitePress :
bun run docs:devCela démarre la documentation sur http://localhost:5173.
Résolution des problèmes
- Erreur de connexion à la base de données : Vérifiez que la BDD est en cours d'exécution et que
DATABASE_URLest correct. Testez la connexion avecpsql. Utilisez le port5432plutôt que celui fournit par Supabase. - Dépendances manquantes : Supprimez
node_modulesetbun.lock, puis relancezbun install. - Port déjà utilisé : Modifiez les ports dans les fichiers
.envou tuez les processus en cours aveckill -9 <pid>. - Problèmes de scraping : Assurez-vous que les pages HTML utilisées (ex.
page1.html) sont accessibles.
Pour plus d'assistance, consultez le dépôt GitHub charly-monorepo ou ouvrez une issue.