Skip to content

Commit

Permalink
Make needed changes for server deploys
Browse files Browse the repository at this point in the history
  • Loading branch information
hortongn committed Nov 13, 2018
1 parent 294cdad commit bae4ec9
Show file tree
Hide file tree
Showing 37 changed files with 565 additions and 99 deletions.
59 changes: 59 additions & 0 deletions .env.development
@@ -0,0 +1,59 @@
# Application
SCHOLAR_APPLICATION_URL=http://localhost:3000
SCHOLAR_JOB_QUEUE_ADAPTER=:inline
SCHOLAR_PRODUCTION_MAILER_URL=localhost:3000
SCHOLAR_INITIALIZERS_SECRET_KEY=secret_key

# Authentication/Shibboleth
SCHOLAR_SHIBBOLETH_ENABLED=false
SCHOLAR_SHIBBOLETH_LOGOUT=
SCHOLAR_SIGNUPS_ENABLED=true

# Browse Everything
SCHOLAR_BROWSE_EVERYTHING_BOX_ID=box_id
SCHOLAR_BROWSE_EVERYTHING_BOX_SECRET=box_secret
SCHOLAR_BROWSE_EVERYTHING_KALTURA_ID=kaltura_id
SCHOLAR_BROWSE_EVERYTHING_KALTURA_SECRET=kaltura_secret

# Database settings
SCHOLAR_DATABASE_ADAPTER=sqlite3
SCHOLAR_DATABASE_HOST=
SCHOLAR_DATABASE_NAME=db/development.sqlite3
SCHOLAR_DATABASE_PASSWORD=
SCHOLAR_DATABASE_POOL=5
SCHOLAR_DATABASE_PORT=
SCHOLAR_DATABASE_TIMEOUT=5000
SCHOLAR_DATABASE_USERNAME=

# Devise
SCHOLAR_DEVISE_KEY=devise_secret_key

# Google Analytics
SCHOLAR_ANALYTICS_ID=analytics_id
SCHOLAR_ANALYTICS_PRIVKEY_PATH=analytics_privkey_path
SCHOLAR_ANALYTICS_PRIVKEY_SECRET=analytics_privkey_secret
SCHOLAR_ANALYTICS_CLIENT_EMAIL=analytics_client_email

# Google Re-captcha
SCHOLAR_CAPTCHA_SITE_KEY=captcha_site_key
SCHOLAR_CAPTCHA_SECRET_KEY=captcha_secret_key

# ORCID
ORCID_AUTHORIZE_URL=change_me
ORCID_APP_ID=change_me
ORCID_REMOTE_SIGNIN_URL=change_me
ORCID_SANDBOX_BOOLEAN=true
ORCID_APP_SECRET=change_me
ORCID_SITE_URL=change_me
OCRID_TOKEN_URL=change_me

# Samvera
SCHOLAR_CACHE_PATH=/tmp/cache
SCHOLAR_DERIVATIVES_PATH=/tmp/derivatives
SCHOLAR_FEDORA_PASSWORD=fedoraAdmin
SCHOLAR_FEDORA_URL=http://127.0.0.1:8984/rest
SCHOLAR_MINTER_STATE_FILE=/tmp/minter-state
SCHOLAR_RIIIF_CACHE=/tmp/riiif
SCHOLAR_SOFFICE_PATH=soffice
SCHOLAR_SOLR_URL=http://127.0.0.1:8983/solr/hydra-development
SCHOLAR_UPLOAD_PATH=/tmp/uploads
59 changes: 59 additions & 0 deletions .env.test
@@ -0,0 +1,59 @@
# Application
SCHOLAR_APPLICATION_URL=http://localhost:3000
SCHOLAR_JOB_QUEUE_ADAPTER=:inline
SCHOLAR_PRODUCTION_MAILER_URL=localhost:3000
SCHOLAR_INITIALIZERS_SECRET_KEY=secret_key

# Authentication/Shibboleth
SCHOLAR_SHIBBOLETH_ENABLED=false
SCHOLAR_SHIBBOLETH_LOGOUT=
SCHOLAR_SIGNUPS_ENABLED=true

# Browse Everything
SCHOLAR_BROWSE_EVERYTHING_BOX_ID=box_id
SCHOLAR_BROWSE_EVERYTHING_BOX_SECRET=box_secret
SCHOLAR_BROWSE_EVERYTHING_KALTURA_ID=kaltura_id
SCHOLAR_BROWSE_EVERYTHING_KALTURA_SECRET=kaltura_secret

