PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Cyprien Pouzenc : Installation de la plate-forme sociale Movim

lundi 9 novembre 2015 à 11:12

Logo de Movim

Puisque l'avalanche de commentaires en réaction à mon tutoriel sur l'installation de Jappix me pousse à le faire, voici son tant attendu équivalent relatif à Movim. Oui, je suis ainsi fait. Mais rassurons-nous, seuls les plus puissants lobbys d'utilisateurs peuvent ainsi influer sur mes décisions.

Petit rappel des épisodes précédents. XMPP est un ensemble de protocoles de communication standards et ouverts. On peut en savoir plus en lisant mon article concernant l'installation du serveur XMPP Metronome. Lorsqu'on dispose d'un compte XMPP sur un tel serveur, il est possible de communiquer avec toute personne disposant elle-même d'un accès à ce protocole. Pour cela, on va utiliser un logiciel dit client qui va exploiter les services offerts par le serveur. Il existe des interfaces de bureau tels Gajim ou Empathy, des clients Android tels Xabber, des clients en ligne de commande tels Profanity ou MCabber et des clients web tels Jappix... et Movim. Il existe même un ambitieux projet nommé Salut à Toi qui vise à proposer l'ensemble de ces interfaces !

Logo de Movim
Logo de Movim

Movim est un logiciel libre permettant d'exploiter les fonctionnalités offertes par XMPP directement depuis son navigateur web. Par conséquent, notre réseau social est accessible partout, quel que soit le terminal client utilisé. Il est important de bien comprendre le mécanisme. Toutes les informations relatives à XMPP sont gérées par le serveur XMPP. La liste des contacts, les messages publiés, les salons de discussion ou tout autre type de données sont détenues par le serveur XMPP. Quel que soit le client utilisé, on accède aux mêmes informations. On peut donc utiliser plusieurs clients, qui verront automatiquement leur contenu synchronisé !

Si l'instance de Movim le permet, il est possible de s'y connecter avec n'importe quel compte XMPP. De fait, si l'on dispose déjà d'un compte XMPP, on peut d'ors-et-déjà profiter de Movim sur tout pod ouvert au public !

Cet article présente l'installation de la version en développement de Movim sur une distribution Debian GNU/Linux. Contrairement à Jappix, il n'est pas possible de l'installer sur n'importe quel espace d'hébergement web. En effet, Movim nécessite l'exécution d'un démon pour fonctionner ; ce programme doit donc être installé sur un serveur dédié ou une machine virtuelle. Un serveur web et un gestionnaire de bases de données fonctionnels sont également nécessaires. L'objet de l'article n'est pas de décrire une telle installation ; nous n'entrerons donc pas dans les détails y afférent.

Movim est en développement actif. La version testée ici — la 0.9 — n'est pas encore publiée. Il est donc possible que la version officielle à venir diffère quelque-peu de ce qui est présenté.

Informations techniques

Nom du programme : Movim
Version utilisée : 0.9 (en développement)
Licence : GNU AGPL v3
Développeur principal : Timothée Jaussoin
Localisation : France
Site web : www.movim.eu

Serveur XMPP utilisé : Metronome
Distribution utilisée : Debian GNU/Linux 8.2 « Jessie »

Article Wikipédia (en anglais) : https://en.wikipedia.org/wiki/Movim
XMPP (article Wikipédia) : https://fr.wikipedia.org/wiki/XMPP

Préalable à l'installation

En ce qui me concerne, l'installation va s'opérer sur un serveur web Apache et une base de données MySQL préalablement installés. Un hôte virtuel et une base de données spécifiques ont été créés pour l'occasion.

Installation de Movim

À terme, Movim devrait proposer un dépôt Debian complet et fonctionnel pour en faciliter le déploiement. Pour l'heure, cet article décrit l'installation de la version de développement. La tâche consiste d'abord à installer les dépendances nécessaires avant de s'occuper du programme en lui-même. Les étapes à suivre sont énoncées ci-dessous.

Se connecter en tant que super-utilisateur :

su -

Installer les dépendances :

aptitude install php5 php5-curl php5-gd php5-imagick php5-mysqlnd git curl

Se déplacer à la racine du serveur web :

cd /var/www

Cloner le dépôt git :

git clone https://github.com/edhelas/movim.git

Attribuer le répertoire créé à l'utilisateur www-data :

chown www-data: movim

S'y déplacer :

cd movim

Movim utilise le programme Composer pour gérer les dépendances PHP. Il faut commencer par l'installer dans le répertoire courant :

curl -sS https://getcomposer.org/installer | php

Puis installer localement les dépendances nécessaires :

php composer.phar install

Copier le fichier de configuration :

cp config/db.example.inc.php config/db.inc.php

L'éditer et changer les paramètres de connexion à la base de données avec les informations adéquates :

vim config/db.inc.php

Pour communiquer avec le navigateur de l'utilisateur, Movim n'utilise plus de service BOSH comme intermédiaire (comme c'était le cas pour les anciennes versions et comme c'est toujours le cas pour Jappix). Les performances et les fonctionnalités étant jugées déplorables, le choix s'est porté sur l'usage de WebSocket. Le navigateur de l'utilisateur peut ainsi directement communiquer avec Movim, en passant par le proxy WebSocket du serveur web. Pour cela, il faut d'abord activer le module Apache correspondant :

