Self-Hosting Projektmanagement: Vikunja unter Debian Linux (Go Backend, Kanban, Gantt & CalDAV)
Erstellt: 06.11.2026 Aktualisiert: 06.11.2026
Management Summary: Ältere selbstgehostete Kanban-Lösungen (
Kanboard,Wekan) leiden oft unter veralteten PHP-Oberflächen oder ressourcenhungrigen MongoDB-Instanzen. Vikunja ist der moderne Open-Source-Standard für persönliches und teamweites Projektmanagement: Es vereint eine schlanke Go-API mit einem reaktiven Vue 3 SPA-Frontend, bietet vier frei umschaltbare Ansichten (Liste, Kanban-Board, Gantt-Timeline und Tabelle), beherrscht Todoist-ähnliche Quick-Add-Syntax (*label +projekt @assignee morgen) und synchronisiert Aufgaben nativ per CalDAV mit mobilen Apps.
-
4 Ansichten auf ein Datenmodell
Wechsle jedes Projekt nahtlos zwischen Aufgabenliste, Kanban-Board (mit WIP-Limits), Gantt-Diagramm und Tabellenansicht.
-
Quick-Add Magic-Syntax
Tippe
Kernel-Patch deployen *dringend @nejat !3 morgen 09:00, um Labels, Priorität, Zuweisung und Frist in einem Durchgang zu setzen. -
Natives CalDAV & API-Tokens
Synchronisiere Aufgaben nativ mit Android (Tasks.org / DAVx⁵), iOS Erinnerungen und Thunderbird über integrierte CalDAV-Endpunkte.
-
Einheitlicher Single-Container
Seit Vikunja
v0.21+werden Go-Backend und Vue 3-Frontend in einem einzigen Container ausgeliefert, der< 45 MBRAM benötigt.
1. Vikunja Unified-Architektur
In älteren Versionen (vor 0.21) benötigte Vikunja getrennte Container für api und frontend, verbunden über einen internen Nginx-Proxy. Das moderne Vikunja bettet das kompilierte Vue 3-Frontend direkt in die Go-Binary auf Port 3456 ein:
%%{init: {'flowchart': {'wrappingWidth': 350}}}%%
flowchart TB
CLI["🌐 Web- & CalDAV-Clients<br/>(Vue 3 SPA & Mobil)"]
PROXY["🔒 Reverse Proxy<br/>tasks.nejat-hakan.de<br/>(TLS 1.3)"]
VIK["🚀 Vikunja Unified (Go)<br/>127.0.0.1:3456<br/>(API + CalDAV + UI)"]
PG["🗄️ PostgreSQL 17<br/>Aufgaben & Kanban ACLs"]
CLI <--> PROXY
PROXY <--> VIK
VIK <--> PG
2. Produktives compose.yaml (Vikunja + PostgreSQL 17)
Bereite das Dateiverzeichnis für Anhänge mit UID 1000-Berechtigungen vor (Vikunja läuft im Container standardmäßig rootless als UID 1000) und starte den Stack mit PostgreSQL 17:
# Datei: /opt/vikunja-ops/01_prepare_dirs.sh
sudo mkdir -p /srv/containers/vikunja/{files,postgres}
sudo chown -R 1000:1000 /srv/containers/vikunja/files
# Datei: /srv/containers/vikunja/compose.yaml
services:
vikunja:
image: docker.io/vikunja/vikunja:latest
container_name: vikunja
depends_on:
vikunja-db:
condition: service_healthy
restart: unless-stopped
ports:
- "127.0.0.1:3456:3456/tcp"
environment:
VIKUNJA_SERVICE_PUBLICURL: "https://tasks.nejat-hakan.de/"
VIKUNJA_SERVICE_TIMEZONE: "Europe/Berlin"
# Öffentliche Registrierung nach Anlegen der Team-Accounts schließen!
VIKUNJA_SERVICE_ENABLEREGISTRATION: "false"
VIKUNJA_SERVICE_JWTTTL: "2592000"
# Datenbank-Verbindung
VIKUNJA_DATABASE_TYPE: "postgres"
VIKUNJA_DATABASE_HOST: "vikunja-db"
VIKUNJA_DATABASE_USER: "vikunja"
VIKUNJA_DATABASE_PASSWORD: "${VIKUNJA_DB_PASSWORD}"
VIKUNJA_DATABASE_DATABASE: "vikunja"
volumes:
- /srv/containers/vikunja/files:/app/vikunja/files:rw
vikunja-db:
image: docker.io/library/postgres:17-bookworm
container_name: vikunja-db
restart: unless-stopped
environment:
POSTGRES_USER: "vikunja"
POSTGRES_PASSWORD: "${VIKUNJA_DB_PASSWORD}"
POSTGRES_DB: "vikunja"
volumes:
- /srv/containers/vikunja/postgres:/var/lib/postgresql/data:rw
healthcheck:
test: ["CMD-SHELL", "pg_isready -U vikunja -d vikunja"]
interval: 10s
timeout: 5s
retries: 5
3. Benutzer per CLI anlegen (bei geschlossener öffentlicher Registrierung)
Da wir VIKUNJA_SERVICE_ENABLEREGISTRATION: "false" gesetzt haben, um unerwünschte Anmeldungen aus dem Internet zu verhindern, legst du Benutzerkonten sauber über die CLI im Container an:
# Datei: /opt/vikunja-ops/02_create_admin_user.sh
docker exec -it vikunja /app/vikunja/vikunja user create \
--username nejat \
--email nejat.hakan@googlemail.com \
--password "Sicheres_Initial_Passwort_2026!"
Nächste Schritte & Empfehlungen
Integriere Vikunja in deine umfassende kollaborative Plattform:
-
Joplin E2EE Notizenserver
Verknüpfe Vikunja-Aufgaben direkt mit verschlüsselten Architekturdokumenten in Joplin.
-
Forgejo Selbstgehosteter Git-Server
Verwalte Code-Repositories, Pull Requests und CI/CD-Pipelines parallel zu deinen Projekt-Boards.
-
Mattermost Team-Chat
Sende automatisierte Webhook-Benachrichtigungen aus Vikunja in deine DevOps-Chat-Kanäle.