taskchampion-sync-server

taskchampion-sync-server

Docker app from UnraidUser-3609265787's Repository

Overview

TaskChampion Sync Server is the official sync backend for Taskwarrior 3.x. It allows tasks to be synchronised across multiple devices. Task data is encrypted client-side — the server never sees plaintext. IMPORTANT: you must set Client ID(s) before the container will start. The upstream taskchampion-sync-server provides no HTTP authentication by design; access control is via UUID allowlisting only. For internet-facing deployments, place this behind a reverse proxy with HTTP Basic Auth (e.g. Nginx Proxy Manager).

Requirements

Clients must use Taskwarrior 3.0 or any app implementing the TaskChampion sync protocol. Before starting the container, generate a UUID for each device with `uuidgen` and add them all to the Client ID(s) field. Each Taskwarrior client also needs a shared encryption secret (never sent to the server).

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/
Network
bridge
Shell
sh
Privileged
false
Extra Params
--restart=unless-stopped

Template configuration

WebUI PortPorttcp

Host port mapped to the container's internal port 8080. Default is 8007 to avoid conflicts with common Unraid services.

Target
8080
Default
8007
Value
8007
DataPathrw

Persistent storage for the SQLite task database.

Target
/var/lib/taskchampion-sync-server
Default
/mnt/user/appdata/taskchampion-sync-server
Value
/mnt/user/appdata/taskchampion-sync-server
PUIDVariable

UID the server process runs as. Defaults to Unraid's nobody user (99). Change to match your user ID on other systems (run `id` to find it).

Default
99
Value
99
PGIDVariable

GID the server process runs as. Defaults to Unraid's users group (100). Change to match your group ID on other systems (run `id` to find it).

Default
100
Value
100
Client ID(s)Variable

Required. UUID(s) allowed to sync. Comma-separated for multiple devices (e.g. uuid1,uuid2). Generate a UUID with `uuidgen` on Linux/Mac or use an online generator. The container will not start without this.

Target
CLIENT_ID
No Create ClientsVariable

Set to true to prevent new clients from registering after initial setup. Only useful after all your devices have synced at least once — enabling this before first sync will block even allowed clients.

Target
NO_CREATE_CLIENTS
Default
false
Value
false
Listen AddressVariable

Address and port the server binds to inside the container. Only change this if you also adjust the container port above.

Target
LISTEN
Default
0.0.0.0:8080
Value
0.0.0.0:8080

Details

Repository
ghcr.io/furan917/taskchampion-sync-server:latest
Last Updated2026-06-02
First Seen2026-05-16

Run taskchampion-sync-server on Unraid.

taskchampion-sync-server is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.