# Database settings
SCHOLAR_DATABASE_ADAPTER=sqlite3
SCHOLAR_DATABASE_HOST=
SCHOLAR_DATABASE_NAME=db/test.sqlite3
SCHOLAR_DATABASE_PASSWORD=
SCHOLAR_DATABASE_POOL=5
SCHOLAR_DATABASE_PORT=
SCHOLAR_DATABASE_TIMEOUT=30000
SCHOLAR_DATABASE_USERNAME=

# Devise
SCHOLAR_DEVISE_KEY=devise_secret_key

# Google Analytics
SCHOLAR_ANALYTICS_ID=analytics_id
SCHOLAR_ANALYTICS_PRIVKEY_PATH=analytics_privkey_path
SCHOLAR_ANALYTICS_PRIVKEY_SECRET=analytics_privkey_secret
SCHOLAR_ANALYTICS_CLIENT_EMAIL=analytics_client_email

# Google Re-captcha
SCHOLAR_CAPTCHA_SITE_KEY=captcha_site_key
SCHOLAR_CAPTCHA_SECRET_KEY=captcha_secret_key

# ORCID
ORCID_AUTHORIZE_URL=change_me
ORCID_APP_ID=change_me
ORCID_REMOTE_SIGNIN_URL=change_me
ORCID_SANDBOX_BOOLEAN=true
ORCID_APP_SECRET=change_me
ORCID_SITE_URL=change_me
OCRID_TOKEN_URL=change_me

