wekan

Deploy Wekan 3.71 – Open Source Kanban Tool in Docker Swarm

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.

  1. Docker Swarm Cluster with GlusterFS as persistent tool.
  2. Traefik as reverse proxy to expose micro-services to external.
  3. 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 </em>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. Click on them to open in lightbox for full resolution.

In the coming posts, I will show you how to use deploy Flarum – Open Source forum software. Stay tuned… 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *