Why replace Jira in 2026
Atlassian has recently closed new subscriptions to Jira Software Data Center. Teams already under licence can renew, but any organisation without an existing contract must now use Jira Cloud — a SaaS model with per-seat billing that removes your infrastructure control. Linear Enterprise, another benchmark for tech teams, raised its prices earlier this year, affecting mid-sized teams using it for sprints and GitHub integration.
This context is pushing a growing number of agencies to evaluate self-hosted open-source alternatives. Two projects stand out: Vikunja, a lightweight Go single-binary task manager under the AGPL-3.0 licence, and Plane CE (Community Edition), a more fully-featured project management platform built around five Docker services, also under AGPL-3.0. The two have very different profiles: understanding their VPS requirements and functional limits is the first decision to make before migrating.
Vikunja vs Plane CE — comparison table
| Criterion | Vikunja | Plane CE |
|---|---|---|
| RAM required | 512 MB (light production) | ≥ 4 GB (8 GB recommended) |
| Licence | AGPL-3.0 | AGPL-3.0 |
| Kanban | Native (Kanban, list, Gantt views) | Native (Board view, customisable states) |
| Gantt | Native | Via modules and due dates |
| Sprints / cycles | Not natively present — simulable with lists | Native cycles (start, end, progress) |
| REST API | Complete, OpenAPI documented | Complete, OpenAPI documented |
| Git integrations | Outgoing webhooks, no native GitHub/GitLab integration | Native GitHub and GitLab integration in settings |
| Multi-tenant / workspaces | Yes — projects and teams separated by namespace | Yes — distinct workspaces, members and roles per workspace |
| Mobile application | Official native iOS and Android apps | PWA only (no published native app) |
Vikunja — lightweight and versatile
Vikunja strengths
- Minimal memory footprint — 512 MB of RAM is sufficient for production; an entry-level VPS can run Vikunja without resizing.
- Go single binary — one binary bundles the API server and background task service; the Docker deployment reduces to a single application service and a database.
- Multiple native views — Kanban, list, Gantt and summary table are available with no additional extension or plugin.
- Complete REST API — every entity (task, list, project, user, label) is exposed via an OpenAPI-documented API, making agency workflow automation straightforward.
- Native mobile applications — official iOS and Android apps are published in the stores, which is rare among open-source task management tools.
- AGPL-3.0 licence — the source code is public, and community contributions are fast, particularly on security patches.
Install Vikunja on a VPS with Docker Compose
Create the working directory
Connect to your VPS and create a dedicated directory: mkdir -p /opt/vikunja && cd /opt/vikunja. This directory will hold the docker-compose.yml file, the config.yml configuration file, and persistent data.
Write the docker-compose.yml file
Create a docker-compose.yml file with two services: the database and Vikunja itself. Minimal example with PostgreSQL:
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: vikunja
POSTGRES_PASSWORD: changeme
POSTGRES_DB: vikunja
volumes:
- vikunja-db:/var/lib/postgresql/data
vikunja:
image: vikunja/vikunja:latest
restart: unless-stopped
ports:
- "127.0.0.1:3456:3456"
environment:
VIKUNJA_DATABASE_TYPE: postgres
VIKUNJA_DATABASE_HOST: db
VIKUNJA_DATABASE_USER: vikunja
VIKUNJA_DATABASE_PASSWORD: changeme
VIKUNJA_DATABASE_DATABASE: vikunja
VIKUNJA_SERVICE_PUBLICURL: https://vikunja.your-domain.com
volumes:
- vikunja-files:/app/vikunja/files
depends_on:
- db
volumes:
vikunja-db:
vikunja-files:Start the services
Start the stack with docker compose up -d. On first start, Vikunja applies database migrations automatically. The interface is available on port 3456 within seconds — Vikunja starts very quickly thanks to its Go binary.
Configure the HTTPS reverse proxy
Point Nginx or Caddy to 127.0.0.1:3456. With Caddy, the configuration is:
vikunja.your-domain.com {
reverse_proxy 127.0.0.1:3456
}Caddy manages the Let's Encrypt certificate automatically. With Nginx, add Upgrade and Connection headers to proxy WebSockets correctly if you use real-time notifications.
Create the first administrator account
Open your subdomain in a browser. Vikunja displays a registration screen: the first account created automatically receives administrator rights. Then enable two-factor authentication (TOTP) from the account settings — essential if the instance is publicly exposed.
Verify backups
Schedule a daily backup of the PostgreSQL volume and the vikunja-files volume. A sufficient command: docker exec vikunja-db-1 pg_dump -U vikunja vikunja | gzip > /backup/vikunja-$(date +%Y%m%d).sql.gz. Test restoration on a test environment before migrating your production data.
Plane CE — enterprise features in open source
Plane CE strengths
- Native cycles (sprints) — create cycles with start and end dates, track progress by points or issues, and archive completed cycles without losing history.
- Modules and cross-project groupings — group issues from different projects in a thematic module, useful for agencies managing multiple clients in parallel.
- Native Jira importer — Plane CE includes a Jira import connector in Settings > Importers, transferring issues, statuses, priorities, comments and members in a few clicks.
- Native GitHub and GitLab integrations — link your repositories directly from workspace settings; commits and pull requests appear in the related issues.
- Clear Docker architecture — five documented services (web, API, worker, PostgreSQL, Redis) and optional MinIO for file storage; each service scales independently.
- Integrated wiki pages — each project has a structured documentation space, available without an external module.
- Complete REST API — all Plane entities are accessible via a versioned API; Python and JavaScript SDKs are maintained by the community.
- AGPL-3.0 licence — the source code is auditable, and the GitHub community counts several thousand active contributors.
Install Plane CE on a VPS
Check system requirements
Plane CE requires at least 4 vCPU and 8 GB of RAM for a comfortable production deployment. Below this threshold, Celery workers compete for memory with PostgreSQL and Redis, causing unexpected restarts. Verify that Docker Engine ≥ 24 and Docker Compose ≥ 2.20 are installed: docker --version && docker compose version.
Download the official deployment script
Plane CE provides an installation script that generates the docker-compose.yml and .env files with random secrets:
curl -fsSL https://raw.githubusercontent.com/makeplane/plane/master/deploy/selfhost/install.sh | bashThe script creates an /opt/plane directory and places all required files there. Review the generated .env before continuing: SECRET_KEY, DATABASE_URL and REDIS_URL variables are pre-filled with secure random values.
Configure the domain in the .env file
Open /opt/plane/.env and set WEB_URL=https://plane.your-domain.com. If you use MinIO for file storage, also set AWS_S3_ENDPOINT_URL, AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. Disable MinIO storage if you prefer to store files on the local volume — set USE_MINIO=0.
Start the five Docker services
From /opt/plane, run docker compose up -d. The five main services start: web (React interface), api (Django REST), worker (Celery), beat (Celery periodic tasks), and db (PostgreSQL). Redis is included as a sixth service for caching and message queuing. Wait approximately two to three minutes for Django migrations to complete before opening the interface.
Configure the HTTPS reverse proxy
Plane exposes the web service on port 3000 and the API on port 8000 internally. Your reverse proxy must route both: the React interface on / and API requests on /api/ and /auth/. With Nginx, use two location blocks in the same server block pointing to 127.0.0.1:3000 and 127.0.0.1:8000 respectively. WebSockets are used for real-time updates — forward the Upgrade and Connection headers.
Create the first workspace
Open your domain in a browser. Plane displays a registration screen: create an administrator account, then follow the workspace creation wizard. Import your first project from Jira or create a blank project to validate the installation. Invite members from Settings > Members > Invite Members — each member receives an email invitation link.
Plan backups for the five stateful services
Plane has five stateful services to back up: PostgreSQL (volume pgdata), Redis (volume redisdata), and MinIO if enabled (volume uploads). Schedule daily PostgreSQL dumps (pg_dump from the db container), and archive Docker volumes with your preferred backup tool. Systematically test restoration on a test VPS before putting the main instance into production.
Security — how quickly both projects respond
The question of security maturity in open-source tools is legitimate, and both projects offer concrete answers. Both projects have shown a quick patch turnaround, with fixes published within days of disclosure. A fix was integrated in Vikunja within ten days of public disclosure, demonstrating the fast-response capability of a well-organised open-source community. The practical lesson: keep Vikunja up to date via docker compose pull && docker compose up -d on a weekly cycle, and enable security notifications on the GitHub repository (Watch > Security alerts).
Plane CE follows a monthly release cycle with a detailed public changelog. Security issues are handled in a private channel before publication, following a documented responsible disclosure process in the repository. For both tools, the audit trail of user actions (who changed what, when) is available in application logs — exportable to meet internal compliance requirements.
To import from Jira into Plane CE: back up your Plane database before starting (docker exec plane-db-1 pg_dump -U plane plane > backup-before-import.sql). Then, in Plane, go to Settings > Importers > Jira. The importer asks for your Jira URL, a Jira Personal Access Token, and the project name to import. Issues, statuses, priorities, comments and members are transferred in a single operation. Also back up your database after the import and verify the total number of imported issues before revoking Jira access.
Decision guide — when to choose each tool
Choose Vikunja if your team manages primarily tasks and lists without a formalised sprint process, if your VPS is limited to 1 or 2 GB of RAM, if you need native mobile applications for teams on the move, or if you prefer a simple architecture to maintain (a single binary, a single database). Vikunja is also an excellent choice if you host multiple client projects on the same instance thanks to its namespace system.
Choose Plane CE if your team is coming from Jira and wants to find familiar concepts — cycles (sprints), customisable states, and a native Jira importer. Plane CE is better suited to agencies managing cross-functional workflows (multi-project modules), needing GitHub or GitLab integration directly in issues, or wanting a tool whose interface will be immediately recognisable to developers used to Linear or Jira. The 4 to 8 GB RAM requirement is the main constraint: verify your VPS before choosing.
In all cases, start with a pilot project on a separate instance before migrating production. The effort of migrating a project management tool is rarely neutral for a team — planning two weeks of cohabitation between the old and new tool allows validation of status mapping, workflow habits and CI integrations without blocking deliveries.
ServOrbit agency resources
ServOrbit offers Linux VPS with full root access, sized from 1 vCPU / 1 GB RAM (sufficient for Vikunja) to 8 vCPU / 32 GB RAM (comfortable for Plane CE with several dozen users). All VPS come with a Docker-ready image, secure SSH access, and high-bandwidth connectivity on internal traffic. For agencies managing multiple clients, our VPS offers include the ability to provision isolated instances per client from a centralised console.
To go further with your migration from Atlassian or Linear tools, consult our related guides: migrating from Jira to OpenProject or Plane, the context of Jira Data Center's closure and its implications for existing teams, and our full comparison of self-hosted project management tools including Huly.