make upgrading from 1.0 easier

This commit is contained in:
Joshua Arts 2018-07-05 17:25:59 -04:00
parent fd1b550f93
commit e2ad6e7715
12 changed files with 51 additions and 23 deletions

View File

@ -14,7 +14,7 @@ tmp
/db/**/*.sqlite3-journal /db/**/*.sqlite3-journal
/db/production /db/production
public/assets public/assets
public/gl public/b
coverage/ coverage/
spec/tmp spec/tmp
.rvmrc .rvmrc

2
.gitignore vendored
View File

@ -14,7 +14,7 @@
# Ignore static assets. # Ignore static assets.
/public/system/** /public/system/**
/public/assets/** /public/assets/**
/public/gl/** /public/b/**
# Ignore production paths. # Ignore production paths.
/db/production /db/production

View File

@ -1,7 +1,7 @@
FROM ruby:2.5 FROM ruby:2.5
# Install app dependencies. # Install app dependencies.
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
# Set an environment variable for the install location. # Set an environment variable for the install location.
ENV RAILS_ROOT /usr/src/app ENV RAILS_ROOT /usr/src/app
@ -23,8 +23,8 @@ RUN bundle install --without development test --deployment --clean
RUN bundle exec rake assets:clean RUN bundle exec rake assets:clean
RUN bundle exec rake assets:precompile RUN bundle exec rake assets:precompile
# Expose port 3000. # Expose port 80.
EXPOSE 3000 EXPOSE 80
# Start the application. # Start the application.
CMD ["bin/start"] CMD ["bin/start"]

View File

@ -1,5 +1,7 @@
# Greenlight # Greenlight
Greenlight is currently on version 2.0. If you are still running Greenlight 1.0 we suggest [upgrading to 2.0](http://docs.bigbluebutton.org/install/greenlight-v2.html#upgrading-from-greenlight-10).
Greenlight is a simple front-end interface for your BigBlueButton server. At it's heart, Greenlight provides a minimalistic web-based application that allows users to: Greenlight is a simple front-end interface for your BigBlueButton server. At it's heart, Greenlight provides a minimalistic web-based application that allows users to:
* Signup/Login with Twitter, Google, or through the application itself. * Signup/Login with Twitter, Google, or through the application itself.
@ -10,7 +12,7 @@ Greenlight is a simple front-end interface for your BigBlueButton server. At it'
Interested? Try Greenlight out on our [demo server](https://demo.bigbluebutton.org/gl)! Interested? Try Greenlight out on our [demo server](https://demo.bigbluebutton.org/gl)!
Greenlight is also completely configurable. This means you can turn on/off features to make Greenlight fit your specific use case. For more information on Greenlight and its features, see our [documentation](http://docs.bigbluebutton.org/install/greenlight.html). Greenlight is also completely configurable. This means you can turn on/off features to make Greenlight fit your specific use case. For more information on Greenlight and its features, see our [documentation](http://docs.bigbluebutton.org/install/greenlight-v2.html).
For a overview of how Greenlight works, checkout our Introduction to Greenlight Video: For a overview of how Greenlight works, checkout our Introduction to Greenlight Video:

View File

@ -5,6 +5,13 @@ require 'bigbluebutton_api'
class ApplicationController < ActionController::Base class ApplicationController < ActionController::Base
include SessionsHelper include SessionsHelper
before_action :migration_error?
# Show an information page when migration fails and there is a version error.
def migration_error?
render :migration_error unless ENV["DB_MIGRATE_FAILED"].blank?
end
protect_from_forgery with: :exception protect_from_forgery with: :exception
MEETING_NAME_LIMIT = 90 MEETING_NAME_LIMIT = 90

View File

@ -0,0 +1,16 @@
<div class="page mt-0">
<div class="page-content mt-0">
<div class="container text-center">
<i class="fas fa-database fa-6x mb-4"></i>
<h1 class="h3 mb-2">Greenlight encountered a database migration error.<br>This may be because you haven't updated to Greenlight 2.0.</h1>
<p class="h4 text-muted font-weight-normal mb-7">If you are not an administrator, please contact one.</p>
<h1 class="h3 mb-3">We've released a new version of Greenlight, but your database isn't compatible.</h1>
<a class="btn btn-success mt-3 mx-3" href="http://docs.bigbluebutton.org/install/greenlight-v2.html#upgrading-from-greenlight-10" target="_blank">
<i class="far fa-star mr-2"></i>Show me how to upgrade to 2.0!
</a>
<a class="btn btn-info mt-3 mx-3 w-20" href="" target="_blank">
<i class="far fa-hand-paper mr-2"></i>I'd like to stay using 1.0.
</a>
</div>
</div>
</div>

View File

@ -1,6 +1,8 @@
#!/bin/bash #!/bin/bash
bundle exec rake db:create bundle exec rake db:create
bundle exec rake db:migrate if ! bundle exec rake db:migrate ; then
export DB_MIGRATE_FAILED=1
fi
exec bundle exec puma -C config/puma.rb exec bundle exec puma -C config/puma.rb

View File

@ -87,6 +87,7 @@ Rails.application.configure do
config.active_record.dump_schema_after_migration = false config.active_record.dump_schema_after_migration = false
# Set the relative url root for deployment to a subdirectory. # Set the relative url root for deployment to a subdirectory.
config.relative_url_root = "/" if ENV['RELATIVE_URL_ROOT'] != "/"
config.relative_url_root = ENV['RELATIVE_URL_ROOT'] if ENV['RELATIVE_URL_ROOT'].present? config.relative_url_root = ENV['RELATIVE_URL_ROOT'] || "/b"
end
end end

View File

@ -11,7 +11,7 @@ threads threads_count, threads_count
# Specifies the `port` that Puma will listen on to receive requests, default is 3000. # Specifies the `port` that Puma will listen on to receive requests, default is 3000.
# #
port ENV.fetch("PORT") { 3000 } port ENV.fetch("PORT") { 80 }
# Specifies the `environment` that Puma will run in. # Specifies the `environment` that Puma will run in.
# #

View File

@ -1,14 +1,14 @@
version: '3' version: '3'
services: services:
app: app:
entrypoint: [bin/start] entrypoint: [bin/start]
image: joshblind/greenlight:latest image: joshblind/greenlight:v2
container_name: greenlight-web container_name: greenlight-v2
env_file: env env_file: env
restart: unless-stopped restart: unless-stopped
ports: ports:
- 6000:3000 - 5000:80
volumes: volumes:
- ./db/production:/usr/src/app/db/production - ./db/production:/usr/src/app/db/production
- ./log:/usr/src/app/log - ./log:/usr/src/app/log

View File

@ -1,18 +1,18 @@
# Routes requests to Greenlight based on the '/gl' prefix. # Routes requests to Greenlight based on the '/b' prefix.
# Use this file to route '/gl' paths on your BigBlueButton server # Use this file to route '/b' paths on your BigBlueButton server
# to the Greenlight application. If you are using a different # to the Greenlight application. If you are using a different
# subpath, you should change it here. # subpath, you should change it here.
location /gl { location /b {
proxy_pass http://127.0.0.1:6000; proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1; proxy_http_version 1.1;
} }
location /gl/cable { location /b/cable {
proxy_pass http://127.0.0.1:6000; proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;

View File

@ -50,6 +50,6 @@ ALLOW_GREENLIGHT_ACCOUNTS=true
# if deploying on a BigBlueButton server. Keep in mind that if you change this, you'll # if deploying on a BigBlueButton server. Keep in mind that if you change this, you'll
# have to update your authentication callback URL's to reflect this change. # have to update your authentication callback URL's to reflect this change.
# #
# The recommended prefix is "/gl". # The recommended prefix is "/b".
# #
RELATIVE_URL_ROOT=/gl RELATIVE_URL_ROOT=/b