← All articles
PRODUCTIVITY Vikunja: Self-Hosted Task Management That Replaces T... 2026-02-09 · vikunja · task-management · todoist

Vikunja: Self-Hosted Task Management That Replaces Todoist and Trello

Productivity 2026-02-09 vikunja task-management todoist trello productivity

Your task management probably lives in someone else's cloud. Todoist knows every project you're working on. Trello sees your workflow. Notion has your entire second brain. And all of them have pricing tiers designed to extract more money as you rely on them more.

Vikunja is a self-hosted, open-source task management tool that combines the best ideas from Todoist, Trello, and Microsoft To Do into a single application you control completely.

What Vikunja Does

Vikunja isn't trying to be a Notion clone or a full project management suite. It's focused on tasks — and it does them well:

Feature Comparison

Feature Todoist (Free) Todoist (Pro) Trello (Free) Vikunja
Projects 5 300 Unlimited boards Unlimited
Tasks Unlimited Unlimited Unlimited Unlimited
Labels Yes Yes Yes Yes
Priorities 4 levels 4 levels Via labels 5 levels
Due dates Yes Yes Via Power-Ups Yes
Reminders No Yes No Yes
Recurring tasks Yes Yes Via Butler Yes
Kanban view Board view Board view Native Yes
Gantt view No No No Yes
CalDAV No No No Yes
File attachments No Yes Yes (10MB) Yes
API Yes Yes Yes Yes
Self-hosted No No No Yes
Price Free $5/mo Free Free

The big Vikunja advantage: no artificial limits. No "upgrade to Pro for reminders" or "5 project maximum on free tier." You get everything, because you're running it.

Installation

Vikunja runs as a single binary or Docker container with a database backend.

Docker Compose (recommended)

services:
  vikunja:
    image: vikunja/vikunja:latest
    environment:
      VIKUNJA_DATABASE_TYPE: sqlite
      VIKUNJA_SERVICE_JWTSECRET: change-this-to-a-random-string
      VIKUNJA_SERVICE_PUBLICURL: https://tasks.example.com
    volumes:
      - ./data:/app/vikunja
    ports:
      - "3456:3456"
    restart: unless-stopped

For multi-user setups with better performance, use PostgreSQL:

services:
  vikunja:
    image: vikunja/vikunja:latest
    environment:
      VIKUNJA_DATABASE_TYPE: postgres
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_PASSWORD: changeme
      VIKUNJA_SERVICE_JWTSECRET: change-this-to-a-random-string
      VIKUNJA_SERVICE_PUBLICURL: https://tasks.example.com
    ports:
      - "3456:3456"
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: postgres:16
    environment:
      POSTGRES_USER: vikunja
      POSTGRES_PASSWORD: changeme
      POSTGRES_DB: vikunja
    volumes:
      - ./db:/var/lib/postgresql/data
    restart: unless-stopped
docker compose up -d

Visit http://your-server:3456 and create your account.

Migrating from Other Tools

Vikunja has built-in migration support for several popular tools:

To migrate from Todoist:

  1. Generate an API token in Todoist settings
  2. In Vikunja, go to Settings → Migration → Todoist
  3. Enter your API token
  4. Vikunja imports everything, preserving project structure

CalDAV Integration

This is Vikunja's killer feature for Apple users. CalDAV support means your Vikunja tasks appear natively in Apple Reminders:

  1. On your iPhone, go to Settings → Calendar → Accounts → Add Account → Other → CalDAV
  2. Enter your Vikunja URL: https://tasks.example.com/dav
  3. Enter your Vikunja username and password
  4. Your lists appear in Reminders

This also works with Thunderbird, GNOME Calendar, and any other CalDAV-compatible client. Tasks sync bidirectionally — add a task in Apple Reminders, it appears in Vikunja, and vice versa.

Keyboard Shortcuts and Quick Add

Vikunja's web interface supports keyboard-driven workflows:

The natural language parser understands:

Mobile Access

Vikunja doesn't have a dedicated mobile app, but it works well through several options:

Automations and Webhooks

Vikunja supports webhooks that fire on task events (created, updated, completed, deleted). Connect it to:

Backup

SQLite makes backups trivial:

cp /path/to/vikunja/vikunja.db /backup/vikunja-$(date +%F).db

For PostgreSQL:

docker exec vikunja-db pg_dump -U vikunja vikunja > /backup/vikunja-$(date +%F).sql

Include the files/ directory in your backup to preserve task attachments.

Known Limitations

The Bottom Line

Vikunja hits a sweet spot: it's powerful enough for project management with Kanban boards and Gantt charts, but simple enough for a personal to-do list. The CalDAV support means you can use native apps on your phone while keeping the data on your server.

If you're paying for Todoist Pro just to get reminders, or you've hit Trello's free tier limitations, Vikunja gives you everything both tools offer — and it runs on a Raspberry Pi. The migration tools make switching painless, and once you're set up, it just works.