Installation — Immbot AI
Prérequis
- Node.js ≥ 24 (utilise
node:sqlitenatif et l'exécution TypeScript intégrée — Node 25 recommandé) - pnpm (
npm i -g pnpm) - Les dossiers de cours
IMM1003-20/etIMM1033-20/accessibles (par défaut : à côté deimmbot-ai/) - Une clé OpenRouter (https://openrouter.ai/keys) pour le chat
Installation automatique
bash
./scripts/setup.shFait : pnpm install → création de .env (avec AUTH_SECRET généré) → pnpm seed → pnpm ingest.
Installation manuelle
bash
pnpm install
cp .env.example .env # puis renseigner OPENROUTER_API_KEY et AUTH_SECRET
pnpm seed # admin initial + cours + prompts + 140 cartes + 129 questions + 6 examens
pnpm ingest # parse les .tex des cours → 2 000+ fragments indexés (FTS5 + embeddings)
pnpm dev # http://localhost:3070Premier pnpm ingest : téléchargement du modèle d'embeddings (~120 Mo) dans data/models/,
puis tout fonctionne hors-ligne.
Variables d'environnement
Voir .env.example. Essentielles :
| Variable | Rôle |
|---|---|
OPENROUTER_API_KEY |
Clé serveur (jamais exposée au navigateur) |
AUTH_SECRET |
Générer : openssl rand -hex 32 |
DATABASE_PATH |
SQLite (défaut ./data/immbot.db) |
INITIAL_ADMIN_USERNAME / INITIAL_ADMIN_PASSWORD |
Amorçage seulement — changement forcé |
FORCE_INITIAL_ADMIN_PASSWORD_CHANGE |
true (défaut) |
DISABLE_INITIAL_ADMIN |
true en production une fois le vrai compte créé |
SIGNUP_ACCESS_CODE |
Code exigé à l'inscription étudiante (vide = libre) |
COURSE_IMM1003_PATH / COURSE_IMM1033_PATH |
Dossiers sources des cours |
Compte administrateur initial
Créé par pnpm seed : admin / admin123, haché bcrypt (coût 12), indicateur
must_change_password → l'interface force le remplacement à la première connexion et refuse
admin123 comme mot de passe permanent. Une bannière d'avertissement reste visible tant que le
compte d'amorçage est actif. Procédure recommandée en production :
- se connecter, changer le mot de passe ;
- créer son compte personnel (rôle admin via Sécurité) ;
- mettre
DISABLE_INITIAL_ADMIN=trueet désactiver le compteadmindans l'admin.
Vérification
bash
./scripts/verify.sh # tsc + 34 tests + évaluation RAG (rappel/refus/isolation)