Aller au contenu principal

Installation complète

Guide d'installation détaillé pour l'environnement de développement de l'API MyTelevision.

Prérequis par système d'exploitation

macOS

# Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Node.js via nvm
brew install nvm
nvm install 20
nvm use 20

# Docker Desktop
brew install --cask docker

Ubuntu / Debian

# Node.js
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Windows

  1. Installer Node.js 20 LTS
  2. Installer Docker Desktop
  3. Installer Git for Windows

Vérification des prérequis

node --version    # v20.x.x
npm --version # 10.x.x
docker --version # Docker version 2x.x.x
git --version # git version 2.x.x

Architecture des services

Installation du projet

1. Cloner le repository

git clone https://github.com/XKS-MYTV4JS/mytelevision-restfullapijsv4.git
cd mytelevision-restfullapijsv4

2. Installer les dépendances

npm install

3. Configurer l'environnement

cp .env.example .env
# Éditer .env avec vos valeurs (voir la page Configuration)

4. Démarrer les services Docker

npm run docker:up

5. Initialiser la base de données

# Appliquer les migrations Prisma
npm run prisma:migrate:dev

# Générer le client Prisma
npm run prisma:generate

6. (Optionnel) Charger des données de test

npm run prisma:seed

Les utilisateurs par défaut créés par le seed :

RôleEmailMot de passe
SUPER_ADMIN[email protected]SuperAdmin@123!
ADMIN[email protected]Admin@123!
MODERATOR[email protected]Moderator@123!
USER[email protected]User@123!

7. Démarrer l'API

# Mode développement avec hot-reload
npm run start:dev

# Mode debug
npm run start:debug

# Build de production
npm run build
npm run start:prod

Structure des services Docker

ServicePortDescription
API NestJS3052 (dev) / 3051 (staging) / 3050 (prod)Application principale
PostgreSQL5432Base de données relationnelle
Redis6379Cache et sessions
Prometheus9090Collecte de métriques
Grafana3001Tableaux de bord

Profils Docker Compose

# Développement
docker compose --profile dev up -d

# Staging
docker compose --profile staging up -d

# Production
docker compose --profile prod up -d

# Local (rétrocompatible)
docker compose --profile local up -d

Vérification de l'installation

# Health check
curl http://localhost:3052/health

# Tests unitaires
npm run test

# Build de production
npm run build

# Linting
npm run lint

Structure du projet

mytelevision-api/
├── src/ # Code source
│ ├── application/ # Services et DTOs
│ ├── infrastructure/ # Config, DB, Cache
│ ├── presentation/ # Controllers, Modules
│ └── shared/ # Constantes, Types
├── prisma/ # Schéma et migrations
├── postman/ # Collections Postman
├── docs/ # Documentation
└── docker-compose.yml # Services Docker

Tests avec Postman

Importer les collections

  1. Ouvrir Postman
  2. Importer postman/MyTelevision_API_Collection.json
  3. Importer postman/environments/local.json
  4. Sélectionner l'environnement "Local"

Exécuter un test

  1. Aller dans "Auth" > "Login"
  2. Cliquer "Send"
  3. Le token est automatiquement sauvegardé dans l'environnement

Résolution des problèmes courants

Port déjà utilisé

# macOS / Linux
lsof -i :3052

# Windows
netstat -ano | findstr :3052

# Ou utiliser un autre port
PORT=3053 npm run start:dev

Erreur de connexion PostgreSQL

# Vérifier que le conteneur est en cours d'exécution
docker ps | grep postgres

# Voir les logs
docker logs mytv-postgres

# Redémarrer les conteneurs
npm run docker:down
npm run docker:up

Erreur Prisma "Client not generated"

npm run prisma:generate

Erreur de migration

# Réinitialiser la base de données (ATTENTION : supprime toutes les données)
npm run prisma:migrate:reset

Prochaines étapes