Skip to main content

Vikunja Hosting on Hostim.dev

Vikunja is an open-source, self-hosted to-do and project management app. It has lists, Kanban boards, Gantt and table views, labels, reminders, sharing with teams and links, and a CalDAV server for your calendar app.

API and web frontend ship as one binary in one container, so there is only one thing to run.

Self-host Vikunja with Docker Compose (minimal)​

Vikunja runs on SQLite, PostgreSQL or MySQL. This example uses PostgreSQL and keeps task attachments in /app/vikunja/files.

services:
vikunja:
image: vikunja/vikunja:latest
restart: unless-stopped
environment:
VIKUNJA_SERVICE_PUBLICURL: https://tasks.example.com/
VIKUNJA_SERVICE_SECRET: change-me-to-a-long-random-string
VIKUNJA_DATABASE_TYPE: postgres
VIKUNJA_DATABASE_HOST: db
VIKUNJA_DATABASE_DATABASE: vikunja
VIKUNJA_DATABASE_USER: vikunja
VIKUNJA_DATABASE_PASSWORD: change-me
volumes:
- ./files:/app/vikunja/files
ports:
- "3456:3456"
depends_on:
- db
db:
image: postgres:17
restart: unless-stopped
environment:
POSTGRES_DB: vikunja
POSTGRES_USER: vikunja
POSTGRES_PASSWORD: change-me
volumes:
- ./db:/var/lib/postgresql/data

The container runs as user 1000, so create ./files first and make it writable by that user (mkdir -p files && sudo chown 1000:1000 files). If Vikunja starts before PostgreSQL is ready, it exits and Docker restarts it. Run docker compose up -d and open http://<your-server>:3456. For HTTPS you also need a reverse proxy and a certificate. More stacks are in our Docker Compose library.


Deploy Vikunja on Hostim.dev (One-Click)

The hosted route: no VPS, no proxy, no certificates. The template runs the official image with a managed PostgreSQL database, a persistent volume, a domain and HTTPS.

Try it Yourself

Guest project runs for 1 hour. Log in to save and extend to 5 days.

Why Host Vikunja on Hostim.dev?​

  • One-click Docker deployment
  • Managed PostgreSQL database
  • Persistent volume for attachments
  • Automatic HTTPS and domain
  • Real-time logs and metrics

What's included​

ResourceDetails
Appvikunja/vikunja:latest Docker image
Volume/app/vikunja/files (attachments, backgrounds, avatars)
DatabaseManaged PostgreSQL
DomainFree *.hostim.dev subdomain
SSLLet’s Encrypt (auto-enabled)
Port3456

The template sets these variables for you:

VariableValue
VIKUNJA_SERVICE_PUBLICURLhttps://<your app domain>/
VIKUNJA_SERVICE_SECRETRandom 32-character string, generated on deploy
VIKUNJA_SERVICE_IPEXTRACTIONMETHODxff, so login rate limits see the visitor's IP, not the proxy's
VIKUNJA_DATABASE_TYPEpostgres
VIKUNJA_DATABASE_HOST<host>:<port> of the managed PostgreSQL
VIKUNJA_DATABASE_DATABASE, _USER, _PASSWORDDatabase name and credentials

How to Deploy​

  1. Go to your Hostim.dev dashboard.
  2. Click Create Project → Use a Template.
  3. Select Vikunja.
  4. Choose a resource plan.
  5. Deploy.
  6. Open the app URL, click Create account and register your first user.

Registration is open by default, so anyone who finds the URL can sign up. Once your own accounts exist, set VIKUNJA_SERVICE_ENABLEREGISTRATION=false on the app and redeploy. Users you already have keep working.


FAQ​

Where does Vikunja store its data?

Tasks, projects, users and settings are in the managed PostgreSQL database. Task attachments, uploaded backgrounds and avatars are files in /app/vikunja/files, on a persistent volume. We restarted the app three times in a row with tasks and an attachment in place, and nothing was lost.

What is VIKUNJA_SERVICE_SECRET?

Vikunja signs login sessions and share links with it. The template generates a random value on deploy. If you change it, everyone has to log in again and old share links stop working. API tokens and CalDAV tokens keep working. Without a fixed secret, Vikunja makes a new one at every start. Older guides call it VIKUNJA_SERVICE_JWTSECRET; that name still works but is deprecated.

How do I get email reminders?

Vikunja sends reminders and password resets only when a mailer is configured. Set VIKUNJA_MAILER_ENABLED=true and the VIKUNJA_MAILER_HOST, VIKUNJA_MAILER_PORT, VIKUNJA_MAILER_USERNAME, VIKUNJA_MAILER_PASSWORD and VIKUNJA_MAILER_FROMEMAIL variables for your SMTP provider, then redeploy. See the config options.



Three things change or matter once the mailer is on. New accounts must confirm their email address before they can log in. Each user turns on reminder emails in Settings → General, or you set VIKUNJA_DEFAULTSETTINGS_EMAIL_REMINDERS_ENABLED=true for new users. Set VIKUNJA_MAILER_FROMEMAIL to an address your SMTP provider accepts; the default mail@vikunja is usually rejected.

Can I sync tasks with my calendar app?

Yes. CalDAV is on by default. In Vikunja, open Settings → CalDAV to get the URL and create a token for your client.

Can I run more than one replica?

Keep the app at 1 replica. By default Vikunja keeps its cache, login-failure counters and rate limits in memory, so each replica would have its own. Running several needs Redis: VIKUNJA_REDIS_ENABLED=true, VIKUNJA_REDIS_HOST, VIKUNJA_KEYVALUE_TYPE=redis, and VIKUNJA_RATELIMIT_STORE=keyvalue for shared rate limits.

Which timezone does Vikunja use?

GMT by default, and new users inherit it. Reminder and overdue emails use each user's timezone, so set VIKUNJA_SERVICE_TIMEZONE (for example Europe/Berlin) or have users set theirs in their settings.

How do I use my own domain?

Add the domain to the app in the Hostim.dev dashboard and point a DNS record at it. HTTPS is set up for it automatically. Then change VIKUNJA_SERVICE_PUBLICURL to the new address and redeploy.

How do I back up Vikunja?

Back up the PostgreSQL database and the /app/vikunja/files volume. Together they hold the whole state.

How do I update Vikunja?

The :latest tag follows the newest release. Vikunja runs its database migrations on start, so back up the database and the volume before an update. To stay on one version, change the image tag (for example vikunja/vikunja:2.7.1) and redeploy. Docker: docker compose pull && docker compose up -d. Hostim.dev: redeploy the app.


Alternatives​

  • Planka — Kanban boards in the style of Trello
  • Wekan — open-source Kanban board
  • Focalboard — project boards, also part of Mattermost

Source + Docs​


Looking for something else? Browse all templates →


Try it now​

Deploy Vikunja Now – in less than 60 seconds