/publishers

Publisher interface for Brave Payments

Primary LanguageRubyMozilla Public License 2.0MPL-2.0

App for publishers.brave.com.

Build Status

Quick start

Setup

  1. Ruby 2.3.3. For a Ruby version manager try rbenv.
  2. Postgresql 9.5+: brew install postgresql (start with brew services start postgresql)
  3. Redis: brew install redis
  4. Install ruby gems foreman and mailcatcher: gem install bundler foreman mailcatcher
  5. Install project dependencies: bundle install --jobs=$(nproc)
  • Possible error: Nokogiri, with libxml2. Try installing a system libxml2 with brew install libxml2 and then bundle config build.nokogiri --use-system-libraries then again bundle install.
  1. Create and initialize the database
  • rails db:create RAILS_ENV=development
  • rails db:migrate RAILS_ENV=development

HTTPS Setup

Local development of brave-intl uses HTTPS. This allow us to use web APIs such as U2F in development.

If you already have a key and certificate for the localhost domain place them in the ssl/ directory:

ssl/server.key
ssl/server.crt

If you don't, you will need to generate certificates for this domain:

bundle exec rake ssl:generate

When you first visit the application in a browser you may need to add an exception to trust this self-signed certificate. Sometimes this is under an "advanced" or "proceed" link.

Google API Setup

Setup a google API project:

  • Login to your google account (dev), or the Brave google account (staging, production)
  • Go to https://console.developers.google.com
  • Select "Create Project" then "Create" to setup a new API project
  • Give the project a name such as "publishers-dev"
  • Select "+ Enable APIs and Services"
  • Enable "Google+ API" and "YouTube Data API v3"
  • Back at the console select Credentials, then select the "OAuth consent screen" sub tab
  • Fill in the details. For development you need the Product name, try "Publishers Dev (localhost)"
  • Then Select "Create credentials", then "OAuth client ID"
  • Record the Client ID and Client secret and enter them in your Env variables

You may need to wait up to 10 minutes for the changes to propagate.

These steps based on directions at the omniauth-google-oauth2 gem.

Run

  1. Start Postgres and redis.

  2. Run Rails server and async worker foreman start -f Procfile.dev

  3. Visit https://localhost:3000

  4. To test email, run a local mail server at localhost:25 mailcatcher

Development

Config

Configuration is set in config/secrets.yml via environment variables.

It might be useful to maintain a local bash script with a list of env vars. For an example see config/secrets.yml.

Automagic addon vars

Some variables are set automagically with Heroku addons:

  • FIXIE_URL - Proxy provider. For outbound API requests.
  • MAILGUN_* - For sending emails.
  • NEW_RELIC_APP_NAME, NEW_RELIC_LICENSE_KEY - New Relic app monitoring.
  • REDIS_URL - For Sidekiq and rack-attack

Other vars

A few variables are not configured in secrets.yml: currently none