The Chicago Classic Computing Wiki

This is an old revision of the document!


Taskwarrior Notes

  • All operations below were performed under Debian 13.5. Debian 12 appeared to lack the necessary tools or libraries (must test further).

Server

We need to install the Task Champion server:

apt-get install rust-all rustup git
apt install -y ca-certificates curl gnupg lsb-release
apt install -m 0755 -d /etc/apt/keyrings
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker
newgrp docker
usermod -aG docker <regular userid>
git clone https://github.com/GothenburgBitFactory/taskchampion-sync-server.git
cd taskchampion-sync-server/
docker build -t taskchampion-sync-server -f Dockerfile-sqlite
chown [userid] -R taskchampion-sync-server

You can make a startup file like:

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

BE CAREFUL! If your destroy the Docker image, your database is gone, too! In theory, any up-to-date client could re-populate it by doing a sync init, but this is untested.

Client

We must compile the TW client directly since the pre-build Debian package does not include the sync feature:

git clone https://github.com/GothenburgBitFactory/taskwarrior.git
cd taskwarrior
git submodule update --init --recursive
apt-get install rust-all cargo cmake gcc build-essential cmake uuid-dev git gnupg
apt-get install rustup
rustup default stable     [may be unnecessary]
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build

In WSL under Windows 11, I had to do this instead. Something to do with rust and corrosion version conflicts:

cmake -S . -B build \
  -DCMAKE_BUILD_TYPE=Release \
  -DRust_CARGO_TARGET=x86_64-unknown-linux-gnu \
  -DCorrosion_RUSTC_EXECUTABLE="$HOME/.cargo/bin/rustc"

Client setup:

task config sync.server.url http://site:port
task config sync.server.client_id <a UUID you generate with uuidgen 
task config sync.encryption_secret "passphrase you make up"
task sync init   [should only be needed for first sync on main client, to xfer sqlite data to Task Champion]
task sync

Mobile

The Android client Taskstrider works with this setup.

Notes

Command Reference (for 2.5.3, can't find one for 3.4.x yet)

Unfortunately, the official taskwarrior-tui does not work with version 3.4 yet, but this shows promise.

Print/export