
Deploy Vikunja on Your Own Server
Open Source Task Management
Want to deploy Vikunja on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.
What is Vikunja?
Vikunja is an open-source task management application that helps you keep track of your tasks and projects. To get started, follow the instructions below to deploy Vikunja on your Senate server.
Self-Host Vikunja
Follow these steps to deploy on your own server.
Install Docker
Skip this step if Docker is already installed on your server.
curl -fsSL https://get.docker.com | sh
Configure
Customize the settings below. Defaults work for most cases.
General
Deploy
Copy the configuration and run it on your server.
services:
vikunja:
image: vikunja/vikunja:0.24
environment:
VIKUNJA_DATABASE_DATABASE: vikunja
VIKUNJA_DATABASE_HOST: vikunja-db
VIKUNJA_DATABASE_PASSWORD: 63f147cf41bc7101
VIKUNJA_DATABASE_TYPE: mysql
VIKUNJA_DATABASE_USER: vikunja
VIKUNJA_DEFAULTSETTINGS_WEEK_START: "1"
VIKUNJA_SERVICE_JWTSECRET: d3399f5fa966ecbe6ba41e7b023e6918
VIKUNJA_SERVICE_PUBLICURL: https://vikunja.example.com
VIKUNJA_SERVICE_TIMEZONE: UTC
volumes:
- vikunja-files:/app/vikunja/files
depends_on:
- vikunja-db
vikunja-db:
image: mariadb:11.7
environment:
MYSQL_DATABASE: vikunja
MYSQL_PASSWORD: 63f147cf41bc7101
MYSQL_ROOT_PASSWORD: bab6437b0992776a
MYSQL_USER: vikunja
volumes:
- vikunja-db:/var/lib/mysql
volumes:
vikunja-files: {}
vikunja-db: {}
Then run:
docker compose up -d
Access
Once started, access your app at http://localhost:3456
Why Self-Host Vikunja?
Full Data Ownership
Your data stays on your servers. No third-party access.
No Monthly Fees
Pay only for your server. No per-seat or usage charges.
Complete Control
Customize, backup, and scale on your own terms.
Privacy & Compliance
Meet GDPR, HIPAA, or internal security requirements.
Technical Details
Docker Image
vikunja/vikunja:${VIKUNJA_VERSION}Want to go faster?
Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.
Install on any Linux server:
sh -c "$(curl -sSL https://get.senate.sh)"