Skip to content

GothenburgBitFactory/taskchampion-sync-server

Repository files navigation

TaskChampion Sync-Server

TaskChampion is the task database Taskwarrior uses to store and sync tasks. This repository implements a sync server against which Taskwarrior and other applications embedding TaskChampion can sync.

Status

This project provides both pre-built images for common use-cases and Rust libraries that can be used to build more sophisticated applications. See the documentation for more on how to use this project.

Repository Guide

The repository is comprised of three crates:

  • taskchampion-sync-server-core implements the core of the protocol
  • taskchampion-sync-server-storage-sqlite implements an SQLite backend for the core
  • taskchampion-sync-server-storage-postgres implements a Postgres backend for the core
  • taskchampion-sync-server implements a simple HTTP server for the protocol

Building From Source

Installing Rust

TaskChampion Sync-Server build has been tested with current Rust stable release version. You can install Rust from your distribution package or use rustup.

rustup default stable

The minimum supported Rust version (MSRV) is given in Cargo.toml. Note that package repositories typically do not have sufficiently new versions of Rust.

If you prefer, you can use the stable version only for installing TaskChampion Sync-Server (you must clone the repository first).

rustup override set stable

Building TaskChampion Sync-Server

To build TaskChampion Sync-Server binary simply execute the following commands.

git clone https://github.com/GothenburgBitFactory/taskchampion-sync-server.git
cd taskchampion-sync-server
cargo build --release

After build the binary is located in target/release/taskchampion-sync-server.

Building the Container

To build the container, execute the following commands.

source .env
docker build \
  --build-arg RUST_VERSION=${RUST_VERSION} \
  --build-arg ALPINE_VERSION=${ALPINE_VERSION} \
  -t taskchampion-sync-server .

Now to run it, simply exec.

docker run -t -d \
  --name=taskchampion \
  -p 8080:8080 \
  taskchampion-sync-server

This starts TaskChampion Sync-Server and publishes port 8080 to the host. Please note that this is a basic run, all data will be destroyed after stop and delete container. You may also set DATA_DIR, CLIENT_ID, or LISTEN with -e, e.g.,

docker run -t -d \
  --name=taskchampion \
  -e LISTEN=0.0.0.0:9000 \
  -p 9000:9000 \
  taskchampion-sync-server

About

The sync server for Taskchampion

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 12

Languages