Skip to content
Greffon
Tutorial

Self-Host Vikunja with Greffon

Your to-do list knows your whole life: work, health, the people you owe a reply. That is a quiet reason to keep it on a box you own. Here is the honest setup for Vikunja on a greffer.

GLGreffon Labs5 min read
~/blog/self-host-vikunja

A task manager ends up holding more than tasks. It has your deadlines, the names of people you are dealing with, the shape of every project you are in the middle of. That is a fairly complete picture of your life to hand to a service you rent. Vikunja is a self-hosted to-do and project management app, and grafting it onto a greffer keeps that picture on hardware you own. Greffon takes the fiddly parts off your plate.

Why own your task list

Vikunja covers the things you would expect from a modern task app: lists, Kanban boards, a calendar and Gantt view, labels, sub-tasks, reminders, and sharing. It is a single, modest service that runs comfortably on a small greffer. Owning it means the data lives on your machine, and there is no plan tier deciding how many projects you are allowed to keep.

Graft it from the catalog

On a greffer you do not hand-write a compose file or wire a reverse proxy. Pick Vikunja from the catalog and graft it onto your greffer. Greffon issues the certificate and routes the app, so it comes up reachable over HTTPS from the first start. The signing secret that Vikunja uses for auth tokens is generated for you at instance creation, so there is nothing to paste in by hand.

Register the first account quickly
By default, Vikunja lets anyone who can reach the instance register an account. Create your own account right after the first start, then turn off open registration from Vikunja's own settings so the instance is not open to whoever finds the URL.

Reach it from anywhere

A task list is only useful if you can reach it from your phone, your laptop, and the browser you actually live in. On the same network as your greffer that works the moment it starts. To reach it from anywhere else, you have two honest options.

The simplest is tunnel mode: a greffer connects outbound to the manager's tunnel and serves its apps without opening a single inbound port, which is the answer for a box behind NAT or CGNAT with no public IP. Vikunja is a plain HTTP app, so the tunnel carries it without a catch. If you would rather expose the greffer directly, port forwarding plus dynamic DNS still works. Either way the app stays reachable over HTTPS.

Reminders need email

Reminders, task assignment notices, and email-based password reset only work if Vikunja can send mail. This is the part that is easy to skip and then wonder why no notifications arrive. Vikunja takes its mail settings from SMTP, and Greffon wires those through when you configure mail on the instance, so you point it at an SMTP relay you already use rather than running your own mail server.

Running a mail server from home rarely works
Do not try to send mail directly from a home greffer. Residential IP ranges are blocked by most receivers, so the mail silently lands in spam or nowhere. Use an SMTP relay (a transactional mail provider, or mail you already control) for the reminder emails to actually arrive.

Storage and backups

Vikunja is light. By default it keeps its data in a single file-backed database plus an attachments folder, so it does not need much memory or disk to run. That same simplicity is what makes the backup story straightforward: there is a clear set of files to copy, and losing them means losing every task and attachment at once.

Greffon handles TLS and routing today, and native one-click backups are coming in M2. Until then, bring your own backup tool (restic or borgbackup are the usual choices), back up the Vikunja data on a schedule, and keep a copy off the greffer.

A backup you have not restored is not a backup
Once you have moved real work into Vikunja, test a restore once before you rely on it. Five minutes now is cheaper than rebuilding a year of projects from memory.

Keep it always-on

A task list you check first thing in the morning and last thing at night has to be up when you are. Run it on an always-on greffer, a small VPS, a mini-PC, or a free Oracle Cloud box, rather than a laptop that sleeps. The Oracle walkthrough is a good place to get a greffer running before you graft Vikunja onto it.

FAQ

Is there a mobile app?
Yes. Vikunja has official mobile apps, and the web app works well on a phone browser. Point either at your own instance URL during login and it uses your greffer instead of a hosted service.
Why aren't my reminder emails arriving?
Vikunja can only send reminders and notifications if it has working SMTP. Configure mail on the instance and point it at an SMTP relay you control. Sending mail directly from a home IP usually lands in spam or nowhere.
Can the built-in tunnel expose Vikunja for me?
Yes. Vikunja is a plain HTTP app, and the tunnel carries HTTP and TCP traffic, so a greffer behind NAT or CGNAT can serve it with no inbound ports open.
How much does it need to run?
Not much. Vikunja is a single modest service with a file-backed database by default, so it runs comfortably on a small greffer. The main thing to plan for is backups of its data, since that is where every task and attachment lives.
GL
Greffon Labs
We build Greffon, the simplest way to turn any machine into a server you own.

Ready to turn on your greffer?

Install in minutes. Deploy each app in seconds. Your server, your apps.

Read the docs