Layer 5 · self-hosting reality check
What it actually takes to self-host Vikunja
The docs say Not stated by the vendor. Cloudron's package runs it within the default 256 MB app-container limit and runs PostgreSQL separately. In practice you want 1 GB for Vikunja plus PostgreSQL on one box. The docs say you probably won't need Redis until you have more than a handful of users. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from Trello alternatives, where Vikunja is one of the picks.
Wondering whether you need to at all? Is Trello free? — what the free tier actually allows, and where the wall is.
| RAM — documented minimum | Not stated by the vendor. Cloudron's package runs it within the default 256 MB app-container limit and runs PostgreSQL separately |
|---|---|
| RAM — what it really needs | 1 GB for Vikunja plus PostgreSQL on one box. The docs say you probably won't need Redis until you have more than a handful of users |
| CPU | 1 vCPU; not stated by the vendor |
| Disk | The files/ directory for attachments, plus the database. Both stay small unless people attach large files. |
| Monthly cost | $5–6/mo for a 5–20 user instance on a 1 GB VPS |
| Setup time | 20 minutes with docker compose, an hour with a reverse proxy and TLS |
| How you install it | One vikunja/vikunja image contains both the API and the web frontend. The docs' compose pairs it with PostgreSQL 18, and MariaDB and SQLite versions exist. Create files/ and chown it to UID 1000 before the first start. |
| Ongoing maintenance | Frequent releases. 2.0.0 in February 2026 fixed four critical security issues, and 2.1 through 2.6 followed by August. Upgrade promptly, and back up the database and files/ separately. |
| Where it stops scaling | A single Go binary. SQLite is fine for a handful of users. Past that, the docs recommend MySQL or PostgreSQL, plus Redis for caching. |
The thing that catches people out
Vikunja will not work until VIKUNJA_SERVICE_PUBLICURL exactly matches the address people type. With CORS on, which is the default, it refuses to start without it ('service.publicurl is required when cors.enable is true'). The bundled frontend then sends every browser to that one URL, so giving the same instance both a LAN name and a public name breaks (open issue #2827). Pick one https hostname and set it before the first start. Also chown files/ to UID 1000, and use PostgreSQL rather than SQLite once you have more than a handful of users.
When not to self-host Vikunja
You need the same instance on two hostnames (LAN and public), or you need Jira-style workflows and permission schemes. Plane or OpenProject fit those. Vikunja is a task manager for individuals and small teams.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 5 self-hosting guides
- Self-hosting LibreOffice2 GB with a large spreadsheet open
- Self-hosting ONLYOFFICE6 GB for the Document Server with a handful of concurrent editors
- Self-hosting Collabora Online4 GB, and roughly 1 GB per 20 concurrent documents
- Self-hosting CryptPad2 GB for a small instance
- Self-hosting Mattermost4 GB for a team of 50 with PostgreSQL on the same box
- Self-hosting Rocket.Chat6 GB with MongoDB on the same machine
Common questions
- How much RAM does Vikunja actually need?
- 1 GB for Vikunja plus PostgreSQL on one box. The docs say you probably won't need Redis until you have more than a handful of users in practice. The documented minimum is Not stated by the vendor. Cloudron's package runs it within the default 256 MB app-container limit and runs PostgreSQL separately, which is the figure at which the process starts rather than the figure at which it works under real use. 1 vCPU; not stated by the vendor alongside it.
- What does self-hosting Vikunja cost per month?
- $5–6/mo for a 5–20 user instance on a 1 GB VPS This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for frequent releases. 2.0.0 in February 2026 fixed four critical security issues, and 2.1 through 2.6 followed by August. Upgrade promptly, and back up the database and files/ separately.
- How long does it take to set up Vikunja?
- 20 minutes with docker compose, an hour with a reverse proxy and TLS, via One vikunja/vikunja image contains both the API and the web frontend. The docs' compose pairs it with PostgreSQL 18, and MariaDB and SQLite versions exist. Create files/ and chown it to UID 1000 before the first start..
- When should I NOT self-host Vikunja?
- You need the same instance on two hostnames (LAN and public), or you need Jira-style workflows and permission schemes. Plane or OpenProject fit those. Vikunja is a task manager for individuals and small teams.
- What is the most common mistake when self-hosting Vikunja?
- Vikunja will not work until VIKUNJA_SERVICE_PUBLICURL exactly matches the address people type. With CORS on, which is the default, it refuses to start without it ('service.publicurl is required when cors.enable is true'). The bundled frontend then sends every browser to that one URL, so giving the same instance both a LAN name and a public name breaks (open issue #2827). Pick one https hostname and set it before the first start. Also chown files/ to UID 1000, and use PostgreSQL rather than SQLite once you have more than a handful of users.