How to deploy Wekan 3.71 – Open Source Kanban Tool in docker swarm bahind Traefik v2.0
- Rajasekhar Gundala
- 06 Feb, 2020
Wekan is an open-source kanban board that allows a card-based (moved around) task and to-do management.
As I am mentioned in my Rocket Chat post, in this post I am going to deploy Wekan using Docker Compose.
Wekan is an open-source kanban board that allows a card-based task and to-do management.
Let’s start with actual deployment…
Please make sure you should fulfill the below requirements before proceeding to the actual deployment.
-
Docker Swarm Cluster with GlusterFS as persistent tool.
-
Traefik as reverse proxy to expose micro-services to external.
-
Database stack to host application databases.
Introduction
Wekan is an open-source kanban board that allows a card-based task and to-do management. Wekan allows creating Boards, on which Cards can be moved around between a number of Columns. Boards can have many members. You can assign colored Labels to cards to facilitate grouping and filtering, additionally, you can add members to a card, for example, to assign a task to someone.
Why is Wekan
Wekan is distributed under the MIT License, which means we can use it freely and make changes if needed. It is perfect for anyone that needs a slick kanban board but doesn’t want to use paid services, which are out of user control. Wekan can be hosted on your own server with very little effort, guaranteeing that you have full control over your data and can make sure no one else has access to it and that it won’t just vanish from one day to another, that is, if you do backups.
Wekan Features
-
Boards – List of all your public and private boards, board shortcuts at top of page
-
Lists
-
Cards
-
WIP Limits – Set limit for maximum no. of tasks in list
-
Import from Trello
-
Attachments
-
Checklists
-
Swimlanes
-
IFTTT Rules like Trello Butler
-
Copy Checklist Template to Multiple Cards
-
Copy/Move card to same or another board
-
Custom Fields
-
Templates
Please go through the below link for the full features of Wekan.
https://github.com/wekan/wekan/wiki/Features
Prepare Wekan Environment
Create a folder in /opt
directory to the place configuration file, i.e, .yml
file for Wekan.
Use the below commands to create the folder.
cd /opt
sudo mkdir -p wekan
cd wekan
sudo touch wekan.yml
Wekan Docker Compose
Open wekan.yml
created earlier with nano editor using sudo nano wekan.yml
Copy and paste the below code in wekan.yml
Here is the docker compose
file for wekan
.
Here I am using MongoDB as a back-end storage system for Wekan which was deployed earlier to our Docker Swarm environment.
version: "3.7"
services:
wekan:
image: wekanteam/wekan:latest
depends_on:
- mongo
environment:
- PORT=9001
- ROOT_URL=https://kanban.example.com
- MONGO_URL=mongodb://mongo/wekan
- MAIL_URL='smtp://webmail.example.com:25/?ignoreTLS=true&tls={rejectUnauthorized:false}'
- MAIL_FROM='Wekan Notifications <noreply.wekan@example.com>'
networks:
- proxy
ports:
- "9001:9001"
deploy:
placement:
constraints: [node.role == worker]
replicas: 1
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.wekan.rule=Host(`kanban.example.com`)"
- "traefik.http.routers.wekan.tls=true"
- "traefik.http.routers.wekan.tls.certresolver=default"
- "traefik.http.routers.wekan.entrypoints=websecure"
- "traefik.http.services.wekan.loadbalancer.server.port=9001"
networks:
proxy:
external: true
I used Traefik stack that was deployed (
proxy stack
) earlier to Docker Swarm Cluster as a reverse proxy / load balancer.
Also docker overlay network
proxy
for the application to be accessible externally.
Deploy Wekan using Docker Compose
Now it’s time to deploy our docker-compose file above wekan.yml
using the below command
docker stack deploy --compose-file wekan.yml wekan
You can give it any name for the stack. I just named it as
wekan
Check the status of the stack by using docker stack ps wekan
Now log into the Wekan interface by using URL in the configuration file, wekan.example.com (replace example.com
with your domain name
)
Make sure that you have DNS entry for your application (wekan.example.com) in your DNS Management Application.
You will be greeted with an Admin account creation screen. Create an admin account by entering the user name, email, and password.
Now log into it using the credentials created above username and password
Please find below images for your reference.
In the coming posts, I will show you how to use deploy Flarum – Open Source forum software. Stay tuned… 🙂