timew-sync-server

command module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2024 License: MIT Imports: 9 Imported by: 0

README

Timewarrior Sync Server

This repository contains the Server of the Timewarrior Sync project.

Setup

Building from source

First you need to build the server:

go build -o timew-server

If you haven't already, create a folder named authorized_keys in the same folder as your executable:

mkdir authorized_keys

Now you can start using your server:

./timew-server start

Using Nix

timew-sync-server is included in Nixpkgs. To install timew-sync-server into your current environment, use:

nix-env -i timew-sync-server

Then, follow the instructions above (create a directory for the keys and start the server).

Using docker

You can build a docker image using the provided Dockerfile:

# Build a docker image tagged timew-server
docker build -t timew-server .

To start the server, use:

# Running from the docker image tagged timew-server
docker run -p 8080:8080 timew-server

# Start an existing docker container
docker start <container-id>

Subcommands can be used via docker exec:

docker exec -it <container-id> server <subcommand>

Usage

Starting the server

Start the server using the start subcommand:

./timew-server start

The start subcommand supports the following (optional) flags:

  • --config-file: (reserved, not used yet) Specifies the path to the configuration file
  • --port: Specifies the port. Default: 8080
  • --keys-location: Specifies the folder holding the authorized keys. Default: authorized_keys
  • --no-auth: Deactivates client authentication. Only for testing purposes.
  • --sqlite-db: Path to the sqlite database. Default: db.sqlite

Adding users

New users can be registered using the add-user subcommand:

./timew-server add-user

If no additional flags are specified, this command will return the new user id.

The add-user subcommand supports the following flags:

  • --path: Specifies the path to a public key and associates it with the user.
  • --keys-loaction: Specifies the folder holding the authorized keys. Default: authorized_keys

Note: If you are running our provided Docker image, see the note under Adding keys to users.

Adding keys to users

New keys can be added using the add-key subcommand:

./timew-server add-key --path public-key.pem --id <user-id>

The add-key subcommand supports the following flags:

  • --path (required): Specifies the path to a public key and associates it with the user.
  • --id (required): Specifies the user id.
  • --keys-location: Specifies the folder holding the authorized keys. Default: authorized_keys

Note: If you are running the server inside a docker container, you have to copy the key into the container first:

# Copy the key into /public-key.pem
docker cp public-key.pem <container-id>:/public-key.pem

# Add the key
docker exec -it <container-id> server add-key --path /public-key.pem --id <user-id>

Development

The code has to be formatted using go fmt before commits. To enforce this, we provide a pre-commit-hook. It can be setup by copying it into to your .git/hooks/pre-commit:

cp git/hooks/pre-commit .git/hooks/pre-commit

Acknowledgements

This project was developed during the so-called "Bachelorpraktikum" at TU Darmstadt. It was supervised by the Department of Biology, Computer-aided Synthetic Biology. For more information visit kabisch-lab.de.

This work was supported by the BMBF-funded de.NBI Cloud within the German Network for Bioinformatics Infrastructure (de.NBI) (031A532B, 031A533A, 031A533B, 031A534A, 031A535A, 031A537A, 031A537B, 031A537C, 031A537D, 031A538A).

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL