Jami sur serveur

Bonjour,
Pour les besoins d’une association, je viens de créer un groupe pour certains membres. Tout fonctionne bien et chacun peut communiquer avec les autres.

Mais je constate que ce serait mieux si le compte Jami qui a initié le groupe, c’est à dire le mien, était toujours en ligne.

Comme je dispose d’un serveur pour Nextcloud et d’autres services, est-il possible de mettre mon compte Jami sur ce serveur pour faciliter l’échange des messages ?

2 Likes

Bonjour, oui c’est possible. Il faut commencer par installer le daemon jami sur votre serveur (pas besoin d’installer le client Jami au complet surtout si votre serveur n’a pas d’interface graphique).

Pour cela, suivez les instructions d’installation pour la distribution GNU/Linux de votre serveur Download Jami for GNU/Linux

mais au lieu de faire (exemple avec Ubuntu / Debian)

apt-get install jami

il faut faire

apt-get install jami-daemon dbus-x11

C’est préférable de créer un utilisateur pour exécuter Jami sur votre serveur plutôt que l’exécuter en tant que root. Dans notre exemple, nous utiliserons l’utilisateur jamiserver (ajouté au préalable avec la commande useradd -s /bin/bash -m jamiserver)

Ensuite, il faut copier la configuration de Jami. Si vous avez déjà Jami sur votre ordinateur configuré avec votre compte (dans cet exemple cet ordinateur fonctionne sous GNU/Linux), il faut copier ces répertoires .local/share/jami et .config/jami vers le serveur. Les commandes ci-dessous doivent se faire depuis le répertoire personnel de votre utilisateur. Bien sûr, votre serveur doit être accessible par ssh depuis cet ordinateur où Jami est déjà installé et l’utilisateur jamiserver sur le serveur doit avoir un mot de passe (ou alors la clé ssh publique de votre utilisateur sur votre ordinateur déjà configuré).

cd
rsync -av .local/share/jami jamiserver@NOM_OU_ADR_IP_DU_SERVEUR:~/.local/share/
rsync -av .config/jami jamiserver@NOM_OU_ADR_IP_DU_SERVEUR:~/.config/

Sur le serveur, connctez-vous en tant que jamiserver et assurez vous que les répertoires ont été bien copiés

cd
ls -a .local/share/jami
ls -a .config/jami

Attention ces répertoires sur le serveur doivent être la propriété de l’utilisateur jamiserver et non pas de root.

À présent il faut créer un script de lancement de Jami sur le serveur en utilisant le daemon jami (jamid) et dbus. Pour cela, nous allons créer (en tant que root) le fichier /usr/local/bin/launchjami et y ajouter ce contenu:

#!/bin/bash
dbus-launch --auto-syntax|grep DBUS_SESSION_BUS_ADDRESS >/tmp/env-jamiserver
source /tmp/env-jamiserver
/usr/libexec/jamid

Note: /usr/libexec/jamid provient du paquet jami-daemon installé au début.

Assurez-vous de rendre ce script exécutable avec
chmod +x /usr/local/bin/launchjami

Pour démarrer Jami sur le serveur en tant que service il faut créer un fichier une unité systemd qu’on appellera jamiserver et qui utilisera le script qu’on vient de créer. Pour cela il faut créer le fichier /etc/systemd/system/jamiserver.service en tant que root et y ajouter cette configuration:

[Unit]
Description=Daemon Jami pour mon projet
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/launchjami
ExecStop=/usr/bin/pkill -u jamiserver jamid
User=jamiserver
Group=jamiserver

[Install]
WantedBy=default.target

recharcher la configuration systemd avec
systemctl daemon-reload

puis démarrez le service avec
systemctl start jamiserver.service

S’il faut que Jami se lance automatiquement au démarrage du serveur il faut l’activer au avec
systemctl enable jamiserver.service

Avec la commande

systemctl status jamiserver.service

le service doit avoir le statut d’actif:

# systemctl status jamiserver.service
● jamiserver.service - Daemon Jami pour mon projet
     Loaded: loaded (/etc/systemd/system/jamiserver.service; disabled; preset: enabled)
     Active: active (running) since Fri 2025-03-14 05:29:18 UTC; 17min ago
   Main PID: 982 (launchjami)
      Tasks: 35 (limit: 2260)
     Memory: 65.9M (peak: 70.4M)
        CPU: 24.966s
     CGroup: /system.slice/jamiserver.service
             ├─982 /bin/bash /usr/local/bin/launchjami
             ├─988 /usr/bin/dbus-daemon --syslog --fork --print-pid 4 --print-address 6 --session
             └─989 /usr/libexec/jamid

Si vous effectuez d’autres changements de configuration Jami sur votre ordinateur après l’installation du serveur, il faudra recopier les fichiers de configuration à nouveau vers le serveur (refaire les commandes rsync) et relancer le service.

En espérant que cette explication puisse vous aider dans votre projet.

2 Likes

Merci bien pour ces informations.
Non seulement c’est facile à suivre, mais en plus ça fonctionne comme attendu.

Deux membres d’un même groupe peuvent communiquer entre eux alors que le compte de l’administrateur du groupe n’est pas connecté en interface graphique.

2 Likes

Can this important information please be added to the https://docs.jami.net/ website?

  • If there is a similar question in the future, a link to the solution on the Jami Documentation website can be given.
  • This solution can be translated into other languages on the Jami Documentation website.

Thank you

1 Like

Done at:

Please advise if there are any corrections or improvements required.

Thank you