README.md in cutting_edge-0.2.1 vs README.md in cutting_edge-0.3

- old
+ new

@@ -1,13 +1,16 @@ # CuttingEdge -- Simple, self-hosted dependency monitoring -[![Build Status](https://travis-ci.org/repotag/cutting_edge.svg?branch=master)](https://travis-ci.org/repotag/cutting_edge) -[![Coverage Status](https://coveralls.io/repos/github/repotag/cutting_edge/badge.svg?branch=master)](https://coveralls.io/github/repotag/cutting_edge?branch=master) +[![Ruby Build](https://github.com/repotag/cutting_edge/actions/workflows/test.yaml/badge.svg)](https://github.com/repotag/cutting_edge/actions/workflows/test.yaml) +[![Coverage Status](https://coveralls.io/repos/github/repotag/cutting_edge/badge.svg?branch=main)](https://coveralls.io/github/repotag/cutting_edge?branch=main) [![Cutting Edge Dependency Status](https://dometto-cuttingedge.herokuapp.com/github/repotag/cutting_edge/svg 'Cutting Edge Dependency Status')](https://dometto-cuttingedge.herokuapp.com/github/repotag/cutting_edge/info) +[![Docker Pulls](https://img.shields.io/docker/pulls/dometto/cuttingedge)](https://hub.docker.com/r/dometto/cuttingedge) CuttingEdge monitors the status of the dependencies of your projects and lets you know when any of them go out of date. +**View the web front end of a [live instance](https://dometto-cuttingedge.herokuapp.com/)**. + ## Features * Generates badge images that you can include in your projects' Readme, like the one above! * Can send you email when the status of a project's dependencies changes * Serves a simple [info page](https://dometto-cuttingedge.herokuapp.com/github/repotag/cutting_edge/info) detailing the status of each project @@ -19,12 +22,10 @@ * Supports the following platforms: * GitHub * Gitlab (both gitlab.com and [self-hosted instances](#Adding-self-hosted-repository-servers)) * Gitea ([self-hosted](#Adding-self-hosted-repository-servers)) * Both public and [private repositories](#Authorization-and-private-repositories) - -**View the web front end of a [live instance](https://dometto-cuttingedge.herokuapp.com/)**. ## Requirements CuttingEdge is lightweight and easy to deploy: @@ -34,50 +35,68 @@ * Requires relatively few resources (~120MB RAM), so... * It can even run on [Heroku](#Deploying-on-Heroku)'s free plan! ## Installation -Simply: +### Using Docker -``` -$ gem install cutting_edge -$ cutting_edge -``` +To run CuttingEdge on port 4567 on the host machine, with config.rb and projects.yml in the current working directory, simply: -Or run from source: +`docker pull dometto/cuttingedge` +`docker run -d --rm -p 4567:4567 -v $(pwd):/cutting_edge dometto/cuttingedge:main -c config.r` -``` -$ git clone https://github.com/repotag/cutting_edge.git -$ cd cutting_edge -$ bundle install -$ bundle exec cutting_edge -``` +(Instead of using `main`, you can also use a release tag, e.g. `dometto/cuttingedge:v0.2.1`.) Before running, define your repositories in [projects.yml](#projects-yml). You may also want to change some settings in [config.rb](#config-rb). +Also see our example [docker-compose](docker-compose.yml) file for an example of how to use CuttingEdge with [Redis as a datastore](#Using-Redis-and-other-data-stores) via Docker. + ### Deploying on Heroku CuttingEdge runs out of the box on Heroku, and is lightweight enough to function on the Heroku free plan. This repository already contains the `Procfile` needed for deployment. **Note: on Heroku, CuttingEdge uses `heroku.config.rb` instead of `config.rb`**. Steps: 1. Clone/fork this repository, as it already contains some settings (in `heroku.config.rb`) relevant to Heroku -1. Edit `projects.yml` and commit it to the repo -1. `heroku create my-cuttingedge` -1. `heroku config:add HEROKU_APP_NAME=my-cuttingedge` -1. `git push heroku master` -1. *Optional, if you want to receive [email notifications](#Email-Notifications)*: +1. Edit `projects.yml` and commit it to the repo. +1. `gem install bundler && bundle install` +2. `git add Gemfile.lock && git commit -m "Commit Gemfile.lock for use on Heroku" +3. `heroku create my-cuttingedge` +4. `heroku config:add HEROKU_APP_NAME=my-cuttingedge` +5. `heroku addons:create heroku-redis:hobby-dev -a my-cuttingedge` (using Redis is highly recommended on Heroku) +6. `git push heroku master` +7. *Optional, if you want to receive [email notifications](#Email-Notifications)*: * `heroku addons:create mailgun:starter` * `heroku config:add CUTTING_EDGE_MAIL_TO=mydependencies@mydependencymonitoring.com` * If you are on the free plan: [add your email addresses as Authorized Recipients](https://help.mailgun.com/hc/en-us/articles/217531258-Authorized-Recipients) in [Mailgun](https://app.mailgun.com/) (login via Heroku) You may also want to set some [Heroku config variables](https://devcenter.heroku.com/articles/config-vars), for instance to [use authentication tokens](#Authorization-and-private-repositories) in `heroku.config.rb`. Note that Heroku switches off apps running on their free plan when they idle, so you may want to look at [this](https://medium.com/better-programming/keeping-my-heroku-app-alive-b19f3a8c3a82). +### As a gem + +Simply: + +``` +$ gem install cutting_edge +$ cutting_edge +``` + +Or run from source: + +``` +$ git clone https://github.com/repotag/cutting_edge.git +$ cd cutting_edge +$ bundle install +$ bundle exec cutting_edge +``` + +Before running, define your repositories in [projects.yml](#projects-yml). You may also want to change some settings in [config.rb](#config-rb). + ## Usage When your instance of CuttingEdge is running, you can visit the landing page by pointing your browser to the root URL of the app. Locally, it is by default accessible at: `http://localhost:4567/` @@ -104,10 +123,10 @@ The `language:` key can currently be set to `ruby` (default), `rust`, or `python`. Further supported keys: * `auth_token`: see [here](#Authorization-and-private-repositories) * `hide`: see [here](#Hide-repositories) * `locations`: use to change the default path to dependency definition files. For instance, for a Ruby project, CuttingEdge will by default try to monitor `Gemfile` and `my_project.gemspec`. You can override this with `language: [Gemfile, alternative/file.gemspec]` -* `branch`: use a different branch than the default `master` +* `branch`: use a different branch than the default `main` * `email`: * disable email notifications for a single project by setting this to `false` * use a non-default address delivery address for this project by setting this to e.g. `myproject@mydependencymonitoring.com` Note: by default CuttingEdge will use `projects.yml` in the working directory. You may optionally specify a different path by running `cutting_edge path/to/my_projects.yml`.