a2enmod proxy_wstunnel

Puis ajouter la ligne suivante à l'hôte virtuel :

ProxyPass /ws/ ws://localhost:8080/

Enfin, il faut redémarrer le serveur web :

systemctl restart apache2.service

Movim utilise un démon pour maintenir la communication WebSocket. Il est possible de le lancer manuellement mais nous préférons créer un service systemd afin d'en faciliter la gestion. Créer le nouveau service :

vim /etc/systemd/system/movim.service

Et y coller ceci :

[Unit]
Description=Movim daemon
After=apache2.service network.target local-fs.target mysql.service

[Service]
User=www-data
Type=simple
ExecStart=/usr/bin/php daemon.php https://movim.EXAMPLE.COM/ 8080
WorkingDirectory=/var/www/movim/
StandardOutput=syslog
SyslogIdentifier=movim
PIDFile=/run/movim.pid

[Install]
WantedBy=multi-user.target

Activer le service au démarrage :

systemctl enable movim.service

Lancer une première fois le service pour créer les répertoires d'usage :

systemctl start movim.service

Mettre la base de données à jour :

php mud.php db set

Enfin, relancer le service :

systemctl restart movim.service

Mise à jour de Movim

Pour mettre à jour Movim, il faut commencer par synchroniser le répertoire d'installation avec le dépôt git :

git pull

Mettre à jour les dépendances PHP :

php composer.phar update

Puis relancer le service :

systemctl restart movim.service

Il est parfois nécessaire de mettre à jour la base de données, comme indiqué dans les journaux ou sur la page correspondante de l'interface de Movim :

php mud.php db set

Et voilà ! Movim est installé et prêt à être utilisé. Voyons cela.

Configuration de Movim

Pour se connecter à l'interface de configuration, il faut rejoindre https://movim.EXAMPLE.COM/?admin. Par défaut, l'identifiant est admin et le mot de passe password.

La première page présente un aperçu de l'installation sous forme graphique. La deuxième présente les paramètres généraux, où il est possible de changer la langue par défaut, le niveau de détails des journaux, le fuseau horaire, la liste des serveurs XMPP dont les comptes utilisateurs sont autorisés à se connecter à l'instance de Movim installée, un potentiel message d'information, ainsi que l'identifiant et le mot de passe d'administration. La troisième page présente un résumé du statut de la base de données, et la quatrième les statistiques d'abonnement à l'instance. La dernière page propose d'activer l'API qui permet de faire connaître son instance au reste du réseau et d'être listé aux cotés des autres pods.

Aperçu de l'installation
Aperçu de l'installation
Paramètres de configuration
Paramètres de configuration

Utilisation de Movim

Pour se connecter à Movim avec son compte XMPP, il suffit de rejoindre https://movim.EXAMPLE.COM.

La page d'accueil est un sorte de tableau de bord de toute l'activité récente. Sur la gauche, la barre d'icônes se déplie au survol de la souris et permet d'accéder aux pages actualité, contacts, groupes, et discussions, ainsi que de changer son statut et de configurer son profil XMPP.

Page de connexion
Page de connexion
Menu latéral
Menu latéral

La page d'actualité centralise toutes les récentes publications de nos contacts et des groupes auxquels nous sommes abonnés et permet d'en écrire de nouvelles ou de poster un commentaire. À la rédaction d'un nouveau billet, on peut décider de le rendre public. Si tel est le cas, cet article alimente automatiquement une page spéciale correspondant au blog de l'auteur et accessible à tous ; lequel blog dispose par ailleurs d'un flux Atom associé.

Nouveau billet
Nouveau billet
Blog d'un contact
Blog d'un contact

La page des contacts permet de les lister, d'en ajouter ou d'entamer une nouvelle discussion. La page des discussions regroupe les échanges en cours, permet d'en entamer de nouveaux ou de participer à un salon de discussion, voire d'en créer un nouveau et de l'administrer.

Profil d'un contact
Profil d'un contact
Discussion en cours
Discussion en cours

La page des groupes permet de lister ceux du serveur de groupes choisi et d'en lire les publications. Il est ici possible de s'abonner à un groupe afin de recevoir les nouvelles publications directement dans son fil d'actualités. Si le groupe le permet, il est possible d'y rédiger une nouvelle publication. Il est aussi possible de créer un nouveau groupe et d'en administrer les droits. Cette notion de groupe est très particulière et vraiment intéressante. Actuellement, la notion d'étiquette n'existe pas dans XMPP. Il n'est ainsi pas possible de trouver de nouveaux contenus par ce moyen. Grâce aux groupes, il est possible de trouver des contenus à suivre ou de nouveaux contacts, voire de créer un nouveau point de rassemblement autour d'un sujet donné !

Ajouter un serveur de groupes
Ajouter un serveur de groupes
Lecture d'un groupe
Lecture d'un groupe

Utilisant Material Design, l'interface est simple, claire et plaisante. Responsive design, elle s'adapte à toute taille d'écran.

Movim est un beau projet, qui donne envie d'utiliser XMPP plus souvent !

Article sous licence Creative Commons BY-SA 3.0 France.

Gravatar de Cyprien Pouzenc
Original post of Cyprien Pouzenc.Votez pour ce billet sur Planet Libre.

Articles similaires