To-do list-builders and note-taking apps provide an effective way to jot down your ideas and keep track of your essential tasks. However, many of the popular solutions require paid subscriptions to unlock the full set of features. With your notes stored on external servers, you’ll have to contend with the lack of privacy as well.

Thankfully, you could self-host your own to-do list-building servers to record, manage, and sync your ideas across different devices. Vikunja remains a solid self-hosted note-taking app to organize your tasks, and here’s a quick article to help you get it running on your home lab.

What’s Vikunja anyway?

And why should you use it?

The List view in Vikunja

Rather than providing a full-on PKM system consisting of mermaid diagrams, mind maps, coding provisions, and other facilities, Vikunja is more concerned with helping you create to-do lists and track your tasks like a pro. It’s fairly lightweight and can run on practically any device – including Raspberry Pi SBCs – while its beginner-friendly UI is loaded with useful facilities.

For instance, you can invite multiple team members to collaborate on a task, making Vikunja a solid alternative to expensive workspace tools. Likewise, you can switch between tables, lists, Gantt charts, and Kanban boards to stay on top of your projects. You can also set up relations between tasks, create sub-projects for larger ideas, and import projects from other to-do list apps.

Setting up a Vikunja instance

Depending on your specific OS, there are a couple of ways to deploy your Vikunja server. There’s the Proxmox VE-Helper Scripts repository, which provides a straightforward method to deploy a Vikunja LXC if you’re on Proxmox.

  1. Select your favorite node on the Proxmox web UI and switch to its Shell tab.
    Accessing the primary node's Shell tab in Proxmox
  2. Paste this command into the terminal interface:
    bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/vikunja.sh)"
    The command to deploy a Vikunja instance
  3. Tap Enter when Proxmox prompts you to create a new LXC container.
    Agreeing to install the Vikunja LXC
  4. If you don’t wish to upload diagnostics of your server, feel free to hit No.
    Selecting No when asked to send installation details
  5. Choose Default Settings and wait for Proxmox to finish installing the Vikunja instance.
    Picking Default Settings when deploying Vikunja
  6. You can use the IP address displayed at the bottom of the terminal to access the Vikunja web UI.
    Accessing the Vikunja web UI from Proxmox

For non-Proxmox users, you can configure a Vikunja container inside a Linux system (or even a virtual machine). Assuming you’ve already set up Docker Engine beforehand,

  1. Open the terminal app bundled with your Linux distro.
  2. Use the mkdir command to create the files and db directories.
    mkdir $PWD/files $PWD/db
    Running the mkdir command in Debian
  3. Execute chown to grant ownership rights of the folders to your user.
    chown 1000 $PWD/files $PWD/db
    Using the chown command to grant privileges to user
  4. Use the docker run command to get the Vikunja server up and running.
    docker run -p 3456:3456 -v $PWD/files:/app/vikunja/files -v $PWD/db:/db vikunja/vikunja
    Executing docker run to deploy a Vikunja server
  5. To access the web UI, enter http://localhost:3456 into your favorite browser.
    Accessing the Vikunja server on Debian
    Alternatively, you can access the Vikunja web UI from any other device on your network by replacing the localhost string with the IP address of the virtual machine/PC running the Vikunja container.

Meanwhile, certain distros like UmbrelOS, YunoHost, and TrueNAS include Vikunja in their app stores, providing an easy way to add the tool to your self-hosting repertoire.

Configuring the Vikunja web UI

Regardless of the method you’ve used when deploying the Vikunja server, you’ll need to create a local account inside the web UI.

  1. When Vikunja prompts for your login details, click on the Create account button.
    Clicking on the Create Account button in Vikunja
  2. Enter a Username, Email address, and Password before tapping Create account once again.
    Creating an account in Vikunja

Once you’ve created the account, Vikunja's Overview tab should appear, and you’re free to start tinkering with the tool. Although Vikunja’s UI is easy to work with even for complete beginners, here are some tips to help you get started.

  • Inside the Overview tab, you can enter the Name of a task and tap the Add button to make it visible in your to-do list.
    The Vikunja Overview tab
  • Clicking on each task will reveal the Description and Comments fields alongside a host of options on the right side of the screen.
    Details of a task in Vikunja
    You can play around with these options to add more details to your project tasks and assignments.
  • If you wish to organize your tasks, you can create labels using the tab with the same name.
    Creating a Label in the Vikunja web UI
    Labels are akin to the tags field you'd use to organize your notes inside conventional PKM systems.
  • Meanwhile, the Teams tab lets you invite more users to your Vikunja projects.
    The teams tab in Vikunja
    You can also use it to grant extra privileges to your team members.
  • Finally, there’s the Inbox section, where you can switch between Lists, Gantt, Table, and Kanban views.
    The Inbox tab in Vikunja

Staying on top of your projects with Vikunja

The Vikunja web UI

With that, you should be ready to use Vikunja as your to-do list creation and note-taking companion. If you want to switch from Notion, Monday, Airtable, or other task management platforms to a self-hosted app, Vikunja is a simple yet effective alternative.

But once your ideation and project-building team starts growing, you might want to look into the more feature-laden NocoDB server. Alternatively, TriliumNext Notes is the better option for home labbers who require a hardcore personal knowledge management server for their note-taking needs.