====== 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