Aller au contenu

Installation et développement local

English version
Retour au sommaire


Prérequis

Outil Version minimale Lien
Node.js 18.0 https://nodejs.org
npm 9.0 (inclus avec Node)
PostgreSQL 14.0 https://postgresql.org
MinIO Latest https://min.io
FFmpeg 4.0 https://ffmpeg.org
Git 2.x

Alternative à l'installation locale : Docker Compose

Si vous avez Docker, vous pouvez utiliser le docker-compose.yml qui inclut PostgreSQL et MinIO préconfigurés. Voir 08-deploiement.md.


1. Cloner le dépôt

git clone https://gitlab.com/[organisation]/racines-app.git
cd racines-app

2. Installer les dépendances

npm install

3. Configurer les variables d'environnement

cp .env.example .env.local  # Si un exemple existe
# Ou créer manuellement :
touch .env.local

Remplissez .env.local avec les valeurs de développement (voir 02-variables-env.md) :

# PostgreSQL local
PG_HOST=localhost
PG_PORT=5432
PG_DATABASE=racines
PG_USER=postgres
PG_PASSWORD=postgres
PG_SSL=false

# MinIO local
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_USE_SSL=false
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=audios
MINIO_PUBLIC_URL=http://localhost:9000

# Auth
JWT_SECRET=dev_secret_change_in_production

# Audio (en dev, proxy activé car CDN_URL vide)
AUDIO_CDN_URL=
AUDIO_PROXY_DISABLED=false

# PWA désactivé en dev (évite conflits Service Worker)
NEXT_PUBLIC_PWA_ENABLED=false

4. Initialiser PostgreSQL

Créer la base de données

# Se connecter à PostgreSQL
psql -U postgres

# Créer la base et l'utilisateur
CREATE DATABASE racines;
\q

Exécuter les migrations

# Depuis la racine du projet
psql -U postgres -d racines -f migrations/001_initial_schema.sql
psql -U postgres -d racines -f migrations/002_create_admins.sql
psql -U postgres -d racines -f migrations/004_quiz_results.sql

Note : migrations/003_idb_card_id_index_note.sql est une note de documentation, pas une migration SQL à exécuter.


5. Configurer MinIO

Démarrer MinIO (Docker recommandé)

docker run -d \
  --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -e MINIO_ROOT_USER=minioadmin \
  -e MINIO_ROOT_PASSWORD=minioadmin \
  minio/minio server /data --console-address ":9001"

Créer le bucket audios

# Via l'interface web MinIO : http://localhost:9001
# Login: minioadmin / minioadmin
# Créer un bucket nommé "audios" avec la politique "public"

# Ou via CLI (mc) :
mc alias set local http://localhost:9000 minioadmin minioadmin
mc mb local/audios
mc anonymous set public local/audios
mc version enable local/audios

6. Créer le premier compte administrateur

npm run create-admin
# Suivez les instructions :
# Email: admin@racines.local
# Mot de passe: [votre_mot_de_passe]
# Confirmation: [votre_mot_de_passe]

7. Démarrer le serveur de développement

npm run dev

L'application est accessible sur http://localhost:3000.


URLs locales

URL Description
http://localhost:3000 Application Racines
http://localhost:3000/admin Interface admin
http://localhost:3000/speaker/login Interface locuteur
http://localhost:9001 Console MinIO (admin)

Scripts npm disponibles

Commande Description
npm run dev Démarrage en développement (hot reload)
npm run build Build de production
npm run start Démarrage en production (après build)
npm run lint Vérification ESLint
npm run create-admin Créer un compte administrateur

Tester l'installation

# 1. Vérifier que l'app démarre sans erreur
npm run dev
# → L'application doit démarrer sur http://localhost:3000

# 2. Vérifier le health check
curl http://localhost:3000/api/health/live
# → {"status":"ok","timestamp":"..."}

# 3. Vérifier la connexion PostgreSQL
curl http://localhost:3000/api/languages
# → [] (liste vide si aucune langue créée)

# 4. Se connecter en tant qu'admin
# → Allez sur http://localhost:3000/admin et connectez-vous

Développement avec Docker Compose (alternative)

Si vous préférez Docker pour PostgreSQL et MinIO :

# Démarrer seulement la base et le stockage
docker-compose up -d postgres minio minio-init

# Puis développez avec Next.js en local
npm run dev

Étapes suivantes