Vikunja
Vikunja is a free, self-hosted task and project manager that replaces Todoist, Trello, or Asana with a Go backend and Vue frontend you run yourself. It ships as a single Docker container with SQLite as the default database, and switches between List, Gantt, Kanban, and Table views on the same underlying tasks.
Quick facts: Vikunja is licensed under AGPL-3.0-or-later, confirmed from the LICENSE file and license badge on the official GitHub repository (the desktop/ folder ships under a separate GPL-3.0-or-later license). The latest stable release is v2.3.0, and the repo has about 4.2k stars and 457 forks. The official Docker image is vikunja/vikunja on Docker Hub, a single image bundling both API and frontend, listening on port 3456. Day-to-day development happens on the project’s own Gitea instance at code.vikunja.io, with the GitHub repository serving as the public mirror for issues, pull requests, and stars.
What is Vikunja?
Most task apps make you pick a lane early on: a plain to-do list, a Kanban board, or a Gantt chart, and you’re stuck with that view. Vikunja skips the decision. It organizes work into projects and subprojects, with tasks that carry due dates, reminders, priorities, labels, attachments, and relations to other tasks (subtask, blocking, related, and so on). Quick Add Magic reads a task title as you type it: mention “tomorrow” and it sets a due date, add “*label” and it applies a label, type “@person” and it assigns someone, all without a separate edit step afterward. Saved filters let you build a view like “everything due this week across every project” once and keep reusing it. Projects can be shared with individual users or whole teams, with assignments showing who owns what, and a built-in CalDAV integration syncs tasks into whatever calendar app is already on your phone. Switching over doesn’t mean starting from a blank project either: Vikunja imports existing data straight from Todoist, Trello, or Microsoft To-Do.
Four views on the same tasks
- List: a classic to-do list, one task per row, enriched with due dates, assignees, and labels.
- Kanban: drag-and-drop cards across boards like Backlog and Doing, the closest thing to Trello’s core interaction.
- Gantt chart: a timeline view for planning deadlines across a project, not something Todoist or Trello offer natively.
- Table: a spreadsheet-style view with configurable columns, useful for scanning every task attribute at once.
How to install Vikunja with Docker
Prereq: Docker and Docker Compose need to already be installed. Our homelab setup guide for beginners covers picking hardware for a first Docker project.
- Create the
filesanddbfolders and set their owner to user 1000, the UID Vikunja runs as by default. - Save the docker-compose.yml below in that same folder.
- Set
VIKUNJA_SERVICE_PUBLICURLto the address the container will actually be reached at, since the browser needs that URL to make requests. - Run the compose file and open the mapped port to register the first account.
mkdir $PWD/files $PWD/db
chown 1000 $PWD/files $PWD/db
services:
vikunja:
image: vikunja/vikunja
container_name: vikunja
restart: unless-stopped
ports:
- "3456:3456"
environment:
VIKUNJA_SERVICE_PUBLICURL: https://vikunja.yourdomain.com/
VIKUNJA_DATABASE_TYPE: sqlite
VIKUNJA_DATABASE_PATH: /db/vikunja.db
volumes:
- ./files:/app/vikunja/files
- ./db:/db
docker compose up -d
That’s the entire stack: one image, one SQLite file, one files volume. The default configuration has CORS enabled, which requires VIKUNJA_SERVICE_PUBLICURL to be set to a real, reachable URL; the alternative is disabling CORS entirely via VIKUNJA_CORS_ENABLE: false. The container runs as user 1000 with no group by default, which is why the chown step above matters before the first start.
Tip: SQLite is fine solo or for a small household, but Vikunja’s own docs recommend PostgreSQL or MySQL once more than a handful of people share an instance. The official full Docker Compose example covers a Postgres-backed setup with Traefik or Caddy in front, plus optional Redis caching.
Vikunja vs Todoist and Trello
Todoist and Trello are both cloud services: convenient, polished, and out of your hands the moment their pricing or privacy policy changes. Vikunja covers a good chunk of what each one does (recurring tasks and natural-language input like Todoist, Kanban boards like Trello) from a server you control, with an AGPL license instead of a subscription. It won’t fully replace Todoist’s mobile polish or Trello’s Power-Ups marketplace, but for anyone who wants their task data staying on hardware they own, that trade is usually the point.
| Vikunja | Todoist | Trello | |
|---|---|---|---|
| Hosting | Self-hosted (or Vikunja Cloud) | Cloud only | Cloud only |
| License | AGPL-3.0-or-later | Proprietary | Proprietary |
| Views | List, Gantt, Kanban, Table | List, board, calendar | Kanban board, calendar (add-on) |
| Free plan limits | None (self-hosted) | 5 projects, limited features | 10 boards per workspace |
| CalDAV sync | Built-in | No | No |
| Import from other tools | Todoist, Trello, Microsoft To-Do | Limited | Limited |
- Single Docker container to start, SQLite included, no separate database required
- Four task views (List, Gantt, Kanban, Table) instead of committing to one interaction model
- Built-in CalDAV, so tasks show up in an existing calendar app without a third-party bridge
- Direct import from Todoist, Trello, and Microsoft To-Do for switching over
- Mobile apps are more basic than Todoist’s or Trello’s native apps
- SQLite default isn’t recommended past a handful of concurrent users
- No Power-Ups-style third-party marketplace like Trello’s
FAQ
Is Vikunja free?
Yes, the self-hosted server is fully free and open source under AGPL-3.0-or-later. Vikunja Cloud, the company’s hosted version, is a separate paid option for people who don’t want to run their own server, and a Pro tier adds features like an admin panel, audit logs, and time tracking for self-hosted instances.
Does Vikunja need PostgreSQL?
No. SQLite is the default and works fine solo or in a small household. PostgreSQL or MySQL are supported alternatives recommended once an instance serves more than a handful of concurrent users.
Can I import my Todoist or Trello data into Vikunja?
Yes. Vikunja has built-in importers for Todoist, Trello, and Microsoft To-Do, so switching over doesn’t mean rebuilding every project from scratch.
Does Vikunja have a Kanban board?
Yes. The Kanban view lets tasks be dragged between columns like Backlog and Doing, functionally similar to Trello’s board.
Is there a Vikunja mobile app?
Yes, though it currently covers only the basic features. The desktop app, licensed separately under GPL-3.0-or-later, is essentially the web frontend packaged for desktop use, and the web app itself works fine in a phone browser in the meantime.
Vikunja fits the same self-hosted, own-your-data logic as the rest of a homelab. Anyone already running Nextcloud for files and calendars can point Vikunja’s CalDAV integration at the same calendar stack, and n8n can automate task creation from emails, forms, or other self-hosted tools through Vikunja’s API. Our homelab setup guide for beginners covers the Docker basics all of these depend on.