← Zurück zur Übersicht Vikunja mit Docker Compose: Eigenen Aufgabenmanager lokal und sauber starten

Vikunja mit Docker Compose: Eigenen Aufgabenmanager lokal und sauber starten

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.

Lokales Titelbild fuer Vikunja mit Docker Compose

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 logs und curl

Voraussetzungen

  • Docker Engine und docker compose sind installiert
  • Port 3456 ist 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.0 pinnt das Setup auf den aktuell veroeffentlichten Release statt auf ein bewegliches latest
  • VIKUNJA_SERVICE_PUBLICURL ist wichtig, weil Vikunja laut Doku standardmaessig mit aktivem CORS eine oeffentliche URL erwartet
  • VIKUNJA_DATABASE_PATH=/db/vikunja.db verschiebt die SQLite-Datei in ein persistentes Host-Verzeichnis
  • Die Port-Bindung auf 127.0.0.1 ist 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_SECRET in vikunja-local/compose.yaml durch einen langen echten Zufallswert ersetzen
  • das Verzeichnis vikunja-local/db in 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.

Quellen