Movim est une appli Web de microblogging et de discussion, un peu comme Mastodon, Diaspora, … La particularité de Movim c'est d'être basé sur le protocole XMPP.
Chez parinux le serveur XMPP est ejabberd.
journalctl -f -u movim
journalctl -f -u php7.3-fpm
tail -f /var/log/apache2/movim.access.log
systemctl restart movim
Movim ne stocke que très peu de données qui méritent d'être sauvegardées. L'essentiel de données visibles dans Movim sont en réalité publiées sur les serveurs XMPP. La base de données SQL utilisée par Movim sert essentiellement de cache pour éviter de solliciter systématiquement les serveurs XMPP.
Les seules données originales produites par Movim sont les paramètres de configuration qui sont stockés dans la table configuration.
Si une nouvelle version est disponible au téléchargement au format .tar.gz voici la procédure simple et générique pour mettre à jour Movim.
Avant toute chose jeter un œil sur la page officielle au cas où il y aurait une procédure particulière pour cette version.
cd /var/www/movim/upstream curl -JOLs https://github.com/movim/movim/archive/x.xx.x.tar.gz cd .. tar xavf upstream/x.xx.x.tar.gz ln db.inc.php movim-x.xx.x/config/ rm public_html && ln movim-x.xx.x public_html cd public_html sudo -u movim composer install sudo -u movim php vendor/bin/phinx migrate systemctl restart movim
Même s'il existe enfin un paquet Debian pour movim, il est loin d'être parfait et l'installation à l'ancienne se passe bien alors voici comment j'ai fait.
J'ai essayé de faire marcher movim avec MySQL car on avait déjà un serveur MySQL opérationnel que j'aurais aimé utiliser, mais Movim fonctionne vraiment très mal avec MySQL, dès l'installation. Donc j'ai craqué et j'ai installé un postgresql en local (sans chercher à voir si on avait déjà un postgresql quelque part, mais c'est pas grave, si besoin on déplacera la BDD là où il faut).
apt install apache2 php-fpm php-pgsql \
php-curl php-gd php-mbstring php-xml \
composer php-symfony
useradd --system -d /var/www/movim/ --create-home --shell /bin/nologin movim
Installer postgresql si besoin :
apt install postgresql
Puis créer un utilisateur et une base dédiés à Movim.
sudo -u postgres createuser --pwprompt movim sudo -u postgres createdb -O movim movim
cd /var/www/movim mkdir upstream cd upstream curl -JOLs https://github.com/movim/movim/archive/0.14.1.tar.gz cd .. tar xavf upstream/movim-0.14.1.tar.gz ln -s movim-0.14.1 public_html chown -R movim: /var/www/movim/public_html/ cd public_html sudo -u movim composer install cp config/db.example.inc.php config/db.inc.php edit config/db.inc.php sudo -u movim php vendor/bin/phinx migrate
sudo -u movim php daemon.php config --username=admin --password=v3rys3cr3t
Ce compte admin permet alors de faire quelques réglages sur la page d'admin Movim.
Créer le fichier /etc/systemd/system/movim.service :
[Unit] Description=Movim, kick ass social network After=network.target [Service] Type=simple ExecStart=/usr/bin/php daemon.php start --url=https://movim.parinux.org/ --port=8080 --interface=0.0.0.0 User=movim WorkingDirectory=/var/www/movim/public_html StandardOutput=syslog SyslogIdentifier=movim PIDFile=/run/movim.pid [Install] WantedBy=default.target
On prévient systemd qu'il y a du nouveau :
systemctl daemon-reload
On lance movim une première en vérifiant son status avant et après parce qu'on aime bien ça :
systemctl status movim systemctl start movim systemctl status movim
Créer le fichier /etc/apache2/sites-available/movim.conf :
<VirtualHost *:80> ServerName movim.parinux.org DocumentRoot /var/www/movim/public_html ProxyPreserveHost On <LocationMatch .*\.php> SetHandler "proxy:unix:/run/php/movim.sock|fcgi://localhost/" </LocationMatch> ProxyPass /ws/ ws://localhost:8080/ LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy CustomLog /var/log/apache2/movim.access.log proxy ErrorLog /var/log/apache2/movim.error.log </VirtualHost>
Activer cette config :
a2ensite movim.conf
Activer quelques modules apache :
a2enmod proxy_wstunnel fcgi
Créer le fichier /etc/php/7.3/fpm/pool.d/movim.conf :
[movim] user = movim group = movim listen = /run/php/movim.sock listen.owner = www-data listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
Et relancer php-fpm :
systemctl restart php7.3-fpm
Et vérifier que le fichier /run/php/movim.sock est bien présent et appartient à www-data:www-data.
Relancer apache :
systemctl restart apache2