Wekan : un tableau kanban auto-hébergé pour une petite équipe
Installer Wekan par paquet snap, le publier en HTTPS, le brancher sur l'annuaire et le serveur de messagerie, puis sauvegarder sa base. Avec les réglages à ne pas recopier tels quels des tutoriels.
Un tableau kanban, c’est trois colonnes et des étiquettes qu’on déplace. Rien qui justifie un projet, une licence par utilisateur et un transfert de données chez un éditeur. Sauf que le jour où le bureau d’études commence à suivre ses affaires en cours sur un tableau public créé avec une adresse personnelle, la question n’est plus « est-ce que c’est utile » mais « où sont ces données ».
Wekan répond à ce besoin précis : un tableau partagé, des cartes, des échéances, des commentaires, hébergé chez vous. Il s’installe par paquet snap en deux commandes, ce qui est à la fois sa grande qualité et l’origine de la moitié des surprises. Voici l’installation, et surtout les réglages que je ne recopierais pas tels quels d’un tutoriel.
Ce que Wekan fait bien, et ce qu’il ne fait pas
Section intitulée « Ce que Wekan fait bien, et ce qu’il ne fait pas »Wekan est un tableau, pas un outil de gestion de projet. Pas de diagramme de Gantt sérieux, pas de plan de charge, pas de gestion de portefeuille. Si vous cherchez à suivre des demandes utilisateurs avec des délais contractuels, c’est un helpdesk qu’il vous faut, pas un kanban : voir mettre en place un helpdesk GLPI.
En revanche, pour une équipe de cinq à quinze personnes qui veut voir d’un coup d’œil qui fait quoi cette semaine, c’est exactement le bon outil, et son principal mérite est de ne pas décourager les gens au premier écran.
Prérequis
Section intitulée « Prérequis »- Une machine Linux avec le gestionnaire de paquets
snapdisponible, 2 Go de RAM. - Un nom DNS public ou interne, selon l’exposition voulue.
- Un certificat TLS, ou un reverse proxy déjà en place devant vos services.
Installer
Section intitulée « Installer »sudo apt install snapdsudo snap install wekanL’installation embarque tout, y compris la base MongoDB. C’est pratique, et c’est aussi pour cela qu’on oublie qu’il y a une base à sauvegarder : elle n’apparaît nulle part dans vos inventaires.
Déclarer l’URL publique, puis seulement après le reste
Section intitulée « Déclarer l’URL publique, puis seulement après le reste »root-url est le réglage le plus important du produit. C’est lui que Wekan met dans les liens des courriels de
notification et dans les redirections d’authentification. S’il est faux, l’application s’affiche parfaitement et
tout ce qui sort d’elle pointe au mauvais endroit.
sudo snap set wekan root-url='http://kanban.example.com'sudo snap set wekan port='80'sudo systemctl restart snap.wekan.wekanTestez l’accès, créez un compte, déplacez une carte. Ensuite seulement, passez au chiffrement — et n’oubliez pas
de remettre root-url en https:// à ce moment-là. Une URL restée en http:// derrière un service publié en
HTTPS donne des liens cassés dans les notifications, et personne ne fait le rapprochement.
Publier en HTTPS
Section intitulée « Publier en HTTPS »Deux chemins possibles.
Si vous avez déjà un reverse proxy devant vos services, gardez-le. Laissez Wekan écouter en local sur un port haut et publiez-le comme le reste de vos applications ; c’est un service web comme un autre, à ceci près qu’il utilise des WebSockets et que votre configuration de proxy doit relayer les en-têtes de mise à niveau de connexion.
Sinon, le snap embarque un serveur Caddy qui peut terminer le TLS. Il attend un fichier PEM contenant la clé privée suivie du certificat et de sa chaîne, déposé dans un dossier dédié :
-----BEGIN PRIVATE KEY-----…-----END PRIVATE KEY----------BEGIN CERTIFICATE-----…-----END CERTIFICATE-----sudo mkdir -p /var/snap/wekan/common/certssudo chmod 600 /var/snap/wekan/common/certs/kanban.example.com.pemsudo snap set wekan caddy-enabled='true'sudo snap set wekan port='3001'sudo snap set wekan root-url='https://kanban.example.com'sudo systemctl restart snap.wekan.wekanEnvoyer les notifications
Section intitulée « Envoyer les notifications »Sans serveur de messagerie déclaré, aucune invitation ni notification ne part, et les utilisateurs concluent que l’outil ne marche pas.
sudo snap set wekan mail-url='smtp://compte-service:mot-de-passe@smtp.example.com:587'sudo snap set wekan mail-from='Tableaux <kanban@example.com>'Brancher l’annuaire
Section intitulée « Brancher l’annuaire »Faire créer des comptes locaux dans chaque application est le meilleur moyen de laisser traîner les accès des partants. Wekan sait interroger un annuaire LDAP.
sudo snap set wekan ldap-enable='true'sudo snap set wekan default-authentication-method='ldap'sudo snap set wekan ldap-host='ldap.example.com'sudo snap set wekan ldap-port='636'sudo snap set wekan ldap-encryption='ssl'sudo snap set wekan ldap-basedn='dc=example,dc=com'sudo snap set wekan ldap-authentication='true'sudo snap set wekan ldap-authentication-userdn='cn=svc-lecture-ldap,ou=services,dc=example,dc=com'sudo snap set wekan ldap-authentication-password='<mot de passe du compte de service>'sudo snap set wekan ldap-username-field='sAMAccountName'sudo snap set wekan ldap-email-field='mail'sudo snap set wekan ldap-fullname-field='cn'sudo snap set wekan ldap-merge-existing-users='true'Trois remarques valent tous les tutoriels.
Le compte de service utilisé pour interroger l’annuaire doit être en lecture seule et dédié à cet usage. Surtout pas un compte d’administration du domaine, comme on en voit dans beaucoup d’exemples recopiés.
ldap-encryption et ldap-reject-unauthorized vont ensemble. En clair sur le port 389, avec la vérification du
certificat désactivée, vous faites transiter les mots de passe de vos utilisateurs sur le réseau sans
protection. Utilisez LDAPS sur 636 avec un certificat que la machine sait valider. Si votre autorité est
interne, faites-la reconnaître par le système :
faire confiance à une CA interne et valider LDAPS.
Enfin, gardez une porte de secours. Basculer ldap-login-fallback à false interdit toute connexion locale :
le jour où l’annuaire est injoignable, personne n’entre, pas même vous. Conservez au moins un compte
d’administration local, avec un mot de passe long rangé dans le coffre.
Sauvegarder, restaurer, et survivre aux mises à jour
Section intitulée « Sauvegarder, restaurer, et survivre aux mises à jour »Le snap fournit ses propres commandes de sauvegarde et de restauration de la base. Elles doivent tourner dans une tâche planifiée, et le résultat doit partir ailleurs que sur la machine elle-même.
sudo mkdir -p /var/snap/wekan/common/db-backupssudo wekan.database-backupsudo snap stop wekan.wekansudo wekan.database-restore /var/snap/wekan/common/db-backups/<fichier>.backupsudo snap start wekan.wekansudo snap set core refresh.schedule=02:00-04:00sudo snap refresh wekan # mise à jour manuellesudo snap logs wekan # derniers journauxsudo snap get wekan # tous les paramètres définissnap get wekan est la commande à dégainer devant un comportement bizarre : elle affiche l’intégralité des
réglages en vigueur, et met généralement le doigt sur le root-url resté en http:// ou le paramètre LDAP
saisi avec une faute de frappe.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Le tableau ne remplace pas le suivi des demandes : mettre en place un helpdesk GLPI.
- Pour choisir la bonne méthode d’authentification selon l’application : SSO pour une appli maison : LDAP, OIDC ou SAML.
- Savoir avant les utilisateurs que le service est tombé : surveiller ses services avec Uptime Kuma.