Vikunja on a LYLIX VPS — self-hosted task manager (Todoist alternative)
Vikunja is a self-hostable task manager with projects, kanban boards, gantt charts, sharing, reminders, and decent mobile clients. Closest to Todoist's feature set among the open-source options. Single Go binary, SQLite for tiny installs or PostgreSQL/MySQL for larger.
Install (Docker Compose, SQLite backend)
# /opt/vikunja/docker-compose.yml
services:
vikunja:
image: vikunja/vikunja:latest
container_name: vikunja
restart: unless-stopped
environment:
VIKUNJA_SERVICE_PUBLICURL: https://tasks.example.com
VIKUNJA_SERVICE_JWTSECRET: <long-random-string>
VIKUNJA_DATABASE_TYPE: sqlite
VIKUNJA_DATABASE_PATH: /db/vikunja.db
VIKUNJA_MAILER_ENABLED: "true"
VIKUNJA_MAILER_HOST: smtp.example.com
VIKUNJA_MAILER_PORT: "587"
VIKUNJA_MAILER_USERNAME: tasks@example.com
VIKUNJA_MAILER_PASSWORD: SMTP_PW
VIKUNJA_MAILER_FROMEMAIL: tasks@example.com
volumes:
- /opt/vikunja/files:/app/vikunja/files
- /opt/vikunja/db:/db
ports:
- "127.0.0.1:3456:3456"
cd /opt/vikunja
docker compose up -d
Reverse proxy as usual. First visit: register an account; the first registered becomes the admin.
Mobile clients
- Official iOS / Android apps on the app stores. Configure with your self-hosted URL on first launch.
- Web UI is a PWA — installable on phones for an app-like experience if you don't want the native app.
API and integrations
Vikunja has a full REST API and a Caldav endpoint. The Caldav part is useful — most calendar/task apps (Thunderbird, iOS Reminders via shim, third-party tools) can sync tasks via Caldav, putting Vikunja into a heterogeneous tool ecosystem.
Backups
Two paths matter:
/opt/vikunja/db/vikunja.db— the SQLite database (everything: tasks, projects, users, attachments metadata)./opt/vikunja/files/— uploaded attachments.
Stop the container for a clean SQLite snapshot; restart after backup.
When to use PostgreSQL instead of SQLite
SQLite is fine for personal use and small teams (under ~20 users). For larger deployments or when you want multi-replica setups, switch to Postgres by changing the DATABASE_TYPE env var + adding a postgres service to the compose file. Migration of existing data uses Vikunja's migrate CLI.
Also Read
Powered by WHMCompleteSolution