Deployment guide

Self-Host Vikunja on a VPS: Kanban, Gantt, Project Management

Deploy on a VPS Cloud →

Self-hosting4 min read

Self-Host Vikunja on a VPS: Kanban, Gantt, Project Management

Todoist, TickTick and Asana charge monthly subscriptions, harvest your productivity data and lock you out of your task history if you stop paying. Vikunja (AGPL-3.0, 24 k+ stars, v2.4.0 — released July 19 2026) is a radical alternative: a full-featured task and project manager you self-host on your own VPS. List, Kanban and Gantt views with date dependencies, recurring tasks, time tracking, CalDAV sync and a REST API — no recurring fees and no data leaving your infrastructure.

Why self-host a task manager

SaaS task tools monetise your productivity data, impose team member limits or double the price between plans. Self-hosting Vikunja inverts the model: all your tasks, attachments and history live in a SQLite volume on your VPS, exportable at any time via the REST API and syncable with your preferred calendar client via CalDAV. No cloud dependency, no premium plan needed to unlock Gantt or sprints.

What you get with a self-hosted Vikunja

  • List, Kanban and Gantt views — switch between views per project without migrating any data.
  • Task dependencies on the Gantt — draw relationships between tasks with dependency arrows and start/end dates.
  • Recurring tasks and reminders — set daily, weekly or monthly recurrences with email notifications.
  • CalDAV/WebDAV sync — connect Thunderbird, DAVx⁵ or Apple Reminders to your instance's /dav/ endpoint.
  • File attachments and inline images — attach documents, screenshots and files directly to tasks.
  • REST API with Swagger spec — automate task creation from CI pipelines or webhooks.
  • ~80 MB Docker image, under 256 MB RAM, SQLite by default — lightest self-hosted project manager in its class.

Requirements

A ServOrbit VPS with Ubuntu 24.04 and at least 512 MB RAM. Vikunja idles under 256 MB with SQLite, so it co-locates comfortably with other containers on any existing 1 GB instance. Docker and Docker Compose are provisioned automatically by AWX at deploy time. A domain name pointing to your VPS is required — Vikunja uses the public URL for email notification links and OAuth callbacks.

Deploy Vikunja on your VPS

01

One-click deploy from the ServOrbit marketplace

Open your ServOrbit control panel, go to Marketplace → Collaboration & Productivity → Vikunja, enter your domain (e.g. tasks.your-domain.com) and click Deploy. AWX installs Docker, generates an app secret, configures nginx with Let's Encrypt TLS and starts the Vikunja container in under 2 minutes.

02

Create the admin account

Navigate to https://tasks.your-domain.com. The first-run page prompts you to create an admin account with your email and a password. After login, set the instance name and choose whether registration is open or invite-only (Settings → General).

03

Create your first projects and tasks

Click the + button in the sidebar to create a project. Add tasks via the list view or switch to Kanban by clicking the board icon. Use labels, priorities and due dates to organise work. Invite teammates from Settings → Users.

04

Connect CalDAV (optional)

Vikunja exposes a CalDAV endpoint at https://tasks.your-domain.com/dav/. Point Thunderbird, DAVx⁵ or Apple Reminders to this URL with your Vikunja credentials to sync tasks to your calendar natively — no plugin required.

05

Logging in for the first time

Open the URL and click “Register” to create your account: there is no default login. Create it straight away — registration is open to anyone who knows the address.

Use case: sprint tracker for dev teams

Create one project per functional area (frontend, backend, ops). Add stories to the sprint via the Kanban view (Backlog → In Progress → Done). Switch to the Gantt view to visualise task dependencies and critical dates. Configure the REST API so your CI pipeline automatically opens a task on each new bug report and closes it on successful deploy — zero manual steps.

Backup and data portability

Vikunja stores all data in a SQLite database inside the vikunja-files volume. To back up: docker exec vikunja cp /app/vikunja/vikunja.db /tmp/backup.db && docker cp vikunja:/tmp/backup.db ./vikunja-backup.db. For attachments, back up the entire vikunja-files volume via docker run --rm -v vikunja-files:/data -v $(pwd):/backup alpine tar czf /backup/vikunja-files.tar.gz /data. The REST API also exposes a full export endpoint for all lists in JSON.

Deploy Vikunja on your own server

Self-host Vikunja on a ServOrbit VPS — open source, no subscription, all your tasks on your infrastructure.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.