Public | Automated Build

Last pushed: 10 months ago
Short Description
Containerized Taskwarrior server
Full Description

Docker-Taskd

Docker-Taskd is a containerized Taskwarrior server.

Certificates

If there are no keys provided in ./taskd/pki,
the server will generate self-signed certificates
based on the details specified in the docker-compose.yml.

Requirements

Usage

Starting server

For the initial start, make sure to provide certificates or check the
certificate values in docker-compose.yml.

docker-compose up -d

Remember the container id (refered to as $container),
it's printed as Creating $container.

Starting without docker-compose

If you can't or don't want to use docker-compose, run

docker run -d --name taskd \
  -p 53589:53589 \
  -v $PWD/taskd:/var/taskd \
  -e CERT_CN="taskd" \
  -e CERT_ORGANIZATION="some org" \
  -e CERT_COUNTRY="DE" \
  -e CERT_STATE="Bavaria" \
  -e CERT_LOCALITY="Munich" \
  x4121/taskd:latest

Stopping server

docker-compose stop

Creating a user on server

To create a new user named $username (whitespaces allowed)
as member of the group $group (no whitespaces allowed) and
create a set of keys with file prefix $user (no whitespaces allowed):

Open a shell on the server

docker exec -it $container sh

The container name $container is printed on startup.

Create a new group (if not done)

If you want to use an existing group, skip this step. Don't use
whitespaces in the group name $group.

taskd add org '$group'

Add user to group

taskd add user '$group' '$username'

This will print New user key: $cred.
Copy this value, it's used on the client.

Create keys for the new user

cd pki
gosu taskd ./generate.client $user`

The generated files can be found in ./taskd/pki

Configuration on client

Copy the files ca.cert.pem, $user.cert.pem and
$user.key.pem to the client.

Editing .taskrc

Add the following configs to your .taskrc:

task config taskd.certificate $pathTo/$user.cert.pem
task config taskd.key $pathTo/$user.key.pem
task config taskd.ca $pathTo/ca.cert.pem
task config taskd.server $host:53589
task config taskd.credentials $group/$username/$cred

Initialize synchronization

task sync init

This is only necessary once.
Following synchronizations will be done with task sync.

Documentation

Taskwarrior docs

Docker Pull Command
Owner
x4121
Source Repository

Comments (0)