Install it

Kanban Toolkit is free software, and it is the same application however you run it: the same routes, the same SQLite schema and the same server as the Cloudflare build. One Node process, one file, a directory of static pages — no service in between, and nobody to ask.

One command, if you have Docker

git clone https://github.com/malcolmbastien/kanbantoolkit kanbantoolkit
cd kanbantoolkit && docker compose up -d

That builds the image, creates the database on a volume, applies the migrations and answers on http://localhost:8787/app. The port is bound to loopback: a reverse proxy is the way in, which is the next section of this page. docker compose down stops it and keeps the work; down -v does not.

Or three commands, if you would rather see the parts

git clone https://github.com/malcolmbastien/kanbantoolkit kanbantoolkit
cd kanbantoolkit && npm ci && npm run build
PORT=8787 DB_PATH=./kanbantoolkit.db STATIC_DIR=./dist npm run server

This is what the image does, in the open: a clone, a build, a process. The build writes the site and the app into dist/; the first start applies the schema migrations and leaves you a database file. There is no account to create first and no key to paste.

What happens on the first run

What you take on

This is what self-hosting means rather than a caveat: the machine, and the four jobs that come with it.

What it reads

Everything is configuration, and everything has a default that works:

The sign-in providers are optional, and an instance with none still runs: the board works, and the app says in words that it has no way in configured rather than drawing a button that cannot work. Every variable, with its default and what an unset one does, is in the documentation.

The honest limits

There is no reduced edition and nothing to unlock: no plan, no seat count, no objective the free version withholds. Everyone runs the whole application, because there is nothing to sell.

Keeping it up

Upgrading is a backup, a pull, a rebuild and a restart. The migrations run at boot and print the schema version they reached; a migration that fails stops the process rather than guessing. Restoring is the same obstacle in the other direction: stop, put the file back, start — and the command checks the restored database's integrity and says what it restored, not just that a file moved.

npm run backup -- backup ./kanbantoolkit.db ./backups
# … upgrade, and if it goes wrong:
npm run backup -- restore ./backups/kanbantoolkit-2026-10-24T02-00-00.db ./kanbantoolkit.db --force

A restore you have never run is a hope. The documentation has the drill, and the test suite runs one on every push.

The licence

Kanban Toolkit is free software under the GNU Affero General Public License, version 3 or later. Read it, change it, run your changes — for yourself, or for a team, for nothing. The one thing it asks is the point of the licence: a modified version, run for other people over a network, offers them its source.

Where to go next

This page is the short version on purpose. The documentation lives with the code, so it is always the version you are running:

The index is the front door to the rest — the architecture, the API, the data model. The demo is the whole product with no install at all, and the support address is in the footer of every page.