Kanboard Documentation

Docker Image Usage

Please, do not update the software blindly without reading the ChangeLog. Always check for breaking changes if any.

Docker Registries

Registry NameRegistry URL
Docker Hubdocker.io/kanboard/kanboard
GitHub Container Registryghcr.io/kanboard/kanboard
Quay.ioquay.io/kanboard/kanboard

Docker Tags

TagDescription
latestLatest stable release
nightlyNightly build (latest development changes)
v1.2.xSpecific version of Kanboard

The recommendation is to always pin a specific version of Kanboard to avoid unexpected upgrade.

Environment Variables

All Kanboard configuration options can be used as environment variable.

Volumes

PathDescription
/var/www/app/dataApplication data (Sqlite database, attachments, etc.)
/var/www/app/pluginsPlugins
/etc/nginx/sslSSL certificates

Custom Config File

  • The container already includes a custom config file located at /var/www/app/config.php.
  • You can store your own config file on the data volume: /var/www/app/data/config.php.
  • You must restart the container to take into account the new parameters of your custom config file.

Running the Container

Basic Usage

docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:v1.2.8

Docker Compose

There is a docker-compose.yml file in Kanboard repository. Here an example with Sqlite:

version: '2'
services:
  kanboard:
    image: kanboard/kanboard:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - kanboard_data:/var/www/app/data
      - kanboard_plugins:/var/www/app/plugins
      - kanboard_ssl:/etc/nginx/ssl
volumes:
  kanboard_data:
  kanboard_plugins:
  kanboard_ssl:

Another example with MariaDB:

version: '2'
services:
  kanboard:
    image: kanboard/kanboard:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - kanboard_data:/var/www/app/data
      - kanboard_plugins:/var/www/app/plugins
      - kanboard_ssl:/etc/nginx/ssl
    environment:
      DATABASE_URL: mysql://kanboard:kanboard-secret@db/kanboard
  db:
    image: mariadb:latest
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: kanboard
      MYSQL_USER: kanboard
      MYSQL_PASSWORD: kanboard-secret
    volumes:
    - db:/var/lib/mysql
volumes:
  kanboard_data:
  kanboard_plugins:
  kanboard_ssl:
  db:

Starting the container with Docker Compose:

docker compose up

By default, the installation of plugins is disabled for security reasons. Here is an example to enable the installation of plugins:

docker run --rm \
  --name=kanboard \
  -p 8080:80 \
  -e PLUGIN_INSTALLER=true \
  kanboard/kanboard:latest

Another example with Docker Compose and volumes:

version: '2'
services:
  kanboard:
    image: kanboard/kanboard:latest
    ports:
     - "8080:80"
     - "443:443"
    volumes:
     - kanboard_data:/var/www/app/data
     - kanboard_plugins:/var/www/app/plugins
     - kanboard_ssl:/etc/nginx/ssl
    environment:
      - PLUGIN_INSTALLER=true
volumes:
  kanboard_data:
    driver: local
  kanboard_plugins:
    driver: local
  kanboard_ssl:
    driver: local

Build Your Own Docker Image

Clone the Kanboard repository and run the following command:

make docker-image

Notes

You must use the SMTP method, or a plugin like Mailgun/Sendgrid/Postmark to send emails. The mail and sendmail transports won’t work with the official Docker image.