Vikunja keeps your to-do lists and projects, as simple lists, kanban boards, tables or a timeline. It's for the shopping list and the house move alike, on your own server.
On this page
At a glance#
- What it is
- Tasks & Project Management Productivity
- Where it opens
- Web Interface
On its own port at
http://your-server:port, ortasks.your-domainonce you have a domain - Updates
- Automatic A backup is taken first, and it rolls back if the update fails
- Backups
- Included Part of the daily backup when that's switched on
- Copies
- As many as you like Run several copies, each with its own data
What it's good for#
Vikunja is a to-do app that grows with what you throw at it. A shopping list is a project with a few tasks. Redecorating the living room is a project with due dates, labels and a kanban board of "to buy", "in progress" and "done". A work plan can be a table or a timeline. You switch between those views of the same tasks whenever you like.
Tasks can have due dates, reminders, priorities, labels, attachments and sub-tasks, and projects can be shared with other people on your Vikunja, so a household can keep one shared list.
Signing in#
Vikunja has no admin account and no setup page: every account is an ordinary one. Left to itself, Vikunja lets anyone who can open its page sign up, which on a server others can reach means strangers making accounts and uploading files. So LibrePortal switches sign-ups off, and makes your account while installing.
The account is called admin. Its password is in the Login Details shown when the install finishes; press Welcome on the app's page to see it again. Open Vikunja with the Web Interface button and sign in. If you change the password inside Vikunja, LibrePortal's copy won't follow, so note the new one yourself.
Adding your household#
With sign-ups off, the simplest way to add people is to open them for a moment:
- Switch sign-ups on. On Vikunja's Config tab, switch Allow Sign-ups on and press Update Configuration.
- Have everyone register from the link on Vikunja's sign-in page.
- Switch them off again the same way, once everyone's in.
Each account only sees its own projects and what's shared with it, so nobody gets your tasks by registering. Vikunja starts public; unless you need it from outside, set it to private and use the VPN when you're out.
To check: check whether Vikunja itself can add users from its web page (vikunja.config says 'add people as users from inside Vikunja'); LibrePortal has no Tools for Vikunja, and upstream's documented way is the vikunja user create command
Installed with 0.4.6 or earlier?
Older installs have sign-ups open, and the update doesn't close them by itself. Press Update Configuration on the Config tab once: it sets Vikunja up again from LibrePortal's current version of it, with Allow Sign-ups off, and keeps your accounts and tasks. It doesn't make an admin account when Vikunja already has accounts, so keep signing in with your own. The Login Details may show an admin login on such an install, but that account was never made.
Everyday use#
Make a project for each area of your life, add tasks with the box at the top, and tick them off. Typing a task can set its details in one go; Vikunja's "quick add magic" understands things like *label, !3 for priority, and dates like "tomorrow" or "next Monday" in the title.
To share a project, open its Share option and add another user, or make a link that lets people see (or edit) it without an account.
On your phone#
Vikunja's web page works well on a phone, and you can add it to your home screen from the browser.
To see tasks in a phone's own task app, Vikunja speaks CalDAV. On Android, DAVx⁵ with Tasks.org or OpenTasks works: add a CalDAV account at your Vikunja address with /dav/principals/<your username>/ on the end, and sign in with your Vikunja username and password. Vikunja itself calls this support early and a bit rough, and says Thunderbird and iOS don't work with it yet.
Good to know#
- Its web address is fixed at install. Vikunja is told its own address when it's installed (
tasks.example.comwith a domain, your server's address and port without), and uses it in the links it makes. If you add a domain later, press Update Configuration on its Config tab so it learns the new one. - Email isn't set up, so Vikunja can't send reminder or "forgot password" emails.
- Backups include its database and attachments.
- Updates are automatic.
- More than one copy is possible, each with its own accounts.
What the install asks#
When you install Vikunja, LibrePortal asks for a little more than usual before it starts:
- Quick settings
Addresses and ports#
Vikunja has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.
| What it is | Who can reach it | With a domain |
|---|---|---|
| Web Interface | Anyone | tasks.your-domain |
Settings#
These are Vikunja's own settings on its Config tab. The settings every app shares, like backups, updates and where its data lives, are explained in App pages and settings.
| Setting | What it does | Starts as |
|---|---|---|
| Open Sign-ups | Let anyone who can open the page make their own account. Off: you add people from inside Vikunja. | Off |
In its config file#
A few more aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.
| Setting | What it does | Starts as |
|---|---|---|
NameCFG_VIKUNJA_DISPLAY_NAME |
What this app is called on your dashboards. Leave empty to use its usual name | Empty |
Show on the LibrePortal DashboardCFG_VIKUNJA_SHOW_ON_DASHBOARD |
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard Choices: true, false |
true |
Error reportsCFG_VIKUNJA_TELEMETRY |
Whether Vikunja may send error reports about this server and its web page to Sentry Choices: true, false |
false |
Detailed logsCFG_VIKUNJA_VERBOSE_LOGS |
Whether Vikunja writes its normal, chattier logs, including who connected, instead of only warnings and errors. Choices: true, false |
false |
Debug logging for 24 hoursCFG_VIKUNJA_DEBUG_LOGS |
Turn on to see everything Vikunja is doing while you look for a problem; it turns itself off after 24 hours. Choices: true, false |
false |
Works with#
These are the other apps Vikunja knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.
- Email: Sends reminders, password resets and task notifications through your mail server, from an account of its own. LibrePortal sets this up by itself when both are installed.
- Grafana: Shows dashboards for the apps that have one. works with every app
- Prometheus: Collects metrics from the apps that can export them. works with every app
- Uptime Kuma: Watches your apps and shows when one goes down. works with every app
Privacy and security#
All clear Vikunja is your task manager and keeps everything on your server. It sends nothing out unless a person picks Gravatar profile pictures.
What leaves this server#
- Gravatar, only if a person chooses it as their avatar
- Email reminders use the mail server you choose
What LibrePortal turns off#
- Detailed logs and per-request access logging (switchable in Config)
- Error reporting to the maker's Sentry (switchable in Config)
Licence: AGPL-3.0. Audited: 21 October 2026. See the privacy of every app and the Promise.
Sources#
Under the hood#
- It runs this image:
vikunja/vikunja:2.7.1@sha256:f7dc8428d10aef17f3075886d3c1c022f566ec456f88985f02c137f4fc534576. - It can sit behind Authelia's sign-in once Authelia is installed.
- Its own project and documentation: vikunja.io
Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.