Kanban is a method for managing and optimizing the flow of work. It has been applied to a variety of fields including software development and project management.

FocalBoard is a great Free and Open Source App to plan your projects and set your goals, it helps you stay organized and prioritize your tasks.

Why a Kanban Board?

In the end of the day, everything comes down on how we manage our time. Focalboard provide us a simple Kanban board that will allow us to:

  • Enhances Flexibility in Task Management: Kanban allows for real-time updates and adjustments, making it easier to adapt to changes and prioritize tasks effectively.
  • Improves Visibility and Transparency: With its visual board layout, Kanban provides a clear overview of workflow and progress, fostering transparency and better communication among team members.
  • Focuses on Customer and End-Product: By emphasizing just-in-time delivery and continuous work flow, Kanban ensures that the final product is consistently aligned with customer needs and expectations.

Self-Hosting FocalBoard with Docker

This is the FocalBoard Docker image. that we will use today.

First Steps to install FocalBoard

One recurrent topic that has to be addressed in the first place is to setup Docker in our machine.

You can install it for any PC/mac at home or in any cloud provider that you wish. Just make sure that it is installed to the latest version:

docker --version

Deploy FocalBoard with Docker CLI

If you have selfhosted before, and want to have a quick look on how Focalboard looks, you can just use this Docker command:

docker run -d -p 8000:8000 --name focalboard mattermost/focalboard 

But if you are not confortable with the terminal, keep reading to see how to deploy Focalboard with Docker using Portainer.

Deploy Focalboard with Docker Compose

Something great about containers is that we can use Docker compose files to deploy containers

The configuration file that we will use today is:

version: '2'
services:
  focalboard:
    image: mattermost/focalboard:latest #the Docker image for Focalboard that we are using
    container_name: focalboard
    volumes:
      - ~/Docker/focalboard/data:/data
    ports:
      - "8000:8000" #any port that you have free in your machine
    restart: always 

Then just save the file:

sudo nano docker-compose.yml

This will open a text editor, where we can paste the following configuration file:

To save, use CTRL+O, then CTRL+X to exit.

Then just deploy the service with:

sudo docker-compose up -d

But what about the UI way to deploy FocalBoard that I promised? This is where Portainer comes to play.

Focalboard deployment with Portainer

If you are not familiar with the terminal, you can use Portainer to make your deployments more user friendly.

This tutorial assumes that you already have Portainer running, but if you want to refresh how to install it from scratch, you can get to know more about for Portainer.

But basically it is a confortable UI to manage Docker containers for your selfhosting projects and you can run it with:

sudo docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Create a new stack with the configuration file for FocalBoard provided above and hit deploy the Stack:

Once deployed (it will take few seconds to download the FocalBoard image the first time), these are the details of the container:

FocalBoard and NGINX

If you want to use FocalBoard together with NGINX to expose it safely, this is the modified configuration file you need:s

This version of the docker-compose file, already associate our focalboard container with an existing nginx network. So it assumes that you have already NGINX running as explained here.

Providing that the previous steps are clear, just deploy the stack with the NGINX network included.

How to add the container to an existing NginX

You will need to go to your nginx GUI and add the container name and its port:

For this procedure to work, remember that your container and nginx must share a docker network, this can be achieved by any of the following ways:

Using Portainer
Using CLI
docker network connect nginx_default focalboard

FocalBoard Post-Deployment

This is it. You are ready to manage your project successfuly with this quick and free installation of Focalboard. And remember:

  • The 8000 is the default port to access the web interface.
  • If you have deployed it in one device at home, you can use it from any other connected at the same router, just use the internal IP of the device in which you made the deployment.

You can check that in Linux with:

hostname -I

Focalboard Service Overview

After creating your user account during the first login, you will see a board like this, that you can customize for your personal use:

FAQ

How to Deploy Nginx Proxy Manager

If you are interested in deploying a separated NGINX instance with Docker, I already created a guide for that here.

Docker Alternatives

Docker is a great to manage our containers. But it is not the only option.

You can have a look to other alternatives like Podman in this post