Kanboard is a lightweight kanban project tracker that you can host on your own server. Unlike other kanban trackers, it aims to create a simple and intuitive interface that you can access from anywhere.
This article will show you how you can install Kanboard in Ubuntu 22.04. It will also highlight the process of extending Kanboard using community plugins.
Why Use Kanboard?
One of the biggest advantages of Kanboard is that it can work on almost any server through the magic of Docker. As a result, hosting Kanboard is both painless and easy even for non-technical users.
Aside from that, Kanboard also comes with a flexible plugins platform. This includes the ability to create tags, track time and run custom scripts. For example, you can create a plugin that updates the properties of each card depending on its content.
Tip: Learn how to be efficient and effective at prioritizing tasks by understanding the Eisenhower Matrix.
Installing Kanboard
- The first step in installing Kanboard is to make sure that your system is up to date. You can do this by running the following command:
sudo apt update sudo apt upgrade
- Install the Docker project’s third-party repository key:
sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg sudo chmod a+r /etc/apt/trusted.gpg.d/docker.gpg
- Create a new apt repository file using your favorite text editor:
sudo nano /etc/apt/sources.list.d/docker.list
- Write the repository information for the official Docker repository:
deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable
- Save your new repository file by pressing Ctrl + O, then Ctrl + X.
- Update your system’s repository details by running the following command:
sudo apt update
- Install Docker engine along with its dependencies using apt:
sudo apt install wget docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin
Obtaining Kanboard
Once you have Docker engine properly installed, the next thing to do is to fetch the Docker Compose script for Kanboard. This is a small text file that contains a list of options that will tell Docker how to automatically create Kanboard.
- Create a separate folder in your home directory for Kanboard:
mkdir ~/kanboard cd ~/kanboard
- Create a new text file with the name “docker-compose.yml” through your favorite text editor:
nano ~/kanboard/docker-compose.yml
- Copy the following block of code and paste it inside your “docker-compose.yml” file:
version: '2' services: kanboard: image: kanboard/kanboard:latest ports: - 8080:80 volumes: - kanboard_data:/var/www/app/data - kanboard_plugins:/var/www/app/plugins environment: DATABASE_URL: mysql://kanboard:!#REPLACE-ME@db/kanboard PLUGIN_INSTALLER: true db: image: mariadb:latest command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: !#REPLACE-ME MYSQL_DATABASE: kanboard MYSQL_USER: kanboard MYSQL_PASSWORD: !#REPLACE-ME volumes: - db:/var/lib/mysql volumes: kanboard_data: kanboard_plugins: db:
- Open a new terminal and generate a secure password using the following command:
cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 16 | head -n 1
- Go back to your previous terminal and paste your secure password to every instance of “#!REPLACE-ME” inside the file.
- Save and exit your “docker-compose.yml” file by pressing Ctrl + O, then Ctrl + X.
- You can now build your Kanboard docker container by running the following command:
docker compose up -d
Good to know: Learn how you can create an offline Kanban board using Obsidian.md today.
Setting Up Kanboard for SSL
At this point, you now have a partially working Kanboard installation. However, in order to access it securely, you need to first create an Nginx reverse proxy. This will serve as your web-facing server that provides load balancing and SSL.
- Install the Nginx webserver:
sudo apt install nginx
- Create a site configuration file for your Nginx reverse proxy:
sudo nano /etc/nginx/sites-available/kanboard
- Copy and paste the following block of code inside your new site configuration file:
server { listen 80; listen [::]:80; root /var/www/html; server_name my-kanban-domain-url.com; location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; proxy_pass http://localhost:8080; } }
Note: replace “my-kanban-domain-url.com” with the actual domain name.
- Create a symbolic link for your Kanboard reverse proxy:
sudo ln -s /etc/nginx/sites-available/kanboard /etc/nginx/sites-enabled/kanboard
- Reload your Nginx service daemon:
sudo systemctl reload nginx.service
Obtaining an SSL Certificate for Kanboard
With your reverse proxy up, you can now request an SSL certificate for your Kanboard. This section shows you how to obtain a free certificate through the Electronic Frontier Foundation’s (EFF) Certbot.
- To begin, you need to install and update your system’s core snap daemon:
sudo snap install core sudo snap refresh core
- Install the certbot snap package:
sudo snap install --classic certbot
- Create a symbolic link between the certbot snap binary and your system’s default binary directory:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
- Test if certbot is running by using it to register itself to the EFF:
sudo certbot register --agree-tos --email ramces@email.invalid
- Generate an SSL certificate for your domain name by running the following command:
sudo certbot
Choose the domain from the entry and it will do its job to generate SSL for your domain.
Good to know: Learn more about encryption over the internet by creating your own self-signed SSL certificate.
Logging In and Creating A Kanban Board
You can now use Kanboard for creating and managing Kanban boards. To do that, login to your Kanboard instance by accessing its domain name from a web browser.
- Use “admin” as the username and password in the login screen.
- Click “New project” to create a public Kanban board.
- Provide a name and URL slug for your new board.
- Click “Public Access” on the page’s left sidebar.
- Click the blue “Enable Public Access” button. This will create an RSS feed and a publicly viewable link that you can share with non-Kanboard users.
- Click the “Board” button on the page’s upper left corner to access and create new items in your board.
Creating a User for Collaborative Kanban Boards
Aside from sharing publicly accessible “view-only” boards, you can also use Kanboard to create collaborative “task” boards between multiple local users.
- Click the Admin user’s icon on the page’s upper right corner, then select “User management.”
- Click the “New User” link along the page’s upper left sidebar.
- This will bring up a small dialog prompt where Kanboard will ask you for the username and password of your new user.
- Scroll down to the bottom of the prompt and click the drop-down box under the “Projects” category.
- Select the Kanban board that you want the user to be a part of.
- Click “Save” to create your new user account.
Customizing Your Kanban Board with Plugins
One of the brilliant features of Kanboard is that it provides a framework to extend your board beyond its basic features. This means that you do not need to rely on the developers to include a custom feature for your server.
- To add a new plugin, click the Admin user’s icon on the page’s upper right corner, then select “Plugins.”
- Click the “Plugin Directory” category on the page’s left sidebar.
- Find a plugin that you want to install in your Kanboard server. In my case, I will install “MarkdownPlus” to extend the basic Markdown in my server.
- Click “Install”, then refresh the webpage to properly load the plugin in your server.
FYI: Kanban is not the only way to manage tasks and data. Learn how you can optimize your To Do lists and data using Todoist today.
Frequently Asked Questions
Is it possible to backup the contents of my Kanban board?
Yes. To backup a specific Kanban board, click the gear icon on the board that you want to export then click “Exports.”
This will bring up a small prompt where Kanboard will ask you for a date range that you want to export. Provide a start and end date, then click “Export.”
Is it possible to reset my Kanban board's "locked down" period?
Yes. It is possible to reset a particular user’s locked-out timer in Kanboard. To do this, click the Admin user’s icon on the page’s upper right corner. Next, select the “Users management” item then click the name of the locked-out user. Lastly, go to the “Security” category and click “Unlock this user.”
Is it possible to modify the config.php file inside my Kanboard container?
Yes. However, doing this could potentially ruin the consistency of your Docker image. Instead, the developers of the program suggest that you use the environment variables inside your docker-compose.yml file when configuring the values of your Kanboard instance.
Image credit: Eden Constantino via Unsplash. All alterations and screenshots by Ramces Red.
Our latest tutorials delivered straight to your inbox