# Kanboard

Project management app that organizes tasks as cards on kanban boards.

- Replaces: [Trello](https://openlogs.fyi/alternatives/trello)
- Summary: Paid kanban board services, such as Trello.
- Stack: PHP (language)
- Deployment: docker_compose
- License: MIT (osi) [source](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/LICENSE)
- Business model: unknown. The README at the pinned commit does not state a business model, so it stays unknown. ([source](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/README.md), read 2026-10-22)
- Difficulty: easy. 1 service, 3 volume mounts, no env values to set, no elevated host access. Heuristic score 1 of 11: easy.
- Requirements: not stated
- Repository: [kanboard/kanboard](https://github.com/kanboard/kanboard)

## Install

1. Docker with the Compose plugin ([source](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/docker-compose.sqlite.yml))

   ```text
   A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
   ```

2. Save the compose file as compose.yaml ([source](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/docker-compose.sqlite.yml))

   ```yaml
   # Sample docker-compose file to run Kanboard with Sqlite
   # More information at https://docs.kanboard.org/v1/admin/docker/
   name: kanboard
   services:
     app:
       image: ${KANBOARD_IMAGE:-kanboard/kanboard:latest}
       container_name: kanboard
       restart: always
       ports:
        - "80:80"
        - "443:443"
       volumes:
        - data:/var/www/app/data
        - plugins:/var/www/app/plugins
        - certs:/etc/nginx/ssl
   volumes:
     data:
       driver: local
     plugins:
       driver: local
     certs:
       driver: local
   ```

3. Start it ([source](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/docker-compose.sqlite.yml))

   ```bash
   docker compose up -d
   ```

4. Open the app ([source](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/docker-compose.sqlite.yml))

   ```text
   Open http://localhost:80. The compose file publishes host port 80 for the app service.
   ```

Compose file check: config_ok on 2026-10-22.

## Gotchas and maintenance

### Gotchas

- Some images use the latest tag or no tag: Images without a pinned version: app: ${KANBOARD_IMAGE:-kanboard/kanboard:latest}. A later pull can get a different version. ([source](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/docker-compose.sqlite.yml), checked 2026-10-22)
- The compose file publishes host ports: Host ports: 80 (app), 443 (app). A port without a host address listens on all host network interfaces. ([source](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/docker-compose.sqlite.yml), checked 2026-10-22)

### Signals

Computed from a GitHub snapshot taken 2026-10-22.

- Open issues and pull requests: 156
- Stars: 9921, forks: 2006
- Last push: 2026-10-21 (0 days ago)
- Latest release: v1.2.56 on 2026-10-21 (0 days ago)

## Sources

- [Repository: https://github.com/kanboard/kanboard](https://github.com/kanboard/kanboard)
- [License: https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/LICENSE](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/LICENSE)
- [Business model: https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/README.md](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/README.md)
- [Compose file: https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/docker-compose.sqlite.yml](https://github.com/kanboard/kanboard/blob/e197e71af4ff9f371b931ab0338b2b41827e6394/docker-compose.sqlite.yml)

---
Canonical: https://openlogs.fyi/tools/kanboard  
Last updated: 2026-10-22
