Aller au contenu

Installer ShelfSpot chez-soi

Ce guide fournit des instructions étape par étape pour installer ShelfSpot en utilisant deux méthodes différentes : Installation Classique (configuration minimale) et Installation Complète (stack complet avec base de données).

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  • Docker Engine (version 20.10 ou supérieure)
  • Docker Compose (v1.29 ou supérieure, ou Docker Compose v2)
  • Git (pour cloner le dépôt)
  • Linux/macOS/Windows avec support Docker
  • Au moins 2 Go de RAM et 5 Go d’espace disque

Installer Docker

Si Docker n’est pas installé :

Vérifiez votre installation :

Fenêtre de terminal
docker --version
docker-compose --version

Méthodes d’installation

Choisissez la méthode qui correspond le mieux à vos besoins :

Méthode 1 : Installation Classique (Recommandée pour le développement)

L’installation classique propose une configuration minimale qui construit et exécute l’application ShelfSpot sans base de données intégrée. Cette méthode est idéale pour :

  • Développement et tests
  • Démos rapides
  • Si vous avez déjà un serveur de base de données

Étapes :

  1. Accédez au dossier d’installation classique :

    Fenêtre de terminal
    cd install/classic_install
  2. Rendez le script de build exécutable :

    Fenêtre de terminal
    chmod +x build.sh
  3. Exécutez le script de build :

    Fenêtre de terminal
    ./build.sh

    Ce script va :

    • Construire les images Docker pour le frontend et le backend
    • Vérifier que les images sont créées avec succès
  4. Configurez les variables d’environnement : Assurez-vous d’avoir un fichier .env dans le dossier backend avec la configuration de votre base de données :

    Fenêtre de terminal
    # Exemple de fichier .env
    DATABASE_URL="mysql://user:password@host:3306/shelfspot"
    JWT_SECRET="votre-cle-secrete"
  5. Démarrez les services :

    Fenêtre de terminal
    docker-compose up -d
  6. Vérifiez l’installation :

    Fenêtre de terminal
    docker-compose ps

    Vérifiez que les services sont en cours d’exécution :

    • Backend : Disponible sur http://localhost:3001
    • Frontend : Disponible sur http://localhost:3000
  7. Consultez les logs (si besoin) :

    Fenêtre de terminal
    docker-compose logs -f

Services inclus :

  • API Backend (NestJS) sur le port 3001
  • Frontend (Next.js) sur le port 3000

Méthode 2 : Installation Complète (Prête pour la production)

L’installation complète propose un déploiement full-stack incluant une base de données MariaDB et tous les services nécessaires. Cette méthode est idéale pour :

  • Déploiements en production
  • Environnement de test complet
  • Si vous souhaitez tout préconfiguré

Étapes :

  1. Accédez au dossier d’installation complète :

    Fenêtre de terminal
    cd install/complete_install
  2. Rendez le script de build exécutable :

    Fenêtre de terminal
    chmod +x build.sh
  3. Exécutez le script de build :

    Fenêtre de terminal
    ./build.sh

    Ce script prépare tous les composants nécessaires au déploiement complet.

  4. Configurez les variables d’environnement (optionnel) : Créez un fichier .env pour remplacer les paramètres par défaut :

    Fenêtre de terminal
    # Fichier .env optionnel pour installation complète
    DB_ROOT_PASSWORD=mot-de-passe-root
    DB_NAME=shelfspot
    DB_USER=shelfspot_user
    DB_PASSWORD=mot-de-passe-utilisateur
    DB_PORT=3306
  5. Démarrez le stack complet :

    Fenêtre de terminal
    docker-compose -f docker-compose.full.yml up -d
  6. Attendez l’initialisation de la base de données : La base de données a besoin de temps pour s’initialiser. Surveillez le processus :

    Fenêtre de terminal
    docker-compose -f docker-compose.full.yml logs -f database

    Attendez de voir “ready for connections” dans les logs.

  7. Exécutez les migrations de la base de données (si besoin) :

    Fenêtre de terminal
    docker-compose -f docker-compose.full.yml exec backend npm run prisma:migrate:deploy
  8. Vérifiez l’installation :

    Fenêtre de terminal
    docker-compose -f docker-compose.full.yml ps

    Tous les services doivent être en bonne santé :

    • Base de données (MariaDB) sur le port 3306
    • API Backend sur le port 3001
    • Frontend sur le port 3000

Services inclus :

  • Base de données MariaDB sur le port 3306
  • API Backend (NestJS) sur le port 3001
  • Frontend (Next.js) sur le port 3000
  • Scripts d’initialisation de la base (dans database/init/)

Après l’installation

Accéder à l’application

Une fois l’installation terminée, vous pouvez accéder à :

Identifiants par défaut

Si vous utilisez l’installation complète avec les paramètres par défaut :

  • Base de données :
    • Hôte : localhost:3306
    • Base : shelfspot
    • Utilisateur : shelfspot_user
    • Mot de passe : ShelfSpot2024!

Vérification de l’état des services

Les deux méthodes d’installation incluent des vérifications :

Fenêtre de terminal
# Vérifier tous les services
docker-compose ps
# Vérifier les logs d'un service spécifique
docker-compose logs backend
docker-compose logs frontend
# Pour installation complète
docker-compose -f docker-compose.full.yml logs database

Dépannage

Problèmes courants

  1. Conflits de ports :

    Fenêtre de terminal
    # Vérifier ce qui utilise les ports
    sudo netstat -tulpn | grep :3000
    sudo netstat -tulpn | grep :3001
    sudo netstat -tulpn | grep :3306
  2. Problèmes de permissions Docker :

    Fenêtre de terminal
    # Ajouter l'utilisateur au groupe docker
    sudo usermod -aG docker $USER
    # Puis déconnectez-vous et reconnectez-vous
  3. Problèmes de connexion à la base de données :

    • Vérifiez que le conteneur de base de données est sain
    • Vérifiez les variables d’environnement dans les fichiers .env
    • Vérifiez la connectivité réseau entre les conteneurs
  4. Échecs de build :

    Fenêtre de terminal
    # Nettoyer le cache Docker et reconstruire
    docker system prune -a
    docker-compose down -v
    # Puis relancez le script de build

Obtenir de l’aide

En cas de problème :

  1. Consultez les logs : docker-compose logs <nom-du-service>
  2. Vérifiez que tous les conteneurs sont en cours d’exécution : docker-compose ps
  3. Consultez la documentation dans le dossier documentation/
  4. Consultez les README spécifiques dans backend/ et frontend/

Arrêt et nettoyage

Arrêter les services :

Fenêtre de terminal
# Installation classique
docker-compose down
# Installation complète
docker-compose -f docker-compose.full.yml down

Nettoyage complet (supprime les données) :

Fenêtre de terminal
# Supprimer les conteneurs, réseaux et volumes
docker-compose down -v
# Pour installation complète
docker-compose -f docker-compose.full.yml down -v

Notes de développement

  • Pour le développement, l’installation classique est recommandée car elle est plus rapide à démarrer/arrêter
  • Utilisez l’installation complète pour tester les fonctionnalités spécifiques à la base de données
  • Les deux méthodes supportent le hot-reloading pendant le développement
  • Les variables d’environnement peuvent être personnalisées dans les fichiers .env respectifs

Pour plus d’informations, consultez la documentation sur la page d’accueil du projet.