# Samvera
SCHOLAR_CACHE_PATH=/tmp/cache
SCHOLAR_DERIVATIVES_PATH=/tmp/derivatives
SCHOLAR_FEDORA_PASSWORD=fedoraAdmin
SCHOLAR_FEDORA_URL=http://127.0.0.1:8986/rest
SCHOLAR_MINTER_STATE_FILE=/tmp/minter-state
SCHOLAR_RIIIF_CACHE=/tmp/riiif
SCHOLAR_SOFFICE_PATH=soffice
SCHOLAR_SOLR_URL=http://127.0.0.1:8985/solr/hydra-test
SCHOLAR_UPLOAD_PATH=/tmp/uploads
5 changes: 5 additions & 0 deletions .gitignore
Expand Up @@ -32,3 +32,8 @@ fits.log
# Ignore uploaded avatars and banners
public/branding/*
public/system/avatars/*

* Ignore dotenv config files
.env.development.local
.env.test.local
.env.production.local
7 changes: 5 additions & 2 deletions Gemfile
Expand Up @@ -48,9 +48,11 @@ gem 'change_manager', git: "https://github.com/uclibs/change_manager.git", ref:
gem 'devise'
gem 'devise-guests', '~> 0.6'
gem 'devise-multi_auth', git: 'https://github.com/uclibs/devise-multi_auth', branch: 'rails-5-1'
gem 'dotenv-rails'
gem 'equivalent-xml'
gem 'hydra-role-management'
gem 'hyrax', git: 'https://github.com/samvera/hyrax.git', tag: 'v2.3.3'
gem 'mysql2', '~> 0.4.10'
gem 'omniauth-openid'
gem 'omniauth-shibboleth'
gem 'orcid', git: 'https://github.com/uclibs/orcid', branch: 'rails-5-1'
Expand All @@ -75,8 +77,9 @@ group :development do
gem 'listen', '~> 3.0.5'
gem 'web-console', '>= 3.3.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
# Disabling Spring because in interferes with loading environment variables
# gem 'spring'
# gem 'spring-watcher-listen', '~> 2.0.0'
end

group :test do
Expand Down
14 changes: 7 additions & 7 deletions Gemfile.lock
Expand Up @@ -295,6 +295,10 @@ GEM
devise
diff-lcs (1.3)
docile (1.3.1)
dotenv (2.5.0)
dotenv-rails (2.5.0)
dotenv (= 2.5.0)
railties (>= 3.2, < 6.0)
dropbox-sdk (1.6.5)
json
dry-configurable (0.7.0)
Expand Down Expand Up @@ -562,6 +566,7 @@ GEM
multi_json (1.13.1)
multi_xml (0.6.0)
multipart-post (2.0.0)
mysql2 (0.4.10)
nest (3.1.1)
redic
net-http-persistent (3.0.0)
Expand Down Expand Up @@ -851,11 +856,6 @@ GEM
sparql-client (3.0.0)
net-http-persistent (>= 2.9, < 4)
rdf (~> 3.0)
spring (2.0.2)
activesupport (>= 4.2)
spring-watcher-listen (2.0.1)
listen (>= 2.7, < 4.0)
spring (>= 1.2, < 3.0)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
Expand Down Expand Up @@ -930,6 +930,7 @@ DEPENDENCIES
devise
devise-guests (~> 0.6)
devise-multi_auth!
dotenv-rails
equivalent-xml
factory_bot_rails
fcrepo_wrapper
Expand All @@ -939,6 +940,7 @@ DEPENDENCIES
jquery-rails
kaltura (= 0.1.1)
listen (~> 3.0.5)
mysql2 (~> 0.4.10)
omniauth-openid
omniauth-shibboleth
orcid!
Expand All @@ -957,8 +959,6 @@ DEPENDENCIES
show_me_the_cookies
sidekiq
solr_wrapper (>= 0.3)
spring
spring-watcher-listen (~> 2.0.0)
sqlite3
turbolinks (~> 5)
tzinfo-data
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/application_controller.rb
Expand Up @@ -27,7 +27,7 @@ def after_sign_in_path_for(resource)

def after_sign_out_path_for(_resource_or_scope)
if cookies[:login_type] == "shibboleth"
"/Shibboleth.sso/Logout?return=https%3A%2F%2Fbamboo_shibboleth_logout"
"/Shibboleth.sso/Logout?return=https%3A%2F%2F" + ENV['SCHOLAR_SHIBBOLETH_LOGOUT']
else
root_path
end
Expand Down
19 changes: 19 additions & 0 deletions app/services/hyrax/analytics.rb
@@ -0,0 +1,19 @@
# frozen_string_literal: true
require 'oauth2'
require 'signet/oauth_2/client'
require Hyrax::Engine.root.join('app/services/hyrax/analytics.rb')
module Hyrax
module Analytics
class Config
def self.load_from_yaml
filename = Rails.root.join('config', 'analytics.yml')
yaml = YAML.safe_load(ERB.new(File.read(filename)).result)
unless yaml
Rails.logger.error("Unable to fetch any keys from #{filename}.")
return new({})
end
new yaml.fetch('analytics')
end
end
end
end
12 changes: 6 additions & 6 deletions config/analytics.yml
@@ -1,9 +1,9 @@
#
# To integrate your app with Google Analytics, uncomment the lines below and add your API key information.
#
# analytics:
# app_name: GOOGLE_OAUTH_APP_NAME
# app_version: GOOGLE_OAUTH_APP_VERSION
# privkey_path: GOOGLE_OAUTH_PRIVATE_KEY_PATH
# privkey_secret: GOOGLE_OAUTH_PRIVATE_KEY_SECRET
# client_email: GOOGLE_OAUTH_CLIENT_EMAIL
analytics:
app_name: GOOGLE_OAUTH_APP_NAME
app_version: GOOGLE_OAUTH_APP_VERSION
privkey_path: <%= ENV["SCHOLAR_ANALYTICS_PRIVKEY_PATH"] %>
privkey_secret: <%= ENV["SCHOLAR_ANALYTICS_PRIVKEY_SECRET"] %>
client_email: <%= ENV["SCHOLAR_ANALYTICS_CLIENT_EMAIL"] %>
8 changes: 0 additions & 8 deletions config/application.yml
@@ -1,8 +0,0 @@
# Replace below with bamboo variables for production

ORCID_APP_ID: bamboo_orcid_id
ORCID_APP_SECRET: bamboo_orcid_secret
ORCID_SITE_URL: bamboo_orcid_site_url
ORCID_TOKEN_URL: bamboo_orcid_token_url
ORCID_REMOTE_SIGNIN_URL: bamboo_orcid_remote_signin_url
ORCID_AUTHORIZE_URL: bamboo_orcid_authorize_url
12 changes: 6 additions & 6 deletions config/authentication.yml
@@ -1,11 +1,11 @@
development:
shibboleth_enabled: false
signups_enabled: true
shibboleth_enabled: <%= ENV["SCHOLAR_SHIBBOLETH_ENABLED"] %>
signups_enabled: <%= ENV["SCHOLAR_SIGNUPS_ENABLED"] %>

test:
shibboleth_enabled: true
signups_enabled: false
shibboleth_enabled: <%= ENV["SCHOLAR_SHIBBOLETH_ENABLED"] %>
signups_enabled: <%= ENV["SCHOLAR_SIGNUPS_ENABLED"] %>

production:
shibboleth_enabled: true
signups_enabled: false
shibboleth_enabled: <%= ENV["SCHOLAR_SHIBBOLETH_ENABLED"] %>
signups_enabled: <%= ENV["SCHOLAR_SIGNUPS_ENABLED"] %>
6 changes: 3 additions & 3 deletions config/blacklight.yml
@@ -1,9 +1,9 @@
development:
adapter: solr
url: <%= ENV['SOLR_URL'] || "http://127.0.0.1:#{ENV.fetch('SOLR_DEVELOPMENT_PORT', 8983)}/solr/hydra-development" %>
url: <%= ENV['SCHOLAR_SOLR_URL'] %>
test: &test
adapter: solr
url: <%= ENV['SOLR_URL'] || "http://127.0.0.1:#{ENV.fetch('SOLR_TEST_PORT', 8985)}/solr/hydra-test" %>
url: <%= ENV['SCHOLAR_SOLR_URL'] %>
production:
adapter: solr
url: <%= ENV['SOLR_URL'] || "http://127.0.0.1:8983/solr/blacklight-core" %>
url: <%= ENV['SCHOLAR_SOLR_URL'] %>
8 changes: 2 additions & 6 deletions config/browse_everything_providers.yml
Expand Up @@ -7,8 +7,8 @@
# :app_key: YOUR_DROPBOX_APP_KEY
# :app_secret: YOUR_DROPBOX_APP_SECRET
box:
:client_id: bamboo_browse_everything_box_id
:client_secret: bamboo_browse_everything_box_secret
:client_id: <%= ENV["SCHOLAR_BROWSE_EVERYTHING_BOX_ID"] %>
:client_secret: <%= ENV["SCHOLAR_BROWSE_EVERYTHING_BOX_SECRET"] %>
# google_drive:
# :client_id: YOUR_GOOGLE_API_CLIENT_ID
# :client_secret: YOUR_GOOGLE_API_CLIENT_SECRET
Expand All @@ -19,7 +19,3 @@ box:
# :app_secret: YOUR_AWS_S3_SECRET # explicitly here, or left out to use system-configured
# :region: YOUR_AWS_S3_REGION # defaults.
# See https://aws.amazon.com/blogs/security/a-new-and-standardized-way-to-manage-credentials-in-the-aws-sdks/
kaltura:
:partner_id: bamboo_browse_everything_kaltura_id
:administrator_secret: bamboo_browse_everything_kaltura_secret
:service_url: 'https://www.kaltura.com'
53 changes: 33 additions & 20 deletions config/database.yml
@@ -1,26 +1,39 @@
# 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
<%
socket = [
ENV["BOXEN_MYSQL_SOCKET"],
"/var/run/mysql5/mysqld.sock",
"/tmp/mysql.sock"
].detect { |f| f && File.exist?(f) }
port = ENV["SCHOLAR_DATABASE_PORT"]
%>

mysql_connection: &mysql_connection
<% if socket %>
host: <%= ENV["SCHOLAR_DATABASE_HOST"] %>
socket: <%= socket %>
<% else %>
host: 127.0.0.1
port: <%= port %>
<% end %>

database_settings: &database_settings
<<: *mysql_connection
adapter: <%= ENV["SCHOLAR_DATABASE_ADAPTER"] %>
pool: <%= ENV["SCHOLAR_DATABASE_POOL"] %>
username: <%= ENV["SCHOLAR_DATABASE_USERNAME"] %>
password: <%= ENV["SCHOLAR_DATABASE_PASSWORD"] %>
database: <%= ENV["SCHOLAR_DATABASE_NAME"] %>
host: <%= ENV["SCHOLAR_DATABASE_HOST"] %>
timeout: <%= ENV["SCHOLAR_DATABASE_TIMEOUT"] %>
encoding: utf8
RECONNECT: FALSE

development:
<<: *default
database: db/development.sqlite3
<<: *database_settings

# 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
timeout: 30000
<<: *database_settings

production:
<<: *default
database: db/production.sqlite3
<<: *database_settings
4 changes: 2 additions & 2 deletions config/environments/development.rb
Expand Up @@ -32,7 +32,7 @@
config.action_mailer.raise_delivery_errors = false

config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { host: 'localhost:3000' }
config.action_mailer.default_url_options = { host: ENV['SCHOLAR_PRODUCTION_MAILER_URL'] }

# Print deprecation notices to the Rails logger.
config.active_support.deprecation = :log
Expand All @@ -56,5 +56,5 @@
config.file_watcher = ActiveSupport::EventedFileUpdateChecker

# Use Sidekiq to process background jobs
config.active_job.queue_adapter = :inline
config.active_job.queue_adapter = ENV['SCHOLAR_JOB_QUEUE_ADAPTER'].parameterize.underscore.to_sym
end

0 comments on commit bae4ec9

Please sign in to comment.