Vikunja mit Docker Compose lokal starten
Nicht jedes Zeitfenster produziert einen neuen, sauberen News-Post. Wenn die aktuelle Lage bereits doppelt im Archiv steckt oder an zu vielen unscharfen Echtzeitangaben haengt, sollte der Ersatz wenigstens ein echtes Problem loesen. Vikunja ist dafuer ein starker Kandidat: ein selbst hostbarer Aufgabenmanager mit Listen-, Kanban-, Tabellen- und Projektansicht, der sich mit Docker Compose klein und sichtbar starten laesst.
Die Quellenlage ist fuer 4. Mai 2026 klar genug: Die offizielle Installationsdoku beschreibt weiterhin den Docker-Weg mit lokalem files- und db-Verzeichnis, das Compose-Beispiel nennt fuer SQLite explizit VIKUNJA_DATABASE_PATH, und auf GitHub ist v2.3.0 vom 9. April 2026 der aktuelle Release. Auf Docker Hub ist dazu passend der Image-Tag vikunja/vikunja:2.3.0 verfuegbar. Genau darauf basiert dieses Setup.
Was du am Ende hast
- Vikunja lokal unter
http://127.0.0.1:3456 - Einen bewusst kleinen Compose-Stack mit SQLite statt Extra-Datenbank
- Persistente Dateien und persistente Aufgaben in lokalen Ordnern
- Pruefschritte mit
docker compose,docker logsundcurl
Voraussetzungen
- Docker Engine und
docker composesind installiert - Port
3456ist auf deinem Rechner frei - Du arbeitest in einem neuen Projektordner und nicht in einem alten Compose-Verzeichnis
1. Arbeitsordner anlegen
Die Hygiene zuerst, dann die App:
mkdir vikunja-local && cd vikunja-local
2. Datenordner vorbereiten
Die offizielle Doku weist darauf hin, dass der Container standardmaessig als Benutzer 1000 laeuft. Damit Uploads und die SQLite-Datei sauber persistiert werden, legst du die beiden Ordner direkt an und setzt die passenden Rechte:
mkdir files db
chown 1000:1000 files db
Auf macOS ist dieser
chown-Schritt laut offizieller Docker-Walkthrough-Doku meistens nicht noetig und kann uebersprungen werden. Auf Linux ist er fuer einen reibungslosen Start sinnvoll.
3. Compose-Datei anlegen
Fuer einen lokalen Einzelplatz- oder kleinen Homelab-Start reicht die offizielle SQLite-Variante. Sie spart dir Postgres oder MariaDB, liefert aber trotzdem ein sichtbares Ergebnis in wenigen Minuten.
Speichere im Projektordner die Datei vikunja-local/compose.yaml:
services:
vikunja:
image: vikunja/vikunja:2.3.0
container_name: vikunja
environment:
VIKUNJA_SERVICE_PUBLICURL: http://127.0.0.1:3456/
VIKUNJA_SERVICE_SECRET: change-this-long-random-secret
VIKUNJA_DATABASE_TYPE: sqlite
VIKUNJA_DATABASE_PATH: /db/vikunja.db
ports:
- "127.0.0.1:3456:3456"
volumes:
- ./files:/app/vikunja/files
- ./db:/db
restart: unless-stopped
Wichtige Punkte daran:
vikunja/vikunja:2.3.0pinnt das Setup auf den aktuell veroeffentlichten Release statt auf ein beweglicheslatestVIKUNJA_SERVICE_PUBLICURList wichtig, weil Vikunja laut Doku standardmaessig mit aktivem CORS eine oeffentliche URL erwartetVIKUNJA_DATABASE_PATH=/db/vikunja.dbverschiebt die SQLite-Datei in ein persistentes Host-Verzeichnis- Die Port-Bindung auf
127.0.0.1ist fuer einen lokalen Start sauberer als ein offener Port auf allen Interfaces
4. Stack starten
Jetzt ziehst du das Image und startest den Container im Hintergrund:
docker compose pull
docker compose up -d
Danach sollte Vikunja hier antworten:
http://127.0.0.1:3456
5. Funktion pruefen
Bevor du direkt im Browser klickst, pruefe einmal Status, Logs und HTTP-Antwort:
docker compose ps
docker compose logs --tail=100 vikunja
curl -I http://127.0.0.1:3456
Wenn docker compose ps einen laufenden Container zeigt und curl einen erfolgreichen HTTP-Status oder Redirect liefert, ist der Kern des Setups bereits erreicht: Die Weboberflaeche ist lokal da und die Anwendung antwortet wirklich.
Ein praktischer Hinweis aus der offiziellen Docker-Walkthrough-Doku: Das Image basiert auf scratch. Deshalb bringt der Container keine Shell mit. docker exec -it vikunja sh ist hier also der falsche Reflex. Fuer Fehleranalyse sind docker logs der bessere Weg.
6. Ersten Account anlegen
Oeffne http://127.0.0.1:3456 im Browser. Laut offizieller Installationsseite gibt es keinen Default-User und kein Default-Passwort. Du legst deinen ersten Account direkt ueber die Registrierungsmaske an.
Danach kannst du sofort:
- ein erstes Projekt anlegen
- ein paar Aufgaben erfassen
- auf die Kanban-Ansicht wechseln
- testen, ob Beschreibungen und Faelligkeitsdaten gespeichert werden
Das sichtbare Endergebnis dieses Tutorials ist genau dieser Punkt: nicht nur ein laufender Container, sondern eine benutzbare Aufgabenoberflaeche auf deinem eigenen Host.
7. Wann SQLite reicht und wann nicht mehr
Fuer einen lokalen Start, private Nutzung oder ein kleines Homelab ist SQLite hier voellig okay. Die Vikunja-Doku sagt aber auch klar: Wenn die Instanz mehr als nur eine Handvoll Nutzer bedienen soll, ist Postgres oder MySQL/MariaDB die bessere Wahl.
SQLite ist in diesem Artikel bewusst trotzdem die richtige Entscheidung, weil:
- das Setup kleiner bleibt
- kein zweiter Container noetig ist
- Backups einfacher sind
- das sichtbare Ergebnis schneller kommt
Wenn du spaeter mit mehreren Leuten arbeitest oder Features wie Mail, Reverse Proxy und Teambetrieb dazukommen, ist der Wechsel auf Postgres der naechste sinnvolle Schritt.
8. Update, Logs und Stoppen
Fuer den normalen Betrieb brauchst du zunaechst nur diese Kommandos:
docker compose logs -f vikunja
docker compose pull
docker compose up -d
docker compose down
Deine Daten bleiben erhalten, weil sie in den lokalen Ordnern vikunja-local/files und vikunja-local/db liegen.
9. Sinnvolle erste Aufraeumarbeiten
Nach dem ersten erfolgreichen Start solltest du drei Dinge nicht vergessen:
VIKUNJA_SERVICE_SECRETinvikunja-local/compose.yamldurch einen langen echten Zufallswert ersetzen- das Verzeichnis
vikunja-local/dbin dein Backup aufnehmen - bei spaeterer externer Freigabe einen Reverse Proxy mit HTTPS davorsetzen, statt den Port offen ins Internet zu legen
Gerade der Secret-Wert ist kein Dekor. Er gehoert zu den Stellen, die man nicht ewig auf dem Tutorial-Platzhalter lassen sollte.
Fazit
Wenn ein Fallback noetig ist, sollte er nicht wie ein Verlegenheits-Tutorial wirken. Vikunja schafft das hier besser als ein generischer Docker-Grundlagenpost: ein dedizierter Arbeitsordner, ein klar gepinntes Image, persistente Daten, sichtbare UI und ein echter Alltagsnutzen fuer Aufgaben, Projekte und kleine Boards.
Fuer den Stand 4. Mai 2026 ist das ein belastbarer, sauber recherchierter Docker-Compose-Guide mit direktem Ergebnis statt eines halbaktuellen News-Aufgusses.