selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

taskchampion-sync-server logo

Self-host taskchampion-sync-server

taskchampion-sync-server-0.2.1

Sync server for Taskwarrior task databases

BetaOpen SourceMIT
Updated4 months ago
LanguageRust
Setup difficultyModerate
Stars
196
Port
8080 (HTTP sync API)
Docker
ghcr.io/gothenburgbitfactory/taskchampion-sync-server
Install with Docker

What is taskchampion-sync-server?

TaskChampion Sync-Server is the reference server for the TaskChampion synchronization protocol, letting Taskwarrior and other TaskChampion-based apps sync task data across multiple devices. Users are identified by a client ID, and all task data remains encrypted end-to-end — the server never sees the encryption secret. Two storage backends are available: SQLite for simple setups and PostgreSQL for larger deployments. The project ships pre-built Docker images on ghcr.io, a docker-compose stack that provisions TLS automatically via Caddy and Let's Encrypt, and Rust binaries you can compile from source. Configuration uses environment variables such as DATA_DIR, CLIENT_ID, LISTEN, and CONNECTION (for PostgreSQL). By default the server listens on port 8080 and does not handle TLS itself, so a reverse proxy is recommended for production.

Should you self-host taskchampion-sync-server?

taskchampion-sync-server scores 48/100 on selfhost.directory (how scoring works) and ranks #18 of 38 in Personal Productivity. It has 196 GitHub stars.

It shipped 4 stable releases in the past year. The latest, taskchampion-sync-server-0.2.1, came out on 10 June 2026.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Rust.

Its closest alternative on selfhost.directory is LanguageTool (75/100, 15 205 stars). It scores higher overall, so compare the two before you pick. See taskchampion-sync-server vs LanguageTool side by side.

Features

  • Client ID management
  • Docker Compose with TLS
  • End-to-end encryption
  • Reference implementation
  • Rust library crates
  • SQLite Backend
  • Taskwarrior sync

taskchampion-sync-server README

How to install taskchampion-sync-server

Install taskchampion-sync-server with Docker

Environment variables
RUST_LOG, DATA_DIR, LISTEN, CLIENT_ID, CREATE_CLIENTS

docker run -d
--name=taskchampion-sync-server
-p 8080:8080
-e RUST_LOG=debug
-v /data/taskchampion-sync-server:/var/lib/taskchampion-sync-server/data
taskchampion-sync-server

SQLite backend; use taskchampion-sync-server-postgres for PostgreSQL

How to configure taskchampion-sync-server

  • CLIENT_IDComma-separated list of client IDs that will be allowed, or empty to allow all clients

    Comma-separated list of client IDs that will be allowed, or empty to allow all clients

  • CONNECTIONPostgres connection information in LibPQ-style connection URI (Postgres only)

    Postgres connection information in LibPQ-style connection URI (Postgres only)

  • CREATE_CLIENTStrueIf true, automatically create clients on first sync

    If true, automatically create clients on first sync

    values: true, false

  • DATA_DIR/var/lib/taskchampion-sync-server/dataDirectory for the synced data (SQLite only)

    Directory for the synced data (SQLite only)

  • LISTEN0.0.0.0:8080Address and port on which to listen for HTTP requests

    Address and port on which to listen for HTTP requests

  • RUST_LOGinfoLog level

    Log level

    values: trace, debug, info, warn, error

taskchampion-sync-server releases & version history

More in Productivity

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…