blog:2025-08-23

Ich bin unordentlich, unkoordiniert und lasse mich leicht ablenken ;-)

Ein Trick, der mir hilft mich zu strukturieren sind Listen. Und noch besser sind digitale Listen, weil ich die auf iPhone, PC oder Laptop gleichermaßen habe. Da so eine Liste, wenn man sie mal erstellt und gepflegt hat auch schnell elemtar für jemanden wird, ist es wichtig, dass mir das System nicht einfach weg gezogen wird. Natürlich könnte ich auch andere Tools nehmen, aber irgendwie spricht immer ein wichtiger Punkt dagegen:

  • iOS Erinnerungen: nicht auf PC, Laptop nutzbar
  • Nextcloud Notizen: keine einfache Liste zum abhaken
  • Microsoft, ToDoIst, Evernote, Google-Docs, Notion…… sind alles Tools, die genauso schnell wieder weg sein können, wie sie gekommen sind, oder das Lizenzmodell ändert sich, oder die Preise werden erhöht oder…..oder…….oder

Alles in Allem war ich auf der Suche nach einer möglichst einfachen Lösung, die ich selbst hosten kann, das möglichst einfach in der Benutzung ist, doch einige erweiterte Funktionen bietet, schnell in der Benutzung ist.

Also bin ich bei Vikunja gelandet. Was sind die Vorteile?

Extremely Fast

Vikunja ist auf schnelle Reaktion ausgelegt. Die Interaktion soll in unter 1sec. erfolgen und bislang kann ich das bestätigen. Wenn ich mal schnell eine Notiz machen will und mein Tool dann länger braucht als ich zum Tippen finde ich das sehr lästig und es nimmt mich auch aus dem Flow heraus.

In Vikunja sind natürlich auch komplexere Notizen möglich aber die reinen Basics wie

  • Name der Notiz
  • Label/Tag
  • Projektname
  • Priorität
  • Fälligkeit
  • Zuweisung an Andere

kann direkt bei der Eingabe in das Input Feld erfolgen.

Wenn ich also eine Erinnerung Updating to new Version für das Projekt Vikunja mit den Tags selfhosted, systems, productiviy mit Fälligkeit zum 23.08.2025 und er höchsten Priotirät erstellen will, dann mache ich das direkt in das einzelne Eingabefestenster in Vikunja mit dem Synthax:

+Vikunja *selfhosted *systems *productiviy 23/08/2025 !5 Updating to new Version

Weitere Dinge wie Unterpunkte, Vorgänger/Nachfolger, Startdatum, Fortschritt, Listen, Grafiken etc. lassen sich dann mit dem eingebauten Editor im Nachgang natürlich noch anfügen, aber der Gedanke ist erst einmal notiert. Auch gemeinsames Arbeiten an einzelnen Projekten ist möglich ebenso wie Gantt, Kanban oder Listenauswertungen für einzelne Projekte.

Man mit Vikunja somit ein richtiges Projektmanagement aufziehen und das alles mit einem einfachen Tool, das sogar noch kostenlos ist. Hier ist auch noch die offizielle Feature-List auf der Vikunja-Homepage. I love it.

Set-Up

Ich habe Vikunja als Docker-Container auf meiner virutellen Maschine beim Hoster meiner Wahl zusätzlich installiert. Da ich hier bereits andere Dienste hoste, läuft hier bereits auch ein Caddy-Proxy, so dass ich lediglich zwei kleinere Hürden bei der Installation zu beachten hatte. Das Erstellen des JWT-Secrets war etwas komplizierter als gedacht und die Korrekte Einbindung des Vikunja-Containers in das Caddy-Netzwerk. Die ausführliche Vikunja Docs sind hilfreich und erklären auch noch einige weitere Möglichkeiten für ausgefeiltere Set-Ups.

Caddyfile

Wenn man Vikunja hinter einem Proxy, hier hinter Caddy betreiben will, muss die Namensauflösung korrekt erfolgen. Standardmäßig lauscht Vikunja auf dem Port 3456 also sieht der Eintrag in der Caddyfile wie folgt aus

<vikunja-url> {
    reverse_proxy vikunja:3456
}

docker-compose.yml

Die docker-compose.yml ist etwas komplizierter, was man benötigt:

  • <vikunja-url> - dieselbe wie in der Caddyfile e.g. vikunja.meinedomain.de
  • <password> - Passwort für den Vikunja User in der Maria-DB
  • <jwt-secret> - ein beliebiges JWT-Secret (im Netz sind Anleitungen wie man einen korrekten JWT-Wert generiert)
  • <caddy-network-name> - der gewählte Name für das Netzwerk des Caddy-Proxies, in diesem muss der Vikunja-Container -nicht die Maria-DB- eingebunden sein. Auf diese Weise ist der Vikunja-Container über den Caddy Proxy alleine von extern erreichbar, während die DB nicht von außen erreichbar ist.
  • <root-password> - Passwort für den Maria-DB root, dieser wird bei Backups oder weiterer Administration benötigt. Da der Maria-DB-Container nicht extern erreichbar ist, müssen diese Aufagaben über die Kommandozeile im Maria-DB-Container erfolgen.

Theoretisch ist es auch möglich eine PostgreSQL (imho für Fortgeschrittene) oder sogar SQLite DB (imho nur für Testing und Single-User zu empfehlen) zu verwenden. Mit einer Maria-DB ist das Set-Up hier auch für kleinere und mittlere Teams vollständig bereit.

services:
  vikunja:
    image: vikunja/vikunja
    environment:
      VIKUNJA_SERVICE_PUBLICURL: <vikunja-url>
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_PASSWORD: <password>
      VIKUNJA_DATABASE_TYPE: mysql
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_SERVICE_JWTSECRET: <jwt-secret>
    volumes:
      - ./files:/app/vikunja/files
    networks:
      - <caddy-network-name>
      - vikunja
    depends_on:
      db:
        condition: service_healthy
    restart: unless-stopped
  db:
    image: mariadb:10
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: <root-password>
      MYSQL_USER: vikunja
      MYSQL_PASSWORD: <password>
      MYSQL_DATABASE: vikunja
    volumes:
      - ./db:/var/lib/mysql
    networks:
      - vikunja
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h localhost -u $$MYSQL_USER --password=$$MYSQL_PASSWORD"]
      interval: 2s
      start_period: 30s
networks:
  <caddy-network-name>:
    external: true
  vikunja:
    driver: bridge
  • blog/2025-08-23.txt
  • Zuletzt geändert: 2025/08/23 10:02
  • von sebastian