Installation de Wekan avec Docker
Aujourd’hui un billet un peu spécial, après les articles de pub, les articles vides, les articles de correction, j’inaugure les articles ludiques.
Un article ludique c’est un article où je vous laisse vous amuser, patauger, je ne vous tiens pas la main, je ne vous recommande même pas de mettre ça en production ! Je vous laisse des pistes, je vous montre le chemin et je réponds aux demandes d’aide. A la fin vous aurez joué avec des nouveaux concepts et logiciels (à vous de voir si vous voulez les utiliser ensuite) et découvert de nouvelles choses
Savez-vous ce qu’est un tableau kanban ? Un article effleurant le sujet.
Hier Korben a présenté dans un article une application : Wekan (que vous pouvez tester ici). Elle fait partie des alternatives libres et qu’on peut auto-héberger à Trello. On peut citer également l’excellent Kanboard utilisé par Framaboard très simple à installer.
Wekan c’est ça.
Malheureusement le développeur (mquandalle) ultra hype ne propose que peu de manière de l’installer actuellement soit via Sandstorm soit via Docker. On va donc jouer avec Docker aujourd’hui ;p
Je vous invite à lire l’excellent article de Guillaume en Français pour comprendre le principe de Docker. Et pourquoi par ses autres articles de sa série Docker ?
Le petit tuto suivant a été réalisé en root sur une Debian 8 avec Apache installé en suivant le Wiki de Wekan (expliquant l’installation sous Ubuntu).
On commence par l’installation de docker puis docker-compose.
wget -qO- https://get.docker.com/ | sh # Installation de docker curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose # Installation de docker-compose, aptitude install curl si curl n'est pas installé chmod +x /usr/local/bin/docker-compose # On rend docker-compose exécutable
On va créer l’utilisateur wekan et le mettre dans le groupe docker.
useradd -d /home/wekan -m -s /bin/bash wekan # Création de l'utilisateur wekan et de son home usermod -aG docker wekan # On met l'utilisateur wekan dans le groupe docker
On crée le fichier /home/wekan/docker-compose.yml
qui va lancer nos conteneurs.
wekan: image: mquandalle/wekan restart: always links: - wekandb environment: - MONGO_URL=mongodb://wekandb/wekan - ROOT_URL=http://adresseipdemadebianquejaime:8081 ports: - 8081:80 wekandb: image: mongo restart: always volumes: - /home/wekan/data:/data/db
On crée le fichier /etc/apache2/sites-available/wekan.conf
(évidemment si apache2 n’est pas installé aptitude install apache2
).
<VirtualHost *:80> ServerName mytodo.org ServerAdmin webmaster@mytodo.org DocumentRoot /var/www-vhosts/mytodo.org <Directory /> Options FollowSymLinks AllowOverride AuthConfig FileInfo Indexes Options=MultiViews </Directory> <Directory /var/www-vhosts/mytodo.org> Options -Indexes +FollowSymLinks +MultiViews AllowOverride AuthConfig FileInfo Indexes Options=MultiViews Require all granted </Directory> ErrorLog /var/log/apache2/mytodo.org-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/mytodo.org-access.log combined ServerSignature Off ProxyPassMatch "^/(sockjs/.*/websocket)$" "ws://127.0.0.1:8081/$1" ProxyPass "/" "http://127.0.0.1:8081/" ProxyPassReverse "/" "http://127.0.0.1:8081/" </VirtualHost>
On paramètre apache pour qu’il nous serve Wekan.
a2enmod proxy proxy_http proxy_wstunnel # On active les modules Apache dont on a besoin service apache2 restart # On redémarre le service apache2 a2ensite wekan # On active le site wekan service apache2 reload # On recharge la configuration de apache2
On se connecte sous l’utilisateur wekan et on lance nos conteneurs.
su wekan # On se connecte sous l'utilisateur wekan cd /home/wekan && docker-compose up -d # On se place dans le dossier où se trouve le fichier docker-compose.yml et on lance nos conteneurs
Voilà c’est installé, on se rend maintenant sur http://adresseipdemadebianquejaime:8081/sign-in
et on clique sur S’enregistrer à droite de Vous n’avez pas de compte ?
L’application fonctionne très bien, voir dans les commentaires la variable MAIL_URL
pour l’envoi des mails.
Maintenant qu’on a Docker installé vous pouvez tester Sonerezh (logiciel de streaming audio qu’on peut auto-héberger) pour aller plus loin avec Docker
Déjà 15 avis pertinents dans Installation de Wekan avec Docker
Les commentaires sont fermés.
Je suis sur ton appli depuis 2 jours (et je tiens à dire que je n’ai rien à foutre de la comparaison avec Trello, il faut faire mieux !) :
Super boulot en tout cas, c’est de la bonne ! Merci à toute l’équipe !
Tcho !
Pour les autres points, je suis tout à fait de ton avis, il manque encore beaucoup de choses, notamment une bonne petite appli native Android/iOS mais le projet est encore jeune et plutôt prometteur !
La documentation est vraiment pas terrible, j’ai bêtement recopié le
- ROOT_URL=http://localhost:8081
. Grâce à toi j’ai compris l’erreur que j’ai faite et l’export fonctionne ! Je vais modifier l’article de ce pas.Wekan c’est de la bonne et très prometteur pourvu que ça continue, Kanboard très très bon aussi, j’utilise les deux
Sympa ton site, articles très complets, dommage que tu écrives pas plus souvent.
Tcho !
S’il vous plaît, j’ai besoin d’aide. Je veux utiliser wekan et je n’ai pas une grande connaissance.
J’ai suivi toutes les étapes de cet excellent article sur mon VPS ( DigitalOcean). Le problème que je n’ai pas compris l’utilité de (- ROOT_URL=http://adresseipdemadebianquejaime:8081) alors je l’ai remplacé par (- ROOT_URL=http://localhost:8081) .
J’ai eu ce message (wekan_wekandb_1 is up-to-date) lorsque j’ai poursuivi les étapes.
Mes questions :
À quoi sert ROOT_URL ? Qu’est-ce que je dois mettre dans mon cas ?
Si je suis sur la bonne route, comment je peux utiliser wekan?
Merci infiniment pour cet article.
Première chose, est-ce que tu as accès au port 8081 de ton VPS ou est-ce qu’il est bloqué par DigitalOcean ? Deuxième chose, il ne faut pas que tu mettes localhost mais l’adresse IP WAN de ton VPS genre http://210.41.47.128:8081.
Tcho !
Mais s’il vous plaît, qu’est-ce que je dois ajouter pour que je puisse envoyer des mails d’invitations à des nouveaux membres sur mes boards wekan?
Merci de nouveau !
Tcho !
Toud d’abord, merci pour ce tuto, mais je le trouve vraiment incomplet pour un utilisateur qui n’a jamais fait de docker et de simple base en Apache, pourrais tu d’avantage commenter les différentes lignes? Car de ce que j’ai vu, tu n’as fait qu’un copier/coller de la procédure proposée sur GitHub?
Si je fais cette remarque c’est parce que personnellement je suis bloqué depuis hier dessus, je fais fasse à une erreur 502 :
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /wekan.
Reason: Error reading from remote server
Et que je n’arrive pas à voir où j’ai bien pu faire une erreur de configuration, étant donné que je ne comprends pas forcément toutes les lignes de ton tuto. Tous les droits d’accès sont bons.
J’ai créé un dossier /var/www/wekan qui me sert de racine.
J’ai créé un dossier /opt/wekan dans lequel se situe mon fichier docker-compose et dans lequel j’exécute ma commande docker-compose up -d
J’ai changé le port du virtualhost de 80 a 8082 car j’ai d’autres services qui tournent sur le 80.
Mon fichier docker-compose :
wekan:
image: mquandalle/wekan
restart: always
links:
– wekandb
environment:
– MONGO_URL=mongodb://wekandb/wekan
– ROOT_URL=http://192.168.1.32:8081
ports:
– 8081:8082
wekandb:
image: mongo
restart: always
volumes:
– /home/wekan/data:/data/db
Mon fichier .conf :
Listen 8082
#ServerName Wekan
#ServerAdmin monmail@mail.org
DocumentRoot /var/www/wekan
Options FollowSymLinks
AllowOverride AuthConfig FileInfo Indexes Options=MultiViews
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride AuthConfig FileInfo Indexes Options=MultiViews
Require all granted
ErrorLog /var/log/apache2/wekan.error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/wekan.access.log combined
ServerSignature Off
ProxyPassMatch « ^/(sockjs/.*/websocket)$ » « ws://127.0.0.1:8081/$1 »
ProxyPass « / » « http://127.0.0.1:8081/ »
ProxyPassReverse « / » « http://127.0.0.1:8081/ »
J’écris parfois des articles pour débutants, parfois pour intermédiaires et parfois pour expérimentés. Si je parle d’installer un logiciel avec Docker, je ne vais clairement pas me lancer à expliquer Docker sinon je devrais écrire 3 articles en plus.
D’habitude j’essaie d’aider mais là on parle d’un article qui a deux ans, je pense qu’il faudrait tout revoir et donc probablement réécrire l’article. Clairement ce n’est pas prévu, désolé.
Tcho !
Merci pour ta réponse, si je trouve une solution je repasserai par là.
Bonne journée !
C’est un article qui a deux ans, il est dépassé. Je ne conseille pas nécessairement de se baser dessus.
Tcho !