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

Raphaël Hertzog : Mes activités libres en octobre 2015

lundi 9 novembre 2015 à 11:01

Mon rapport mensuel couvre une grande partie de mes contributions au logiciel libre. Je l’écris pour mes donateurs (merci à eux !) mais aussi pour la communauté Debian au sens large parce que cela peut donner des idées aux nouveaux venus et que c’est également un des moyens les plus effectifs de trouver des volontaires pour travailler sur les projets qui me tiennent à cœur.

Debian LTS

Ce mois-ci ce sont 13,25 heures de travail sur Debian LTS qui ont été subventionnées. Elles ont été consacrées aux tâches suivantes :

J’ai également initié une discussion sur les travaux que les contributeurs rémunérés pouvaient entreprendre s’ils avaient un peu de temps disponible, dans la mesure où le niveau de financement actuel peut nous permettre d’investir un peu de temps sur autre chose que les mises à jour de sécurité.

Cahier de l’Admin Debian

J’ai passé pas mal de temps à la finalisation de la mise à jour du livre pour Jessie, à la fois pour ce qui est du contenu et ce qui concerne la mise en page de la version papier.

Debian Handbook: cover of the jessie edition

Divers travaux Debian

GNOME 3.18. J’ai envoyé une nouvelle version de gnome-shell-timer compatible avec GNOME Shell 3.18, et créé les rapports de bogue n°800660 et n°802480 concernant une ennuyeuse régression de gnome-keyring… J’ai réalisé de nombreux tests avec le mainteneur Debian (Dmitry Shachnev, merci à lui !) et les développeurs amont (cf. ici et ). Mises à part ces régressions, j’aime beaucoup GNOME 3.18 !

Migration de l’équipe python-modules vers Git. Après la migration vers Git, et puisque la politique de l’équipe impose maintenant l’utilisation de git-dpm pour tous ses membres, j’ai fait quelques essais avec ce dernier sur le paquet python-django, alors que je poussais sa version 1.8.5 vers experimental. Et le moins que je puisse dire est que je ne suis pas satisfait du résultat. J’ai rapporté 3 bogues synthétisant les problèmes que j’ai rencontrés avec git-dpm : n°801666 (aucun moyen de définir les noms de branches amont depuis le dépôt), n°801667 (aucun moyen satisfaisant de fusionner différentes branches d’empaquetage) et n°801668 (la création du tag amont n’est pas immédiate lors de l’import du tarball). Ces trois-là ne sont qu’une sélection parmi d’autres bogues ridicules déjà remontés tels que le n°801548 (ne marche pas avec des tags amont pré-existants et parfaitement valides).

Empaquetage Django. J’ai créé des rapports de bogue pour tous les paquets ayant des dépendances de compilation vers python-django qui échouaient à la compilation avec Django 1.8, et j’ai informé les mainteneurs que j’enverrai Django 1.8 vers unstable début novembre (ce qui est déjà fait). J’ai ensuite moi-même corrigé python-django-jsonfield, car le Distro Tracker dépend directement de ce paquet.

A la suite de cette remontée de bogues en masse, j’ai demandé une amélioration du paquet devscripts, et plus précisément du script « mass-bug » (cf. le n°801926). Et puisque j’ai utilisé « ratt » pour recompiler les paquets, j’ai créé une demande d’évolution pour ce nouvel outil également.

Mise à jour vers Tryton 3.6. J’ai mis à jour mon installation de Tryton vers la version 3.6, et créé le rapport de bogue n°803066 pour remonter le mauvais fonctionnement du script d’init SysV. Ce qui m’a rappelé que le processus de nomination au statut de Développeur Debian de Matthias Behrle (le mainteneur du paquet tryton) était à l’arrêt, du fait d’un bogue dans l’infrastructure NM. J’ai donc contacté l’équipe NM et nous avons trouvé un moyen de relancer le processus…

Distro Tracker. J’ai continué mon travail de refactorisation du processus de gestion des emails entrants (branche people/hertzog/mailprocessing). C’est à peu près finalisé et je dois maintenant l’éprouver dans un environnement de test, avant d’être capable de le déployer sur tracker.debian.org.

Cherche traducteur et relecteur pour le livre « Free Culture » de Lawrence Lessig

Ce n’est pas strictement lié à Debian, mais je voulais relayer un appel à l’aide de Benoît Guillon (l’auteur de dblatex qui m’a beaucoup aidé lorsque je travaillais sur la version anglaise du cahier de l’admin Debian) qui s’est lancé dans la traduction française du livre « Free Culture » de Lawrence Lessig.

Il cherche donc des relecteurs et des traducteurs et s’est associé avec Petter Reinholdtsen (un développeur Debian de longue date, qui travaille sur la traduction norvégienne du même livre) pour gérer cette traduction dans son dépôt git.

La traduction est géré sous Transifex:
https://www.transifex.com/pere/free-culture-lessig/

Le livre est sous licence Creative Commons (mais avec une restriction pour l’usage commercial apparemment). Le brouillon actuel est disponible ici.

N’hésitez pas à vous mettre en relation avec Benoît si vous êtes intéressé et/ou si vous voulez plus d’informations.

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in October 2015 contribuée par Weierstrass01.

Aucun commentaire pour le moment | Vous avez aimé ? Cliquez ici. | Ce blog utilise Flattr.

Gravatar de Raphaël Hertzog
Original post of Raphaël Hertzog.Votez pour ce billet sur Planet Libre.

