TiloBox
Back to directory
Vikunja project preview

Vikunja

A self-hosted task manager with projects, lists, Kanban boards, filters, sharing, reminders, and CalDAV access.

LicenseAGPL-3.0
GitHub stars5.1k
Last commit1 weeks ago
Tags7 topics
Task ManagementCaldavProductivitySelf HostedOpen SourceDeveloper ToolsKanban
Overview

Why consider Vikunja?

Vikunja is a self-hostable task management platform that helps individuals and teams organize work across multiple views. It provides full data ownership with support for lists, Kanban boards, Gantt timelines, and collaborative project sharing.

Guided learning

Learn Vikunja by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

4 min read 5 sections
In this guide5 sections

Overview and Core Architecture

Vikunja is a dedicated task management application that gives users full ownership over their personal and collaborative data. According to the official website, Vikunja provides open-source task management with lists, Kanban, Gantt, and more across all user projects. Unlike closed SaaS task trackers, you can run Vikunja on your own infrastructure under the AGPLv3, keeping complete control over your tasks and projects as detailed on vikunja.io.

For developers and organizations inspecting the software foundation, the core source code of the project is licensed under the GNU Affero General Public License Version 3, as documented in the official LICENSE file. The backend is written in Go, providing fast API response times, while the frontend delivers a responsive web interface for managing complex task hierarchies without external vendor lock-in, as seen on GitHub.

Project Organization and Views

At the foundation of everyday workflows, projects in Vikunja allow you to organize all of your tasks and create subprojects to organize everything hierarchically. This nested hierarchy keeps unrelated initiatives separated while enabling aggregated overviews at parent levels, as outlined in the features documentation. Individual tasks can contain due dates, reminders, checklists, priority levels, and file attachments.

Depending on how individual team members prefer to work, Vikunja lets you visualize workflows across classic list, Gantt chart, table, or Kanban board views depending on preference. The list view provides a quick checklist layout, the Kanban board enables visual progress tracking through custom columns, the Gantt timeline highlights deadline dependencies, and the table view surfaces compact metadata attributes for bulk triage, as shown in the Vikunja features overview.

Creating tasks rapidly is streamlined through keyboard shortcuts and natural language parsing. For instance, the quick add magic feature supports batch task creation in a single request when pasting lists into the input bar, allowing users to import multiple items instantly, as highlighted in the v2.5.0 release notes.

Team Collaboration and Smart Filtering

When scaling beyond solo productivity, team collaboration in Vikunja allows sharing projects with users or teams while task assignments clarify responsibilities. Permissions can be customized to grant read-only, read-write, or administrative privileges to specific collaborators, making the platform equally practical for family coordination or cross-functional team sprints, as detailed on the features page.

To navigate large task repositories without clutter, saved filters allow you to define custom task criteria once and access matching tasks whenever needed across boards. Users can combine parameters like assignee, label, due date window, and project scope into dynamic filter views that stay updated automatically, according to Vikunja features documentation.

Deploying Vikunja with Docker Compose

Self-hosting Vikunja is commonly executed using Docker Compose alongside a dedicated database service. In standard production environments, host permissions must grant Vikunja write access to the files directory before launching the container stack, as explained in the full Docker example documentation.

Initialize the files directory with standard ownership:

sh
1mkdir $PWD/files
2chown 1000 $PWD/files

The standard Docker Compose configuration connects Vikunja to PostgreSQL:

yaml
1services:
2 vikunja:
3 image: vikunja/vikunja
4 environment:
5 VIKUNJA_SERVICE_PUBLICURL: http://<the public ip or host where Vikunja is reachable>
6 VIKUNJA_DATABASE_HOST: db
7 VIKUNJA_DATABASE_PASSWORD: changeme
8 VIKUNJA_DATABASE_TYPE: postgres
9 VIKUNJA_DATABASE_USER: vikunja
10 VIKUNJA_DATABASE_DATABASE: vikunja
11 VIKUNJA_SERVICE_SECRET: <a super secure random secret>
12 ports:
13 - 3456:3456
14 volumes:
15 - ./files:/app/vikunja/files
16 depends_on:
17 db:
18 condition: service_healthy
19 restart: unless-stopped
20 db:
21 image: postgres:18
22 environment:
23 POSTGRES_PASSWORD: changeme
24 POSTGRES_USER: vikunja
25 volumes:
26 - ./db:/var/lib/postgresql
27 restart: unless-stopped
28 healthcheck:
29 test: ["CMD-SHELL", "pg_isready -h localhost -U $$POSTGRES_USER"]
30 interval: 2s
31 start_period: 30s

Managing File Permissions and Database Selection

Understanding execution context is critical when running containers in non-root environments. By default, Vikunja container processes run under user ID 1000 without a group assigned, which prevents unintentional privilege escalation while requiring corresponding filesystem permissions on the host mount, as documented in the Docker setup guide.

For storage architecture, supported database backends for Vikunja include PostgreSQL, MySQL, and SQLite depending on deployment scale. SQLite is well-suited for single-user lightweight installations, whereas PostgreSQL or MySQL are recommended for multi-user collaborative setups that demand concurrent transaction handling, as noted in the official deployment docs. Once running, navigate to port 3456 on your host IP to complete initial account registration and begin structuring your projects.

Related tools

More options with a similar category or technology profile.

Vikunja FAQs

Vikunja is listed as a Productivity tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

Vikunja is listed under the AGPL-3.0 license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

Vikunja is listed as an alternative to TickTick. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.