===== Vikunja und Ordnung ===== 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. ==== Vikunja ==== Also bin ich bei [[https://vikunja.io|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: {{ :blog:vikunja_input.png?800 |}} +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. {{ :blog:vikunja_task_editor.png?800 |}} 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 [[https://vikunja.io/features/|offizielle Feature-List auf der Vikunja-Homepage]]. I love it. {{ :blog:vikunja_menue.png?600 |}} === 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 [[https://vikunja.io/docs/|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 { reverse_proxy vikunja:3456 } **docker-compose.yml** Die //docker-compose.yml// ist etwas komplizierter, was man benötigt: * - dieselbe wie in der Caddyfile e.g. //vikunja.meinedomain.de// * - Passwort für den Vikunja User in der Maria-DB * - ein beliebiges JWT-Secret (im Netz sind Anleitungen wie man einen korrekten JWT-Wert generiert) * - 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. * - 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_DATABASE_HOST: db VIKUNJA_DATABASE_PASSWORD: VIKUNJA_DATABASE_TYPE: mysql VIKUNJA_DATABASE_USER: vikunja VIKUNJA_DATABASE_DATABASE: vikunja VIKUNJA_SERVICE_JWTSECRET: volumes: - ./files:/app/vikunja/files networks: - - 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: MYSQL_USER: vikunja MYSQL_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: : external: true vikunja: driver: bridge