Articles similaires

Remi Collet : Tests de performance de PHPUnit et couverture de code

lundi 9 novembre 2015 à 09:05

Comme il a déjà été dit de nombreuses fois, PHP 7 est plus rapide que PHP 5.

Depuis PHPUnit 4.8 vous pouvez choisir entre  XDebug et phpdbg comme pilote pour récupérer les données de couverture du code, voir PHPUnit 4.8: Code Coverage Support.

Voici quelques résultats de tests de performance.

Tous les tests utilisent PHPUnit 5.0.8, PHP 5.6.15 en SCL ou PHP 7.0.0RC6 en SCL et XDebug 2.4.0beta1 (récemment publié avec quelques correctifs supplémentaires) sur les tests unitaires de composer.

PHP 5 sans couverture de code

$ php56 vendor/bin/phpunit -v
Runtime:       PHP 5.6.15
Time: 4.78 seconds, Memory: 40.25Mb

PHP 7 sans couverture de code

$ php70 vendor/bin/phpunit -v
Runtime:       PHP 7.0.0RC6
Time: 3.37 seconds, Memory: 22.00Mb

Donc PHP 7 est bien plus rapide et permet de gagner 30% de temps d'exécution et 45% de mémoire.

PHP 5 avec couverture de code

$ php56 vendor/bin/phpunit -v
Runtime:       PHP 5.6.15 with Xdebug 2.4.0beta1
Time: 1.89 minutes, Memory: 90.50Mb

PHP 7 avec couverture de code et XDebug

$ php70 vendor/bin/phpunit -v
Runtime:       PHP 7.0.0RC6 with Xdebug 2.4.0beta1
Time: 39.41 seconds, Memory: 52.00Mb

PHP 7 de nouveau vraiment plus rapide (65% de temps, 43% de mémoire)

PHP 7 avec couverture de code et phpdbg

$ php70-phpdbg -qrr vendor/bin/phpunit -v 
Runtime:       PHPDBG 7.0.0RC6
Time: 13.07 seconds, Memory: 92.00Mb

Terriblement plus rapide :) 66% du temps d'exécution économisé comparé à XDebug, et 89% comparé à PHP 5

J'ai remarqué que beaucoup de développeurs n'était pas au courant de cette dernière solution, quel dommage ! J'espère que ce billet vous encouragera à la tester.

 

Gravatar de Remi Collet
Original post of Remi Collet.Votez pour ce billet sur Planet Libre.

Renault : Présence de Borsalinux-fr aux JM2L 2015 à Sophia-Antipolis le 28 novembre

dimanche 8 novembre 2015 à 23:16

Après une année sans édition, les Journées Méditerranéennes du Logiciel Libre reviennent le samedi 28 novembre 2015 à Sophia-Antipolis. Cet évènement majeur local qui se déroule habituellement chaque année change de format. Abandonnant la journée du vendredi dédiée aux élèves de la région, pour se concentrer sur la journée du samedi et l'activité plus communautaire.

Cette édition est toujours animée par l'équipe ensoleillée de Linux-Azur. Elle aura pour thème le Do it Yourself. Cela se déroulera comme d'habitudes avec des conférences liées à la thématique, des ateliers et des stands pour présenter différents projets ou activités. Si vous êtes amateur du Logiciel Libre, simple curieux ou personne désirant assistance, il ne faut pas louper cette occasion.

Pour ma part je serais sur place pour défendre les couleurs de Borsalinux-fr avec un stand afin de présenter Fedora et sa communauté francophone aux visiteurs et assister ceux qui le désirent. Je pourrais fournir des images ISO fraîchement disponibles de Fedora 23 (qui est sorti le 3 novembre dernier), faire une démonstration de certains changements et aussi transformer votre clé USB en média de test et d'installation de Fedora 23.

Je serais également disponible pour toute discussion. Venez nombreux !

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

HacKurx : Matériel pour GNU/Linux

dimanche 8 novembre 2015 à 20:46

RYF

Suite à une demande récente dans commentaire et à l’approche des fêtes de fin d’année (et oui que le temps passe vite…) beaucoup seront tentés de faire des achats numériques. En tant que Linuxien et fervent défenseur des logiciels libres, voici quelques liens pour vous aider à vous décider.

Matériel libre certifier par la FSF:
https://www.fsf.org/resources/hw/endorsement/respects-your-freedom
https://h-node.org/hardware/catalogue/en

Carte mère et PC portable pouvant être exorciser (totalement libéré):
http://www.libreboot.org/docs/hcl/
http://www.coreboot.org/Supported_Motherboards
https://www.fsf.org/resources/hw/systems/

Matériel embarqué (routeur principalement):
https://wiki.openwrt.org/toh/start

Matériel testé sous GNU/Linux:
https://www.debian.org/distrib/pre-installed#fr
https://www.ubuntu-fr.org/revendeurs
http://doc.ubuntu-fr.org/materiel_assembleurs_en_ligne
http://doc.ubuntu-fr.org/ordinateur_vendu_avec_ubuntu
http://www.dell.com/learn/fr/fr/frbsdt1/campaigns/dell-linux-ubuntu-en?c=fr&l=fr&s=bsd
https://wiki.archlinux.org/index.php/HCL/Laptops

Identifier les bons constructeurs:
http://bons-constructeurs-ordinateurs.info/#bons-optionnalite

D’autres liens à me faire connaître? N’hésitez pas à me laisser un commentaire ! ;)


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