====== Movim ======
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 [[si:ejabberd]].
===== Maintenance =====
==== Logs utiles ====
journalctl -f -u movim
journalctl -f -u php7.3-fpm
tail -f /var/log/apache2/movim.access.log
==== Relancer Movim ====
systemctl restart movim
==== Données à sauvegarder ====
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//.
==== Mettre à jour ====
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 [[https://github.com/movim/movim/wiki/Install-Movim#update|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
===== Installation =====
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).//
==== Pré-requis APT ====
apt install apache2 php-fpm php-pgsql \
php-curl php-gd php-mbstring php-xml \
composer php-symfony
==== Créer un utilisateur système dédié ====
useradd --system -d /var/www/movim/ --create-home --shell /bin/nologin movim
==== Préparer une base de données ====
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
==== Déployer le code de 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
==== (Ré)initialiser le compte admin Movim ====
sudo -u movim php daemon.php config --username=admin --password=v3rys3cr3t
Ce compte admin permet alors de faire quelques réglages sur la [[https://movim.parinux.org/?admin|page d'admin Movim]].
==== Créer un service systemd ====
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
==== Configurer apache et php-fpm ====
Créer le fichier ///etc/apache2/sites-available/movim.conf// :
ServerName movim.parinux.org
DocumentRoot /var/www/movim/public_html
ProxyPreserveHost On
SetHandler "proxy:unix:/run/php/movim.sock|fcgi://localhost/"
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
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