From b81eadda8da47b50790c697b4999c0a62a2d079f Mon Sep 17 00:00:00 2001 From: Josh Date: Thu, 14 Jun 2018 14:22:19 -0400 Subject: [PATCH] production settings --- Gemfile | 22 +++++++++++++--- Gemfile.lock | 26 +++++++++++-------- README.md | 6 ++--- ...{application.scss => application.css.scss} | 0 config/database.yml | 22 +++++++--------- config/environments/production.rb | 4 +-- config/initializers/assets.rb | 2 +- sample.env | 25 +++++++++--------- 8 files changed, 60 insertions(+), 47 deletions(-) rename app/assets/stylesheets/{application.scss => application.css.scss} (100%) diff --git a/Gemfile b/Gemfile index 464451b6..a15c62ca 100644 --- a/Gemfile +++ b/Gemfile @@ -5,30 +5,36 @@ git_source(:github) do |repo_name| "https://github.com/#{repo_name}.git" end - # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 5.0.7' -# Use sqlite3 as the database for Active Record -gem 'sqlite3' + # Use Puma as the app server gem 'puma', '~> 3.0' + # Use SCSS for stylesheets gem 'sass-rails', '~> 5.0' + # Use Uglifier as compressor for JavaScript assets gem 'uglifier', '>= 1.3.0' + # Use CoffeeScript for .coffee assets and views gem 'coffee-rails', '~> 4.2' + # See https://github.com/rails/execjs#readme for more supported runtimes # gem 'therubyracer', platforms: :ruby # Use jquery as the JavaScript library gem 'jquery-rails' + # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5' + # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.5' + # Use Redis adapter to run Action Cable in production -# gem 'redis', '~> 3.0' +gem 'redis', '~> 3.0' + # Use ActiveModel has_secure_password gem 'bcrypt', '~> 3.1.7' @@ -50,7 +56,15 @@ gem "font-awesome-sass", '~> 5.0.13' # Use Capistrano for deployment # gem 'capistrano-rails', group: :development +group :production do + # Use a postgres database in production. + gem 'pg', '~> 0.18' +end + group :development, :test do + # Use SQLite in development and test. + gem 'sqlite3' + # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platform: :mri diff --git a/Gemfile.lock b/Gemfile.lock index b3cb64d2..afe4f846 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -39,9 +39,9 @@ GEM minitest (~> 5.1) tzinfo (~> 1.1) arel (7.1.4) - autoprefixer-rails (8.5.0) + autoprefixer-rails (8.6.2) execjs - bcrypt (3.1.11) + bcrypt (3.1.12) bigbluebutton-api-ruby (1.6.0) xml-simple (~> 1.1) bindex (0.5.0) @@ -61,22 +61,22 @@ GEM concurrent-ruby (1.0.5) crass (1.0.4) diff-lcs (1.3) - dotenv (2.2.1) - dotenv-rails (2.2.1) - dotenv (= 2.2.1) - railties (>= 3.2, < 5.2) + dotenv (2.4.0) + dotenv-rails (2.4.0) + dotenv (= 2.4.0) + railties (>= 3.2, < 6.0) erubis (2.7.0) execjs (2.7.0) - factory_bot (4.8.2) + factory_bot (4.10.0) activesupport (>= 3.0.0) - factory_bot_rails (4.8.2) - factory_bot (~> 4.8.2) + factory_bot_rails (4.10.0) + factory_bot (~> 4.10.0) railties (>= 3.0.0) faker (1.8.7) i18n (>= 0.7) faraday (0.12.2) multipart-post (>= 1.2, < 3) - ffi (1.9.23) + ffi (1.9.25) font-awesome-sass (5.0.13) sassc (>= 1.11) globalid (0.4.1) @@ -133,6 +133,7 @@ GEM omniauth-twitter (1.4.0) omniauth-oauth (~> 1.1) rack + pg (0.21.0) popper_js (1.12.9) puma (3.11.4) rack (2.0.5) @@ -169,6 +170,7 @@ GEM rb-fsevent (0.10.3) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) + redis (3.3.5) rspec-core (3.7.1) rspec-support (~> 3.7.0) rspec-expectations (3.7.0) @@ -224,7 +226,7 @@ GEM turbolinks-source (5.1.0) tzinfo (1.2.5) thread_safe (~> 0.1) - uglifier (4.1.10) + uglifier (4.1.11) execjs (>= 0.3.0, < 3) web-console (3.6.2) actionview (>= 5.0) @@ -255,9 +257,11 @@ DEPENDENCIES omniauth omniauth-google-oauth2 omniauth-twitter + pg (~> 0.18) puma (~> 3.0) rails (~> 5.0.7) rails-controller-testing + redis (~> 3.0) rspec-rails (~> 3.7) sass-rails (~> 5.0) spring diff --git a/README.md b/README.md index 66979a17..c68c78e0 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,7 @@ Greenlight is a simple front-end interface for your BigBlueButton server. At it' Furthermore, Greenlight is completely configurable. This means you can turn on/off features to make Greenlight fit your specific use case. For more information on this, see our [documentation](http://docs.bigbluebutton.org/install/green-light.html). -For a overview of how GreenLight works, checkout our introduction to Greenlight video: - -[![GreenLight Overview](https://img.youtube.com/vi/yGX3JCv7OVM/0.jpg)](https://youtu.be/yGX3JCv7OVM) +For a overview of how GreenLight works, checkout our [Introduction to Greenlight video](https://youtu.be/yGX3JCv7OVM). ## Installation on a BigBlueButton Server @@ -27,7 +25,7 @@ Greenlight is designed to work on a [BigBlueButton 2.0](https://github.com/bigbl -## Source Code +## Source Code & Contributing GreenLight is built using Ruby on Rails. Many developers already know Rails well, and we wanted to create both a full front-end to BigBlueButton but also a reference implementation of how to fully leverage the [BigBlueButton API](http://docs.bigbluebutton.org/dev/api.html). diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.css.scss similarity index 100% rename from app/assets/stylesheets/application.scss rename to app/assets/stylesheets/application.css.scss diff --git a/config/database.yml b/config/database.yml index 1c1a37ca..4d6ac2ec 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,25 +1,23 @@ -# SQLite version 3.x -# gem install sqlite3 -# -# Ensure the SQLite 3 gem is defined in your Gemfile -# gem 'sqlite3' -# default: &default - adapter: sqlite3 pool: 5 timeout: 5000 development: <<: *default + adapter: sqlite3 database: db/development.sqlite3 -# Warning: The database defined as "test" will be erased and -# re-generated from your development database when you run "rake". -# Do not set this db to the same as development or production. test: <<: *default - database: db/test.sqlite3 + adapter: sqlite3 + database: db/development.sqlite3 production: <<: *default - database: db/production.sqlite3 + adapter: postgresql + database: greenlight_production + encoding: unicode + username: postgres + password: + host: db + diff --git a/config/environments/production.rb b/config/environments/production.rb index 9e50eb04..1a955111 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -19,11 +19,11 @@ Rails.application.configure do config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? # Compress JavaScripts and CSS. - config.assets.js_compressor = :uglifier + config.assets.js_compressor = Uglifier.new(harmony: true) # config.assets.css_compressor = :sass # Do not fallback to assets pipeline if a precompiled asset is missed. - config.assets.compile = false + config.assets.compile = true # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 54a967b3..5a5bc260 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -8,4 +8,4 @@ Rails.application.config.assets.version = '1.0' # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. -# Rails.application.config.assets.precompile += %w() +Rails.application.config.assets.precompile += %w(application.css) diff --git a/sample.env b/sample.env index 97a88ef2..9c7bb1d4 100644 --- a/sample.env +++ b/sample.env @@ -1,10 +1,15 @@ -# If set to true, GreenLight will attempt to fetch the endpoint and secret from the credentials -# endpoint by passing it the users provider. This is useful when launching into GreenLight from -# and external service with a customer provider (who may have different credentials). +# This is a sample of the environment variables you will need +# To use, copy this file to .env `cp sample.env .env` + +# Create a Secret Key for Rails +# +# You can generate a secure one through the Greenlight docker image +# with with the command. +# +# docker run --rm bigbluebutton/greenlight rake secret +# +SECRET_KEY_BASE= -# It is also worth noting that ALL Omniauth providers resolve to "greenlight" before being sent. -# If you are configuring GreenLight for use with a single BigBlueButton server, set this to false. -USE_LOADBALANCED_CONFIGURATION=false # The endpoint and secret for your BigBlueButton server. # Set these if you are running GreenLight on a single BigBlueButton server. @@ -15,12 +20,6 @@ USE_LOADBALANCED_CONFIGURATION=false BIGBLUEBUTTON_ENDPOINT= BIGBLUEBUTTON_SECRET= -# The endpoint and secret for your Loadbalancer server. -# Set these ONLY IF you are running BigBlueButton under a loadbalanced configuration. -# GreenLight will use these credentials to retrieve provider based server credentials. -LOADBALANCER_ENDPOINT= -LOADBALANCER_SECRET= - # Google Login Provider (optional) # # For in-depth steps on setting up a Google Login Provider, see: @@ -46,4 +45,4 @@ TWITTER_SECRET= # Set this to true if you want GreenLight to support user signup and login without # Omniauth. This will allow users to create an account at www.hostname.com/signup # and use that account to fully interact with GreenLight. -ALLOW_GREENLIGHT_ACCOUNTS=false \ No newline at end of file +ALLOW_GREENLIGHT_ACCOUNTS=false