Outils pour utilisateurs

Outils du site


software:applications:xbrowsersync:installation-serveur

Installation du service xBrowserSync

Environnement

Système Debian GNU/Linux 13 (trixie)
Noyau Linux 6.12.107+deb13-amd64
Architecture x86-64
version xBrowserSync 1.1.13
Date 10/2026

Procédure

:TODO_DOCUPDATE:

Invoquer mongosh, puis les commandes suivantes depuis le prompt :

use admin
db.createUser({ user: "xbrowsersyncdb", pwd: "MyPasswordHere", roles: [ { role: "readWrite", db: "xbrowsersync" }, { role: "readWrite", db: "xbrowsersynctest" } ] })
use xbrowsersync
db.newsynclogs.createIndex( { "expiresAt": 1 }, { expireAfterSeconds: 0 } )
db.newsynclogs.createIndex({ "ipAddress": 1 })
quit

Installer les paquets suivants :

apt install -y git

Créer un utilisateur standard xbro

adduser --comment "Run xBrowserSync service" xbro
 
install -o xbro -g xbro -m 750 -d /srv/xbrowsersync
 
su - xbro
cd /srv/xbrowsersync/
umask 0077
git clone https://github.com/xbrowsersync/api.git

La version xBrowserSync 1.1.13 compile correctement avec Node.js 15

# Télécharger et installer nvm :
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash
 
# au lieu de redémarrer le shell
\. "$HOME/.nvm/nvm.sh"
 
# Télécharger et installer Node.js 15 :
nvm install 15

Pour Vérifiez la version de Node.js :

node -v # Doit afficher "v15.14.0".
 
npm -v # Doit afficher "7.7.6".

Si plusieurs versions de Node.js coexistent dans l'environnement, on définit la v15 par défaut via la commande :

nvm install 15
nvm alias default v15.14.0
cd api
npm install

Les dépendances nécessaire au programme sont installées dans le dossier ./node_modules

Vérifier l'installation des dépendances :

npm list

Créer le dossier d'enregistrement des logs :

# en root
install -o xbro -g root -m 750 -d /var/log/xBrowserSync

Pour tester l'application :

node dist/api.js

Arrêter l'exécution avec Ctrl + C. Le fichier de trace /var/log/xBrowserSync/api.log a été créé avec un contenu de la forme :

{"name":"xBrowserSync_api","hostname":"xbrowsersync","pid":2052,"level":30,"msg":"Service started at http://127.0.0.1:8080/","time":"2026-10-10T08:24:58.553Z","v":0}
{"name":"xBrowserSync_api","hostname":"xbrowsersync","pid":2052,"level":30,"req":null,"msg":"Process terminated by SIGINT","time":"2026-10-10T08:25:16.809Z","v":0}
{"name":"xBrowserSync_api","hostname":"xbrowsersync","pid":2052,"level":30,"msg":"Service shutting down","time":"2026-10-10T08:25:16.809Z","v":0}

Ici on peut voir que l'application s'exécute par défaut sur la boucle locale et utilise le port 8080.

A ce stade l'application fonctionne mais pour la rendre accessible il nous faut encore :

  • Créer un fichier unité systemd de type service pour l'exécuter comme daemon système ;
  • Installer un reverse proxy écoutant sur les ports standards HTTP ou HTTPS et redirigeant le trafic entrant vers l'application.

Création du service systemd

touch /etc/systemd/system/xbrowsersync.service

Ci-dessous le contenu du fichier unité /etc/systemd/system/xbrowsersync.service

xbrowsersync.service
[Unit]
Description=API de synchronisation des favoris xBrowserSync
#Before=
After=mongod.service
ConditionPathExists=/srv/xbrowsersync/api
#ConditionFileIsExecutable=
 
[Service]
#Environment=
Type=simple 
User=xbro
Group=xbro
WorkingDirectory=/srv/xbrowsersync/api
#ExecStartPre=
ExecStart=node dist/api.js
#ExecStop=
KillSignal=SIGINT
#ExecStopPost=
#RemainAfterExit=
Restart=on-failure
RestartSec=30
 
[Install]
WantedBy=multi-user.target

Activer le nouveau service :

systemctl --system daemon-reload
systemctl enable --now xbrowsersync.service
systemctl status xbrowsersync.service

On peut tester un redémarrage et vérifier que le service s'exécute bien :

systemclt reboot
 
# Après redémarrage et reconnexion en root
systemctl status xbrowsersync.service

Reverse-proxy via Nginx

Références

software/applications/xbrowsersync/installation-serveur.txt · Dernière modification : 2026/10/10 10:44 de yoann