Video tutorial coming soon.
✅ Deploy Vikunja — Self-Hosted Task & Project Manager
Deploy Vikunja on Ubuntu — an open-source project management tool with list, Kanban, Gantt, and table views, CalDAV sync, and sharing capabilities.
📦 Resources & Setup Scripts
Grab the automated bash script from GitHub to follow along with the video.
Quick Install:
wget -O vikunja-install.sh https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/vikunja/install.sh
chmod +x vikunja-install.sh
sudo bash vikunja-install.sh
Tutorial Steps
1 Download the Script
wget -O vikunja-install.sh https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/vikunja/install.sh
2 Make it Executable
chmod +x vikunja-install.sh
3 Run the Installer
The script installs Docker if needed, then deploys Vikunja with a preconfigured database.
sudo bash vikunja-install.sh
4 Access the Web UI
Open your browser and navigate to your server IP on port 3456 to complete setup.
http://<your-server-ip>:3456
5 Create Your First Project
Log in, create a project, and add tasks. Switch between list, Kanban, Gantt, and table views from the view toggle.
Ports Used
| Port | Purpose |
|---|---|
| 3456 | Vikunja Web UI |
Overview
Vikunja is an open-source to-do and project management application that provides personal task lists, team projects, Kanban boards, and Gantt views in one self-hosted package. It is a privacy-respecting alternative to Todoist or Asana with a clean, modern interface.
Why Use It
Vikunja is a fully self-hosted alternative to Todoist, Trello, and Asana. You own your tasks, deadlines, and project data with zero cloud dependency. It supports CalDAV sync so tasks appear in your calendar apps, and its REST API allows integration with automation tools like n8n. The open-source codebase means no vendor lock-in, no per-seat pricing, and no privacy concerns from cloud task managers harvesting your workflow data.
When You Need It
Who Should Use It
Real Use Cases
Main Features
How to Use After Installation
Security Best Practices
Ports and Firewall Notes
Vikunja listens on port 3456 (HTTP). Block this port from the internet using UFW or your cloud firewall — expose only your reverse proxy ports (80/443). The database port should never be publicly accessible.
Backup and Maintenance
Common Mistakes
Troubleshooting
Alternatives
Plane is the best alternative for software teams needing issue tracking with sprints and roadmaps. Gitea Issues works well if you're already hosting Gitea and want task tracking tied to repositories. Wekan is a simpler Kanban-only option with no frills. Todoist and TickTick are mature cloud options if self-hosting isn't a requirement.
When Not to Use It
Skip Vikunja if your team needs deep developer workflow integration like GitHub PR linking, CI/CD pipeline visibility, or complex sprint planning — Plane or Linear handle those better. Also skip it if you only need simple shared checklists — Nextcloud Tasks or a shared note app is lighter and easier to maintain.
PrismaTechWork Professional Help
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Frequently Asked Questions
What databases does Vikunja support?
Vikunja supports SQLite (default, zero-config), MySQL/MariaDB, and PostgreSQL. SQLite is fine for personal use or small teams. For larger deployments with concurrent users, PostgreSQL or MariaDB is recommended. You configure the database in vikunja's config.yml or via environment variables in the Docker Compose file.
How does CalDAV sync work with Vikunja?
Vikunja includes a built-in CalDAV server. In your CalDAV-compatible app (Thunderbird, Apple Calendar, GNOME Calendar), add a new CalDAV account pointing to http://your-server:3456/dav. Use your Vikunja username and password. After syncing, your tasks and their due dates appear as calendar events. Changes in either direction sync automatically.
Can I import tasks from Todoist or Trello?
Yes. Vikunja has a built-in migration tool under Settings → Migration. It supports importing from Todoist (via API token), Trello (via API key), Microsoft To-Do (via OAuth), and Vikunja export files. The importer preserves task names, due dates, labels, and lists. Some advanced features like Trello Power-Ups may not transfer perfectly.
Is there a mobile app for Vikunja?
Vikunja's web UI is mobile-responsive and works well in mobile browsers. There is an official Android app (Vikunja on F-Droid and Google Play) that connects to your self-hosted instance. An iOS app exists in the community. Alternatively, add your Vikunja URL to your phone's home screen as a PWA for a near-native experience.
How do I share a project with my team?
In Vikunja, go to the project settings and add team members by their username or invite them via link. You can assign read, write, or admin permissions per user. For larger organizations, create Teams under the admin panel and assign teams to projects in bulk. Users need accounts on your Vikunja instance — there is no guest access without accounts.
What's the difference between Vikunja and Plane?
Vikunja is a general-purpose task and project manager with personal and team use cases, CalDAV sync, and a clean UI. Plane is developer-focused with sprints, cycles, roadmaps, GitHub/GitLab integration, and issue tracking workflows similar to Jira. Choose Vikunja for general task management and to-do lists; choose Plane if your team does software development and needs a Jira replacement.
Can I use the Vikunja API for automation?
Yes. Vikunja exposes a full REST API documented at /api/v1/docs (Swagger UI). You can create tasks, update due dates, assign users, and manage projects programmatically. Generate API tokens in your account settings under API Tokens. This makes Vikunja a natural integration target for n8n workflows, custom scripts, or CI/CD pipelines that need to create tasks automatically.
How do I update Vikunja to the latest version?
Run `docker compose pull && docker compose up -d` in your Vikunja directory to pull the latest image and restart the containers. Vikunja handles database migrations automatically on startup. Your task data in the database volume is not affected by image updates. Check the Vikunja GitHub releases page for breaking changes before updating major versions.
