-
Quentin Duchemin authoredQuentin Duchemin authored
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/