si:movim

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
si:movim [2019/02/12 19:24] – [Movim] pitchumsi:movim [2019/02/12 20:50] (Version actuelle) – [(Ré)initialiser le compte admin Movim] pitchum
Ligne 1: Ligne 1:
 +====== 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 ====
 +
 +<code bash>journalctl -f -u movim</code>
 +
 +<code bash>journalctl -f -u php7.3-fpm</code>
 +
 +<code bash>tail -f /var/log/apache2/movim.access.log</code>
 +
 +==== Relancer Movim ====
 +
 +<code bash>systemctl restart movim</code>
 +
 +==== 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.
 +
 +<code bash>
 +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
 +</code>
 +===== 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 ====
 +
 +<code bash>apt install apache2 php-fpm php-pgsql \
 + php-curl php-gd php-mbstring php-xml \
 + composer php-symfony
 +</code>
 +
 +==== Créer un utilisateur système dédié ====
 +
 +<code bash>useradd --system -d /var/www/movim/ --create-home --shell /bin/nologin movim</code>
 +
 +==== Préparer une base de données ====
 +
 +Installer postgresql si besoin :
 +
 +<code bash>apt install postgresql</code>
 +
 +Puis créer un utilisateur et une base dédiés à Movim.
 +
 +<code bash>
 +sudo -u postgres createuser --pwprompt movim
 +sudo -u postgres createdb -O movim movim
 +</code>
 +==== Déployer le code de Movim ====
 +
 +<code bash>
 +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
 +</code>
 +
 +==== (Ré)initialiser le compte admin Movim ====
 +
 +<code bash>sudo -u movim php daemon.php config --username=admin --password=v3rys3cr3t</code>
 +
 +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// :
 +
 +<file /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
 +</file>
 +
 +On prévient systemd qu'il y a du nouveau :
 +
 +<code bash>systemctl daemon-reload</code>
 +
 +On lance movim une première en vérifiant son status avant et après parce qu'on aime bien ça :
 +
 +<code bash>
 +systemctl status movim
 +systemctl start movim
 +systemctl status movim
 +</code>
 +
 +==== Configurer apache et php-fpm ====
 +
 +Créer le fichier ///etc/apache2/sites-available/movim.conf// :
 +
 +<file /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>
 +</file>
 +
 +Activer cette config :
 +
 +<code bash>a2ensite movim.conf</code>
 +
 +Activer quelques modules apache :
 +
 +<code bash>a2enmod proxy_wstunnel fcgi</code>
 +
 +Créer le fichier ///etc/php/7.3/fpm/pool.d/movim.conf// :
 +
 +<file /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
 +</file>
 +
 +Et relancer php-fpm :
 +
 +<code bash>systemctl restart php7.3-fpm</code>
 +
 +Et vérifier que le fichier ///run/php/movim.sock// est bien présent et appartient à www-data:www-data.
 +
 +Relancer apache :
 +
 +<code bash>systemctl restart apache2</code>