Zum Hauptinhalt springen
  1. Projekte/

Taskchampion-Web

GitHub 💸 0 € ⏱ 3 Monate 📊 advanced
4 min· loading ·
Inhaltsverzeichnis

Wer Taskwarrior kennt, weiß: Es ist eines der mächtigsten Task-Management-Tools überhaupt – aber eben ein CLI-Tool. Für den schnellen Überblick am Rechner funktioniert das hervorragend, aber spätestens wenn man unterwegs mal eben eine Aufgabe nachschlagen oder hinzufügen möchte, stößt man an die Grenzen des Terminals. Eine moderne Web-Oberfläche, die sich nahtlos in das bestehende Taskwarrior-Ökosystem einfügt, gab es bislang nicht wirklich – also warum nicht selbst eine bauen?

So entstand Taskchampion-Web: Ein vollständiges Full-Stack-Projekt, das Taskwarrior und die neuere Taskchampion-Bibliothek mit einer modernen Web-Oberfläche verbindet.

🚀 Eine Live-Demo ist unter tcweb-demo.d3v0.de erreichbar!

user: test@example.com password: password123

Die Idee
#

Taskchampion ist die moderne Rust-basierte Bibliothek, die als Kern des zukünftigen Taskwarrior dient. Sie übernimmt das lokale Speichern, Synchronisieren und Verwalten von Tasks – inklusive Ende-zu-Ende-Verschlüsselung und einem eigenen Sync-Protokoll. Das Ziel von Taskchampion-Web ist es, auf dieser soliden Basis eine vollständige Web-Applikation bereitzustellen, die sowohl für den Heimserver als auch für den eigenen VPS geeignet ist – vollständig self-hosted, ohne Cloud-Abhängigkeiten.

Das Ergebnis ist eine Anwendung mit folgenden Funktionen ✨:

  • 🖥️ Moderne Angular-basierte Web-Oberfläche zur Aufgabenverwaltung
  • ⚙️ Go-Backend für Businesslogik, Benutzerverwaltung und API
  • 🦀 Rust-Middleware für die direkte Taskchampion-Integration mit E2E-Verschlüsselung
  • 🔄 Eingebauter Taskchampion Sync-Server für geräteübergreifende Synchronisation
  • 🗄️ Unterstützung von PostgreSQL und SQLite als Datenbank
  • 🐳 Vollständiges Docker-Compose-Setup für einfaches Deployment
  • 🔐 Ende-zu-Ende-Verschlüsselung der Taskdaten über die Rust-Middleware

Architektur
#

Das Projekt ist bewusst in spezialisierte, voneinander unabhängige Services aufgeteilt – jeder mit einer klar definierten Verantwortung.

Frontend – Angular
#

Die Web-Oberfläche ist eine moderne Single-Page-Application auf Basis von Angular. Sie kommuniziert ausschließlich mit dem Go-Backend und bietet eine übersichtliche Oberfläche zum Erstellen, Bearbeiten, Filtern und Abschließen von Aufgaben. Das Interface orientiert sich dabei an den gewohnten Konzepten von Taskwarrior: Projekte, Tags, Prioritäten und Fälligkeiten sind selbstverständlich vorhanden.

Backend – Go (Gin)
#

Das Backend ist ein in Go geschriebener API-Server auf Basis des Gin-Frameworks. Es übernimmt die Benutzerverwaltung, Authentifizierung und die gesamte Businesslogik. Außerdem dient es als Schnittstelle zwischen dem Frontend und der Rust-Middleware – und abstrahiert dabei die Komplexität der Taskchampion-Interna vollständig hinter einer sauberen REST-API.

Middleware – Rust
#

Das Herzstück des Projekts ist die Rust-Middleware. Sie interagiert direkt mit der Taskchampion-Bibliothek, verwaltet den lokalen Task-Speicher und stellt einen RESTful-Endpunkt bereit. Die gesamte Ende-zu-Ende-Verschlüsselung der Taskdaten läuft über diese Schicht – die Tasks verlassen die Middleware niemals unverschlüsselt in Richtung Datenbank oder Netzwerk.

Sync Server
#

Ein eingebetteter Taskchampion Sync-Server ermöglicht es, Tasks über mehrere Clients hinweg zu synchronisieren – etwa zwischen dem Webbrowser, einem Desktop-Client und der klassischen Taskwarrior-CLI. Der Server implementiert das offizielle Taskchampion-Sync-Protokoll und ist vollständig kompatibel mit bestehenden Taskwarrior-Installationen.

Datenbank
#

Je nach Einsatzszenario kann zwischen PostgreSQL für den Produktivbetrieb und SQLite für leichtgewichtige Installationen gewählt werden. Die Konfiguration erfolgt einfach über die .env-Datei.

Deployment
#

Für alle drei Hauptkomponenten stehen fertige Container-Images auf der GitHub Container Registry (GHCR) bereit – ein lokales Bauen der Images ist also nicht notwendig:

1
2
3
ghcr.io/dhufe/tcweb-frontend:dev
ghcr.io/dhufe/tcweb-backend:dev
ghcr.io/dhufe/tcweb-middleware:dev

Das gesamte Setup lässt sich damit mit einem einzigen docker-compose up -d starten, ohne vorher irgendetwas kompilieren zu müssen. Alle Services – Frontend, Backend, Middleware, Sync-Server und Datenbank – werden über eine zentrale docker-compose.yml orchestriert. Die Konfiguration erfolgt über eine einfache .env-Datei, die auf dem mitgelieferten env-sample basiert:

1
2
3
cp env-sample .env
# .env mit eigenen Werten befüllen
podman-compose up -d

Nach dem Start ist die Anwendung sofort erreichbar:

  • Frontend: http://localhost:4200
  • Backend API: http://localhost:8090
  • Middleware API: http://localhost:3001

Wer sich vorher einen Eindruck verschaffen möchte, kann die öffentliche Live-Demo unter tcweb-demo.d3v0.de ausprobieren – kein eigenes Setup erforderlich (Credentials siehe oben).

Technologie-Mix
#

Was dieses Projekt besonders macht, ist der bewusste Einsatz unterschiedlicher Technologien – jede dort, wo sie ihre Stärken hat:

  • Go für schnelle, stabile und einfach zu deployende API-Server
  • Rust für performante, sichere Systemintegration mit der Taskchampion-Bibliothek
  • Angular für eine moderne, reaktive Web-Oberfläche
  • PostgreSQL/SQLite für flexible, bewährte Datenpersistenz

Das Ergebnis ist ein System, das sich wie ein nativer Teil des Taskwarrior-Ökosystems anfühlt – nur eben mit einer komfortablen Web-Oberfläche obendrauf.

Wer Taskwarrior liebt, aber sich manchmal eine grafische Oberfläche wünscht: Taskchampion-Web könnte genau das Richtige sein. Issues, Feedback und Merge Requests sind herzlich willkommen!

Projekt-Info

Status: released
Version: v1.0