Skip to content
Snippets Groups Projects

Picablog

Ce dossier contient les fichiers nécessaires pour lancer une instance de Plume sur les serveurs de Picasoft.

Nous nous basons sur l'image officielle car le Dockerfile est bien écrit et léger.

En plus, nous ajoutons :

  • Un système d'initialisation directement dans l'image (plutôt que d'avoir à lancer des commandes manuellement)
  • La détection de la mise à jour de l'image pour lancer les migrations
  • Un entrypoint permettant d'attendre que le serveur de base de données soit prêt
  • Des variables d'environnement qui ne devraient pas changer directement dans le Dockerfile
  • Un HEALTHCHECK

Mise à jour

Mettre à jour VERSION et PLUME_VERSION dans le Dockerfile et ajuster le tag de l'image construite dans le docker-compose.yml

Vérifier que les vulnérabilités de clair-whitelist.yml n'ont toujours pas de contre-mesures, sinon appliquez les contre mesures (une mise à jour peut tout à faire résoudre le problème, dans ce cas pensez à enlever les vulnérabilités).

Configuration et lancement

Copier le fichier plume.secrets.example dans plume.secrets et plume_db.secrets.example dans plume_db.secrets et remplacez les valeurs par des mots de passe de production.

Lancer :

docker-compose up -d

Si vous lancez le blog pour la première fois, effectuez cette opération manuellement après l'initialisation :

$ docker-compose exec blog-db bash
root@...# psql -U plume
plume=# ALTER TABLE timeline ADD CONSTRAINT unique_post_id UNIQUE(post_id);
plume=# \q
root@...# exit

Cette opération est un dirty fix pour un problème existant dans Plume : dès qu'un article de blog est édité, liké, etc, il apparaît en double, voire en triple dans le flux. C'est assez bloquant au niveau des affichages, comme on peut le voir au niveau de fediverse.blog, où les articles sont massivement duppliqués.

En revanche, ce dirty fix a des conséquences mineures, comme le fait de rediriger vers une page 404 lorsqu'on like un post, sans pour autant casser la fonctionnalité. On considère que c'est "moins grave".

Ce dirty fix pourra être supprimé dès lors que cette issue sera résolue : on pourra exécuter les mêmes instructions, et remplacer l'instruction SQL par :

ALTER TABLE timeline DROP CONSTRAINT unique_post_id;

Administration de l'instance

docker exec -it plume

Puis utilisation de l'outil plm, par exemple pour créer de nouveaux utilisateurs sur une instance privée.

Évolution de l'image

On pourra vérifier les variables configurables dans Plume sur le fichier d'exemple officiel (à adapter à la version courante).

Pour créer une deuxième instance, il suffira de rajouter un deuxième plm instance new dans le fichier entrypoint.sh et d'ajouter un Host Traefik dans le Docker Compose. Ainsi, on pourrait avoir une instance privée, où seul le compte Picasoft publie (--private), et une instance publique, pour tout le monde.

Documentation générale

Vous pouvez trouver la documentation officielle ici : https://docs.joinplu.me/