Cyprien Pouzenc : Installation de la plate-forme sociale Movim
lundi 9 novembre 2015 à 11:12Puisque 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 !
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.
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.
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é.
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.
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é !
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.
Original post of Cyprien Pouzenc.Votez pour ce billet sur Planet Libre.
Articles similaires
- Cyprien Pouzenc : Installation de la plate-forme sociale Jappix (02/10/2013)
- Cyprien Pouzenc : Installation du serveur XMPP Metronome (19/09/2013)
- Cyprien Pouzenc : Installation du serveur VPN OpenVPN (01/10/2013)
- Cyprien Pouzenc : Installation de Bashmount (05/12/2013)
- Cyprien Pouzenc : Bashburn, la gravure en ligne de commande (13/12/2013)