Giter Site home page Giter Site logo

marcobgn / rocksteady Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 327 KB

Application management and deployment system for Nomad

Home Page: https://hub.docker.com/r/powerrhino/rocksteady/

License: MIT License

JavaScript 1.96% Ruby 54.74% TypeScript 17.69% CSS 9.52% HTML 13.08% Dockerfile 1.43% HCL 1.59%

rocksteady's Introduction

RockSteady

RockSteady is an application management and deployment system developed for Altmetric and BotsAndUs.

Background

RockSteady provides a user interface that allows a team to deploy Docker images to a Nomad cluster. It integrates with Docker Hub and Amazon's Elastic Container Registry (ECR) to find Docker images that can be deployed, and stores a Nomad job spec for each application which is deployed. Users can then deploy an arbitrary image to the cluster using a simple UI, or configurre applications to automatically deploy builds from a specific Git branch through a webhook integration with CircleCI.

Requirements

RockSteady is a Rails application, and uses PostgreSQL as a backing store for application configuration. You'll need a working Ruby installation (2.5+), and a local node.js install with Yarn to install the asset pipeline.

To run the application locally:

git clone [email protected]:PowerRhino/rocksteady.git
cd rocksteady
bundle
yarn install
rails db:create db:schema:load
rails s

Alternatively, using docker-compose:

docker-compose build && docker-compose up

The command will start Rocksteady, Postgres and a Nomad agent. The project directory is mounted in the container, so you'll be able to make live changes. Adding/removing gems or npm packages requires a docker-compose build.

RockSteady is also available as a Docker image, and is capable of self-hosting if a Nomad cluster is available.

Configuration

Rocksteady is configured using the following environment variables:

  • PORT – the port that the application will use for its HTTP server.
  • DATABASE_URL – URI pointing to a Postgres database.
  • SECRET_KEY_BASE – Secret key for Rails sessions.
  • NOMAD_API_URI – HTTP(S) endpoint to a server for the Nomad cluster being used.
  • ECR_BASE – Base URI for ECR repositories (not including the repository name).
  • ROCKSTEADY_THEME_LABEL - (optional) a custom label to be placed next to the application name.
  • ROCKSTEADY_THEME_COLOUR - (optional) when set to warning triggers some colour changes in the UI to make the user aware of a possibly sensitive environment.

AWS configuration is supplied using the standard AWS configuration methods. You can specify this using an explicit key pair and region:

  • AWS_ACCESS_KEY_ID – AWS access key with permission to read images from ECR.
  • AWS_SECRET_ACCESS_KEY – Corresponding AWS secret key.
  • AWS_REGION – AWS region to use for ECR.

Alternatively, if you have an appropriate profile in place:

  • AWS_PROFILE – Locally-configured AWS profile supplying an AWS keypair and region.

Bootstrapping

RockSteady is capable of self-hosting as a job running on a Nomad cluster. An example job spec is included in nomad_job.hcl which can be customised as appropriate for your environment.

rocksteady's People

Contributors

cwrw avatar dependabot[bot] avatar jbilbo avatar mattmacleod avatar mudge avatar rmaestroni avatar shamess avatar

Watchers

 avatar

Forkers

orthodox

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.