Aller au contenu principal

Installation automatique

Ce guide vous accompagne dans les étapes pour installer le Portail iTop sur votre serveur. Suivez ces instructions attentivement pour garantir un processus d'installation fluide. Avant de commencer, assurez-vous d'avoir rempli toutes les conditions préalables.

Étape 1 : Récupérer le projet

Le code source du Portail iTop est hébergé sur GitHub. Pour commencer, clonez le dépôt sur votre machine locale ou votre serveur :

  git clone https://github.com/Sparfel/itop-portal-2.git
cd itop-portal-2
Important

Assurez-vous que le dossier cloné est entièrement accessible par votre serveur web (par exemple, Apache). Cela implique de définir les permissions appropriées pour qu'Apache puisse lire et exécuter les fichiers dans ce répertoire. Sur les systèmes Linux, cela nécessite généralement de configurer correctement la propriété et les permissions.

Par exemple :

  sudo chown -R www-data:www-data itop-portal-2/

Étape 2 : Créer la base de données

Le Portail iTop nécessite une base de données MariaDB pour stocker ses données. Configurez la base de données comme suit :

  1. Connectez-vous à votre serveur MariaDB :

    mysql -u root -p
  2. Créez une nouvelle base de données (remplacez itop_portal_db par le nom de votre choix) :

    CREATE DATABASE itop_portal_db;
  3. En option, créez un utilisateur dédié et attribuez-lui des privilèges :

    CREATE USER 'itop_user'@'localhost' IDENTIFIED BY 'votre_mot_de_passe_sécurisé';
    GRANT ALL PRIVILEGES ON itop_portal_db.* TO 'itop_user'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;

Étape 3 : Configurer l'environnement

Laravel utilise un fichier .env pour gérer les paramètres spécifiques à l'environnement. Configurez-le comme suit :

Fichier d'environnement .env

Copiez le fichier d'exemple d'environnement :

cp .env.example .env

Modifiez .env pour inclure les informations d'identification de votre base de données :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=itop_portal_db
DB_USERNAME=itop_user
DB_PASSWORD=votre_mot_de_passe_sécurisé

et les détails d'intégration avec iTop :

ITOP_0_NAME="Mon iTop"
ITOP_0_PROTOCOL=https
ITOP_0_URL=URL_ITOP
ITOP_0_USER=webservice_itop_user
ITOP_0_PASSWORD=webservice_itop_user_password
ITOP_0_DEBUG=0
Accès au webservice

webservice_itop_user et webservice_itop_user_password sont les identifiants d'un utilisateur iTop disposant de permissions spéciales (REST User Service et Administrateur) nécessaires pour que le portail interagisse avec iTop, voir Conditions préalables.

Instance secondaire (Test) :

info

Il est possible de se connecter à d'autres instances iTop. Dans ce cas, elles doivent être définies comme indiqué ci-dessous :

ITOP_1_NAME="Mon iTop (Test)"
ITOP_1_PROTOCOL=https
ITOP_1_URL=URL_ITOP_TEST
ITOP_1_USER=webservice_itop_user
ITOP_1_PASSWORD=webservice_itop_user_password
ITOP_1_DEBUG=0
attention

La connexion à iTop est définie au niveau de l'utilisateur. Par conséquent, un utilisateur est lié à une instance iTop dans le portail.

danger

Toutes les instances iTop connectées doivent être identiques (ou très similaires) car les appels au webservice iTop sont basés sur un modèle de données. Ce modèle de données doit donc être commun à toutes les instances iTop connectées.

Générer une clé d'application :

php artisan key:generate

Étape 5 : Installation

Installation automatique via setup.sh

Pour simplifier le processus d'installation, un script automatisé est disponible à la racine du dépôt : setup.sh (ou setup.ps1 pour les utilisateurs de Windows PowerShell).

Ce script gère toutes les étapes nécessaires pour configurer le projet en mode développement ou production :

  • Installation des dépendances PHP via Composer (avec ou sans les packages de développement, selon le mode)
  • Installation des dépendances JavaScript
  • Compilation des ressources (CSS/JS)
  • Création du lien symbolique vers le dossier storage
  • Exécution des migrations et des seeders de la base de données

Utilisation

# Mode développement (par défaut)
./setup.sh

ou

# Mode production
./setup.sh --prod

L'option --prod installe uniquement les dépendances de production, optimise l'autoloader, compile les ressources pour la production et exécute les migrations et seeders sans confirmation.

Installation manuelle (Avancée)

Si vous préférez installer et configurer le portail manuellement au lieu d'utiliser le script setup.sh, suivez ces étapes :

  1. Installez les dépendances PHP avec Composer :
composer install
remarque

Ajoutez les options '--no-dev --optimize-autoloader' pour la production

  1. Installez les dépendances JavaScript (interface principale) :
npm install
npm audit fix
  1. Personnalisez les ressources AdminLTE :
cd resources/vendor/admin-lte
npm install
npm audit fix
npm run production
cd ../../..
  1. Compilez les ressources de l'interface principale (CSS/JS) :
npm run dev
remarque

Utilisez 'npm run production' pour la production

  1. Créez le lien symbolique vers le dossier storage :
php artisan storage:link
  1. Exécutez les migrations et les seeders de la base de données :
php artisan migrate:fresh --seed

En production, vous pouvez également exécuter les migrations et les seeders manuellement :

php artisan migrate --force
php artisan db:seed --class=RolesTableSeeder --force
php artisan db:seed --class=PermissionsTableSeeder --force
php artisan db:seed --class=RoleHasPermissionsTableSeeder --force

Étape 6 : Créer un compte administrateur depuis iTop

Pour initialiser le portail, vous pouvez créer automatiquement un compte administrateur local basé sur un contact iTop existant.

Cela se fait à l'aide de la commande Artisan suivante :

php artisan itop:setup-admin --instance=0

Remplacez --instance=0 par l'instance iTop appropriée si vous avez configuré plusieurs instances dans votre fichier .env.

Vous serez invité à entrer l'adresse e-mail du contact administrateur tel que défini dans iTop. Si le contact est trouvé, un compte utilisateur local sera créé sur le portail, et vous serez invité à définir un mot de passe.

L'utilisateur se verra automatiquement attribuer le rôle Administrateur et aura accès à la plateforme.

Note : Si votre instance iTop utilise un certificat SSL auto-signé, assurez-vous que votre système ou proxy ne bloque pas la connexion.