Aller au contenu principal

Installation via NPM

Le serveur Sync-in peut être installé via NPM et géré à l’aide d’une interface en ligne de commande (CLI).

Il est conçu pour fonctionner dans des environnements basés sur Linux (Debian, Ubuntu, AlmaLinux, Rocky Linux, macOS, etc.).
⚠️ Les environnements Windows ne sont pas officiellement supportés.

📋 Prérequis

Avant d’installer Sync-in, assurez-vous que votre environnement dispose des éléments suivants :

🟢 Node.js

Version requise : 22 ou supérieure - Installer Node.js : nodejs.org/download

✅ Vérifier la version installée :

node -v

🛢️ MariaDB

Version requise : 11 ou supérieure - Installer MariaDB : mariadb.org/download

✅ Vérifier la version installée :

mariadb --version
info

Le binaire peut varier selon les systèmes : utilisez mysql ou mariadb selon le cas.

Assurez-vous que :

  • Le service MariaDB est démarré
  • Le port 3306 est ouvert si la base est distante
  • Qu'une base de données a été créée manuellement avant le lancement du serveur
Exemple de création de base de données locale avec un utilisateur dédié

Connectez-vous à MariaDB en tant qu'administrateur (ou root) :

mariadb -u root -p

Puis exécutez les commandes suivantes :

CREATE DATABASE sync_in CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'sync_in_user'@'localhost' IDENTIFIED BY 'motdepassefort';

GRANT ALL PRIVILEGES ON sync_in.* TO 'sync_in_user'@'localhost';

FLUSH PRIVILEGES;

🚀 Installation

1. Package NPM

Vous pouvez installer le serveur Sync-in dans un dossier dédié à l’aide de l’option --prefix de NPM.

npm install @sync-in/server --prefix ./sync-in

Cela installera le package server dans le dossier ./sync-in, avec les fichiers suivants :

  • ./sync-in/node_modules/ → dépendances installées
  • ./sync-in/package.json → les métadonnées du package

2. Configuration

Le fichier de configuration du serveur environment.yaml doit être situé dans ce dossier.

Pour en déployer une version minimale directement dans l'environnement, vous pouvez utiliser le CLI sync-in-server :

cd ./sync-in && npx sync-in-server init

ou via l'argument --prefix :

npx --prefix ./sync-in sync-in-server init
astuce

Utilisez l’option --prefix si vous exécutez des commandes CLI depuis un autre répertoire que sync-in (répertoire utilisé ici à titre d’exemple).

Modifiez le fichier ./sync-in/environment.yaml :

auth:
token:
access:
secret: "changeAccessWithStrongSecret"
refresh:
secret: "changeRefreshWithStrongSecret"
mysql:
# Utilisez l'utilisateur et le mot de passe que vous avez défini
url: mysql://root:MySQLRootPassword@mariadb:3306/sync_in
Sécurité

Utilisez des chaînes longues et générées aléatoirement pour vos secrets afin de garantir une sécurité maximale.

info

N’oubliez pas d’ajouter des guillemets si vos mots de passe contiennent des caractères spéciaux.

3. Base de données

Depuis le dossier sync-in, une fois la configuration réalisée, initialisez la base de données :

npx sync-in-server migrate-db

Résultat attendu :

🗄️ Running database migrations...
Load configuration → environment.yaml
✅ Database migrations completed successfully.

4. Création d'un administrateur

npx sync-in-server create-user --role admin --role admin --login "userLogin" --password "userPassword"
astuce

Pour créer un utilisateur sans privilèges administrateur, supprimez l’option --role admin.

Si vous ne définissez pas d'arguments et lancez simplement :

npx sync-in-server create-user

Le serveur utilisera les identifiants administrateur par défaut :

  • Login : sync-in
  • Mot de passe : sync-in
attention

Important : Pour des raisons de sécurité, il est fortement recommandé de modifier ces identifiants dès votre première connexion.

5. Lancement du serveur

Vous pouvez démarrer le serveur de deux façons :

  • En mode attaché (le processus reste lié à votre terminal) :

    npx sync-in-server start
  • En mode détaché (daemon) :

    npx sync-in-server start -d
    info

    En mode daemon, le processus n’est plus attaché à la console utilisateur.
    Les logs sont automatiquement enregistrés dans le fichier logs/server.log.
    L’emplacement du fichier de log peut être modifié via le fichier de configuration environment.yaml.

🖥️ Commandes CLI du serveur

CommandeDescription
npx sync-in-server initCopie le fichier de configuration minimal environment.yaml
npx sync-in-server startDémarre le serveur en mode attaché
npx sync-in-server start -dDémarre le serveur en mode détaché (daemon)
npx sync-in-server stopArrête le serveur
npx sync-in-server statusAffiche le statut du serveur (mode daemon uniquement)
npx sync-in-server versionAffiche la version installée
npx sync-in-server migrate-dbExécute les migrations de base de données
npx sync-in-server updateMet à jour le serveur vers la dernière version disponible
npx sync-in-server create-userCréer un utilisateur ou un administrateur dans la base de données
npx sync-in-server helpAffiche l’aide et la liste des commandes disponibles
info

L’option --prefix peut être ajoutée à chaque commande si vous exécutez npx sync-in-server depuis un répertoire différent de celui où le serveur a été installé.

astuce

npx sync-in-server update exécute également les migrations de base de données automatiquement.