Skip to content

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 :

bash
git clone https://github.com/alexandretrotel/charly-monorepo.git
cd charly-monorepo

Cela 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.

bash
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 :

bash
bun install

Cette 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 :

bash
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 :

bash
# URL de la base de données pour publier les données scrapées
DATABASE_URL=postgresql://username:password@localhost:5432/charly_db
  • DATABASE_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

bash
bun run dev:web

Cela 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) :

bash
cd apps/cli
bun run src/index.ts

Cela 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 :

bash
bun run docs:dev

Cela 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_URL est correct. Testez la connexion avec psql. Utilisez le port 5432 plutôt que celui fournit par Supabase.
  • Dépendances manquantes : Supprimez node_modules et bun.lock, puis relancez bun install.
  • Port déjà utilisé : Modifiez les ports dans les fichiers .env ou tuez les processus en cours avec kill -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.