lawliet89 / rowdy

A Rocket based JSON Web Token authentication server.
https://lawliet89.github.io/rowdy/
Apache License 2.0
32 stars 7 forks source link
json jwt rocket-rs rust

rowdy

Build Status Dependency Status Crates.io Repository Documentation

Documentation: Stable | Master

rowdy is a Rocket based JSON Web token based authentication server based off Docker Registry's authentication protocol.

Requirements

Rocket requires nightly Rust. You should probably install Rust with rustup, then override the code directory to use nightly instead of stable. See installation instructions.

In particular, rowdy is currently targetted for nightly-2017-10-11.

Testing

The crate is set up to make use of workspaces for various parts of rowdy.

To run tests for rowdy-diesel, you will need to run the Docker containers for the various databases.

docker-compose -f diesel/docker-compose.db.yml up

To run tests on everything, do cargo test --all --all-features --no-fail-fast.

Docker Image

An musl-linked image can be built from the Dockerfile in the repository root. You will need at least Docker 17.05 (API version 1.29) to build.

By default, the Docker image will not start Rowdy for you. You will need to provide your own configuration file and command line arguments. The provided docker-compose.yml should get you started.

You can simply define your own docker-compose.override.yml file. For example:

version: "2.1"
services:
  rowdy:
    environment:
      ROCKET_ENV: production
    expose:
      - "80"
    volumes:
      - ./config:/app/config
    command: [rowdy-cli, csv, config/Config.json]
networks:
  nginx:
    external: true

Then, you can simply start the containers with docker-compose up --build -d.