mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Merge pull request #900 from openSUSE/demo
Make it possible to run OSEM on heroku
This commit is contained in:
commit
ac0659d9c6
31 changed files with 242 additions and 137 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -31,3 +31,8 @@ pickle-email-*.html
|
|||
/doc/app
|
||||
.ruby-version
|
||||
.vagrant/
|
||||
.env
|
||||
.env.production
|
||||
.env.development
|
||||
.env.test
|
||||
.env.local
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ notifications:
|
|||
on_failure: change
|
||||
before_script:
|
||||
- cp config/database.yml.example config/database.yml
|
||||
- cp config/config.yml.example config/config.yml
|
||||
- cp config/secrets.yml.example config/secrets.yml
|
||||
- RAILS_ENV=test bundle exec rake db:migrate --trace
|
||||
script:
|
||||
- 'bundle exec rubocop -Dc .rubocop.yml'
|
||||
|
|
|
|||
9
Gemfile
9
Gemfile
|
|
@ -8,6 +8,11 @@ end
|
|||
# as web framework
|
||||
gem 'rails', '~> 4.2'
|
||||
|
||||
# enables serving assets in production and setting your logger to standard out
|
||||
# both of which are required to run an application on a twelve-factor provider
|
||||
# like heroku.com
|
||||
gem 'rails_12factor', group: :production
|
||||
|
||||
# respond_to methods have been extracted to the responders gem
|
||||
# http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#responders
|
||||
gem 'responders', '~> 2.0'
|
||||
|
|
@ -166,6 +171,10 @@ gem 'ruby-oembed'
|
|||
# for uploading images to the cloud
|
||||
gem 'cloudinary'
|
||||
|
||||
# for setting app configuration in the environment
|
||||
gem 'dotenv-rails'
|
||||
|
||||
# Use guard and spring for testing in development
|
||||
group :development do
|
||||
# to launch specs when files are modified
|
||||
gem 'guard-rspec', '~> 4.2.8'
|
||||
|
|
|
|||
11
Gemfile.lock
11
Gemfile.lock
|
|
@ -162,6 +162,10 @@ GEM
|
|||
docile (1.1.5)
|
||||
domain_name (0.5.20160310)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
dotenv (2.1.1)
|
||||
dotenv-rails (2.1.1)
|
||||
dotenv (= 2.1.1)
|
||||
railties (>= 4.0, < 5.1)
|
||||
erubis (2.7.0)
|
||||
execjs (2.6.0)
|
||||
factory_girl (4.5.0)
|
||||
|
|
@ -372,6 +376,11 @@ GEM
|
|||
railties (~> 4.0)
|
||||
rails-observers (0.1.2)
|
||||
activemodel (~> 4.0)
|
||||
rails_12factor (0.0.3)
|
||||
rails_serve_static_assets
|
||||
rails_stdout_logging
|
||||
rails_serve_static_assets (0.0.4)
|
||||
rails_stdout_logging (0.0.3)
|
||||
railties (4.2.5.2)
|
||||
actionpack (= 4.2.5.2)
|
||||
activesupport (= 4.2.5.2)
|
||||
|
|
@ -539,6 +548,7 @@ DEPENDENCIES
|
|||
delayed_job_active_record
|
||||
devise
|
||||
devise_ichain_authenticatable
|
||||
dotenv-rails
|
||||
factory_girl_rails
|
||||
font-awesome-rails
|
||||
formtastic (~> 3.1.1)
|
||||
|
|
@ -581,6 +591,7 @@ DEPENDENCIES
|
|||
rails-assets-waypoints!
|
||||
rails-i18n (~> 4.0.0)
|
||||
rails-observers
|
||||
rails_12factor
|
||||
rdoc-generator-fivefish
|
||||
redcarpet
|
||||
responders (~> 2.0)
|
||||
|
|
|
|||
32
INSTALL.md
32
INSTALL.md
|
|
@ -5,7 +5,33 @@ base operating systems. [Check Google](https://encrypted.google.com/search?hl=en
|
|||
|
||||
For more information about rails and what it can do, see the [rails guides.](http://guides.rubyonrails.org/getting_started.html)
|
||||
|
||||
## Dependency for ImageMagick
|
||||
## Configuring OSEM
|
||||
There are a couple of environment variables you can set to configure OSEM.
|
||||
|
||||
| Variable | Content | Purpose |
|
||||
|---------- |--------- |--------- |
|
||||
| OSEM_NAME | openSUSE Events | The name of your page |
|
||||
| OSEM_HOSTNAME | events.opensuse.org | The host this OSEM instance runs on |
|
||||
| OSEM_EMAIL_ADDRESS | events@opensuse.org | The address OSEM uses for sending mails |
|
||||
| OSEM_ICHAIN_ENABLED | true/false | Enable the usage of [devise_ichain_authenticatable](https://github.com/openSUSE/devise_ichain_authenticatable) |
|
||||
| OSEM_TRANSIFEX_APIKEY | *string* | Use this api key for [transifex](https://www.transifex.com/). See TRANSLATION.md for details. |
|
||||
| OSEM_ERRBIT_HOST | errbit.opensuse.org | The [errbit](https://github.com/errbit/errbit) host to post exceptions to |
|
||||
| OSEM_ERRBIT_APIKEY | *string* | The api key for the errbit host |
|
||||
| OSEM_FACTORY_LINT | *boolean* (true/false) | Setting this to false will disable linting of factories before running spec
|
||||
| OSEM_GOOGLE_KEY/OSEM_GOOGLE_SECRET | *string* | OMNIAUTH Developer Keys/Secrets for GOOGLE
|
||||
| OSEM_FACEBOOK_KEY/OSEM_FACEBOOK_SECRET | *string* | OMNIAUTH Developer Keys/Secrets for Facebook
|
||||
| OSEM_GITHUB_KEY/OSEM_GITHUB_SECRET |*string* | OMNIAUTH Developer Keys/Secrets for GitHub
|
||||
| OSEM_SMTP_ADDRESS | smtp.opensuse.org | The smtp server to use
|
||||
| OSEM_SMTP_PORT | *int* | The port on the smtp server
|
||||
| OSEM_SMTP_USERNAME | *string* | The user for the smtp server
|
||||
| OSEM_SMTP_PASSWORD | *string* | The password for the smtp server
|
||||
| OSEM_SMTP_AUTHENTICATION | plain, login or cram_md5 | The auth method for the smtp server
|
||||
| OSEM_SMTP_DOMAIN | opensuse.org | The HELO domain for the smtp server
|
||||
| CLOUDINARY_URL | *sting* | Configure your cloudinary.com cloud name and api key/secret
|
||||
|
||||
## Dependencies
|
||||
|
||||
### ImageMagick
|
||||
We use [ImageMagick](http://imagemagick.org/) for image manipulation so it needs to be available in your installation.
|
||||
If you would like to resize exisiting logos in your OSEM installation you can do so by running the following rake task:
|
||||
|
||||
|
|
@ -13,11 +39,11 @@ If you would like to resize exisiting logos in your OSEM installation you can do
|
|||
$ bundle exec rake logo:reprocess
|
||||
```
|
||||
|
||||
## Using openID
|
||||
### openID
|
||||
In order to use [openID](http://openid.net/) logins for your OSEM installation you need to register your application with the providers ([Google](https://code.google.com/apis/console#:access), [GitHub](https://github.com/settings/applications/new) or [Facebook](https://developers.facebook.com/)) and enter their API keys in `config/secrets.yml` file, changing the existing sample values.
|
||||
|
||||
|
||||
## Recurring Jobs
|
||||
=======
|
||||
Open a separate terminal and go into the directory where the rails app is present, and type the following to start the delayed_jobs worker for sending email notifications.
|
||||
```
|
||||
bundle exec rake jobs:work
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class ConferenceRegistrationsController < ApplicationController
|
|||
redirect_to edit_conference_conference_registrations_path(@conference.short_title)
|
||||
return
|
||||
# ichain does not allow us to create users during registration
|
||||
elsif CONFIG['authentication']['ichain']['enabled'] && !current_user
|
||||
elsif (ENV['OSEM_ICHAIN_ENABLED'] == 'true') && !current_user
|
||||
redirect_to root_path, alert: 'You need to sign in or sign up before continuing.'
|
||||
return
|
||||
end
|
||||
|
|
|
|||
|
|
@ -274,8 +274,10 @@ module ApplicationHelper
|
|||
unless Rails.application.secrets.send(provider_key).blank? || Rails.application.secrets.send(provider_secret).blank?
|
||||
providers << provider
|
||||
end
|
||||
providers << provider if !ENV["OSEM_#{provider.upcase}_KEY"].blank? && !ENV["OSEM_#{provider.upcase}_SECRET"].blank?
|
||||
end
|
||||
return providers
|
||||
|
||||
return providers.uniq
|
||||
end
|
||||
|
||||
# Receives a hash, generated from User model, function get_roles
|
||||
|
|
@ -294,7 +296,7 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def sign_in_path
|
||||
if CONFIG['authentication']['ichain']['enabled']
|
||||
if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
new_user_ichain_session_path
|
||||
else
|
||||
new_user_session_path
|
||||
|
|
@ -302,7 +304,7 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def sign_up_path
|
||||
if CONFIG['authentication']['ichain']['enabled']
|
||||
if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
new_user_ichain_registration_path
|
||||
else
|
||||
new_user_registration_path
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class Ability
|
|||
# can view Commercials of confirmed Events
|
||||
can :show, Commercial, commercialable_type: 'Event', commercialable_id: Event.where(state: 'confirmed').pluck(:id)
|
||||
can [:show, :create], User
|
||||
unless CONFIG['authentication']['ichain']['enabled']
|
||||
unless ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
can :show, Registration do |registration|
|
||||
registration.new_record?
|
||||
end
|
||||
|
|
|
|||
|
|
@ -9,12 +9,12 @@ class EmailSettings < ActiveRecord::Base
|
|||
'conference_start_date' => conference.start_date,
|
||||
'conference_end_date' => conference.end_date,
|
||||
'registrationlink' => Rails.application.routes.url_helpers.conference_conference_registrations_url(
|
||||
conference.short_title, host: CONFIG['url_for_emails']),
|
||||
conference.short_title, host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000')),
|
||||
'conference_splash_link' => Rails.application.routes.url_helpers.conference_url(
|
||||
conference.short_title, host: CONFIG['url_for_emails']),
|
||||
conference.short_title, host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000')),
|
||||
|
||||
'schedule_link' => Rails.application.routes.url_helpers.schedule_conference_url(
|
||||
conference.short_title, host: CONFIG['url_for_emails'])
|
||||
conference.short_title, host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000'))
|
||||
}
|
||||
|
||||
if conference.program.cfp
|
||||
|
|
@ -41,7 +41,7 @@ class EmailSettings < ActiveRecord::Base
|
|||
if event
|
||||
h['eventtitle'] = event.title
|
||||
h['proposalslink'] = Rails.application.routes.url_helpers.conference_program_proposal_index_url(
|
||||
conference.short_title, host: CONFIG['url_for_emails'])
|
||||
conference.short_title, host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000'))
|
||||
end
|
||||
h
|
||||
end
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class User < ActiveRecord::Base
|
|||
# :lockable, :timeoutable and :omniauthable
|
||||
devise_modules = []
|
||||
|
||||
if CONFIG['authentication']['ichain']['enabled']
|
||||
if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
devise_modules += [ :ichain_authenticatable, :ichain_registerable, :omniauthable, omniauth_providers: [] ]
|
||||
else
|
||||
devise_modules += [:database_authenticatable, :registerable,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
%legend
|
||||
%span
|
||||
=link_to('#signup', role: 'tab', "aria-controls" => "home", "data-toggle" => "tab") do
|
||||
= CONFIG['name']
|
||||
= ENV['OSEM_NAME'] || 'OSEM'
|
||||
Account
|
||||
%span.pull-right#account-already
|
||||
=link_to('#signin', role: 'tab', "aria-controls" => "home", "data-toggle" => "tab") do
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
- if !CONFIG['authentication']['ichain']['enabled']
|
||||
- if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
= form_tag(new_user_session_path, class: 'form-horizontal') do
|
||||
%legend
|
||||
%span
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
%span.icon-bar
|
||||
%span.icon-bar
|
||||
%span.icon-bar
|
||||
= link_to CONFIG['name'], root_path, class: 'navbar-brand', title: 'Open Source Event Manager'
|
||||
= link_to (ENV['OSEM_NAME'] || 'OSEM'), root_path, class: 'navbar-brand', title: 'Open Source Event Manager'
|
||||
.collapse.navbar-collapse
|
||||
- if content_for :splash_nav
|
||||
%ul.nav.navbar-nav#splash-nav
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
%li= link_to 'See all Comments', admin_comments_path(anchor: 'all_comments')
|
||||
- else
|
||||
%ul.nav.navbar-nav.navbar-right
|
||||
- if CONFIG['authentication']['ichain']['enabled']
|
||||
- if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
%li{:class=> "#{active_nav_li(new_ichain_registration_path('user'))}"}
|
||||
= link_to(new_ichain_registration_path('user')) do
|
||||
%span.fa.fa-heart
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
Sign In
|
||||
%span.caret
|
||||
.dropdown-menu{:style => "padding: 17px; min-width: 225px;"}
|
||||
- if CONFIG['authentication']['ichain']['enabled']
|
||||
- if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
= form_tag User.ichain_login_url do
|
||||
= text_field_tag 'username', nil, id: 'user_ichain_email_dd', placeholder: 'Username'
|
||||
= password_field_tag 'password', nil, id: 'user_ichain_password_dd', placeholder: 'Password'
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
- unless CONFIG['authentication']['ichain']['enabled']
|
||||
- unless ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
%li
|
||||
= link_to(edit_user_registration_path) do
|
||||
%span.fa.fa-wrench
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
%span.fa.fa-comment
|
||||
My Submissions
|
||||
%li
|
||||
- if CONFIG['authentication']['ichain']['enabled']
|
||||
- if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
= link_to(destroy_user_ichain_session_path, :method=>'delete') do
|
||||
%span.fa.fa-minus
|
||||
Sign out
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%meta{:name => "viewport", :content => "width=device-width, initial-scale=1, maximum-scale=1"}
|
||||
%title= content_for?(:title) ? yield(:title) : CONFIG['name']
|
||||
%title= content_for?(:title) ? yield(:title) : (ENV['OSEM_NAME'] || 'OSEM')
|
||||
%meta{:content => "", :name => "description"}
|
||||
%meta{:content => "", :name => "author"}
|
||||
= stylesheet_link_tag "application", :media => "all"
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
= csrf_meta_tags
|
||||
:javascript
|
||||
window.liveSettings = {
|
||||
api_key: "#{CONFIG['transifex_live_api_key']}",
|
||||
api_key: "#{ENV['OSEM_TRANSIFEX_APIKEY']}",
|
||||
picker: "bottom-right",
|
||||
detectlang: true,
|
||||
autocollect: true
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%meta{:name => "viewport", :content => "width=device-width, initial-scale=1, maximum-scale=1"}
|
||||
%title= content_for?(:title) ? yield(:title) : CONFIG['name']
|
||||
%title= content_for?(:title) ? yield(:title) : (ENV['OSEM_NAME'] || 'OSEM')
|
||||
%meta{:content => "", :name => "description"}
|
||||
%meta{:content => "", :name => "author"}
|
||||
= stylesheet_link_tag "/stylesheets/schedule/jquery-ui-1.9.2.custom.min"
|
||||
|
|
@ -17,4 +17,4 @@
|
|||
= yield(:head)
|
||||
%body
|
||||
.content
|
||||
= yield
|
||||
= yield
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
%legend
|
||||
%span
|
||||
=link_to('#signup', role: 'tab', 'aria-controls' => 'home', 'data-toggle' => 'tab') do
|
||||
= CONFIG['name']
|
||||
= ENV['OSEM_NAME'] || 'OSEM'
|
||||
Account
|
||||
%span.pull-right#account-already
|
||||
=link_to('#signin', role: 'tab', 'aria-controls' => 'home', 'data-toggle' => 'tab') do
|
||||
|
|
|
|||
18
bootstrap.sh
18
bootstrap.sh
|
|
@ -15,24 +15,6 @@ gem install bundler
|
|||
echo -e "\ninstalling your bundle...\n"
|
||||
su - vagrant -c "cd /vagrant/; bundle install --quiet"
|
||||
|
||||
# Configure the app if it isn't
|
||||
if [ ! -f /vagrant/config/config.yml ] && [ -f /vagrant/config/config.yml.example ]; then
|
||||
echo "Configuring your app in config/options.yml..."
|
||||
cp config/config.yml.example config/config.yml
|
||||
else
|
||||
echo -e "\n\nWARNING: You have already configured your app in config/options.yml."
|
||||
echo -e "WARNING: Please make sure this configuration works in this vagrant box!\n\n"
|
||||
fi
|
||||
|
||||
# Configure the app if it isn't
|
||||
if [ ! -f /vagrant/config/secrets.yml ] && [ -f /vagrant/config/secrets.yml.example ]; then
|
||||
echo "Configuring your secrets in config/secrets.yml..."
|
||||
cp config/secrets.yml.example config/secrets.yml
|
||||
else
|
||||
echo -e "\n\nWARNING: You have already configured your secrets in config/secrets.yml."
|
||||
echo -e "WARNING: Please make sure this configuration works in this vagrant box!\n\n"
|
||||
fi
|
||||
|
||||
# Configure the database if it isn't
|
||||
if [ ! -f /vagrant/config/database.yml ] && [ -f /vagrant/config/database.yml.example ]; then
|
||||
echo -e "\nSetting up your database from config/database.yml...\n"
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
defaults: &defaults
|
||||
# The name of your instance
|
||||
name: OSEM
|
||||
# The sender address of emails
|
||||
sender_for_emails: "no-reply@localhost"
|
||||
# The hostname to be used when building the URL in the emails
|
||||
url_for_emails: "localhost:3000"
|
||||
# errbit configuration, get your own instance: https://github.com/errbit/errbit
|
||||
#errbit_key: See config/secrets.yml
|
||||
#errbit_host: errbit.exmaple.com
|
||||
# These are the currently supported commercial types for conference and events
|
||||
|
||||
# If you want to use iChain to handle registration and authentication enable the next lines
|
||||
authentication:
|
||||
ichain:
|
||||
enabled: false
|
||||
|
||||
# Set it to false if you don't want FactoryGirl lint to run before every test suit.
|
||||
# You can run lint manually with: bundle exec rake factory_girl:lint
|
||||
factory_girl_lint: true
|
||||
|
||||
development:
|
||||
<<: *defaults
|
||||
|
||||
test:
|
||||
<<: *defaults
|
||||
|
||||
production:
|
||||
<<: *defaults
|
||||
|
||||
# If you add more providers that do not require a key, you still have to create the 2 variables with sample data
|
||||
|
||||
transifex_live_api_key: ''
|
||||
|
||||
# Set the smtp configuration of your service provider
|
||||
# For further details of each configuration checkout: http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
|
||||
mail_address: 'smtp.host.com'
|
||||
mail_port: 587
|
||||
mail_username: 'username@host.com'
|
||||
mail_password: 'password'
|
||||
mail_authentication: 'plain'
|
||||
|
|
@ -10,7 +10,7 @@ set :repository, 'https://github.com/openSUSE/osem.git'
|
|||
|
||||
# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server.
|
||||
# They will be linked in the 'deploy:link_shared_paths' step.
|
||||
set :shared_paths, %w{ config/database.yml log public/system config/secrets.yml config/config.yml config/piwik.yml tmp}
|
||||
set :shared_paths, %w{ config/database.yml log public/system config/secrets.yml config/piwik.yml tmp}
|
||||
|
||||
task setup: :environment do
|
||||
queue! %[mkdir -p "#{deploy_to}/shared/log"]
|
||||
|
|
|
|||
|
|
@ -3,11 +3,18 @@ require File.expand_path('../application', __FILE__)
|
|||
|
||||
# Load the configuration file
|
||||
path = Rails.root.join('config', 'config.yml')
|
||||
begin
|
||||
CONFIG = YAML.load_file(path)[Rails.env]
|
||||
rescue
|
||||
puts "Error while parsing config file #{path}"
|
||||
CONFIG = {}
|
||||
if File.exist?(path)
|
||||
puts "
|
||||
|
||||
WARNING: The OSEM configuration file
|
||||
|
||||
#{path}
|
||||
|
||||
is deprecated. Please use the environment variables
|
||||
explained in INSTALL.md instead.
|
||||
|
||||
|
||||
"
|
||||
end
|
||||
|
||||
# Initialize the rails application
|
||||
|
|
|
|||
|
|
@ -35,7 +35,10 @@ Osem::Application.configure do
|
|||
config.eager_load = false
|
||||
|
||||
# Set the detault url for action mailer
|
||||
config.action_mailer.default_url_options = { host: CONFIG['url_for_emails'] }
|
||||
config.action_mailer.default_url_options = { host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000') }
|
||||
|
||||
# Set the secret key base if it's not set via other means
|
||||
config.secret_key_base ||= 'f4be765bc98e516de82ac01daa8f8aa11c5ca13cb6c911887851ac89457b6c0b056b2361a21b5c08926c9386e0f91eef84fc0b103d522bf00bc0c78ea8ce7c58'
|
||||
|
||||
# Use omniauth mock credentials
|
||||
OmniAuth.config.test_mode = true
|
||||
|
|
|
|||
|
|
@ -67,15 +67,20 @@ Osem::Application.configure do
|
|||
config.active_support.deprecation = :notify
|
||||
|
||||
# Set the detault url for action mailer
|
||||
config.action_mailer.default_url_options = { host: CONFIG['url_for_emails'] }
|
||||
config.action_mailer.default_url_options = { host: (ENV['OSEM_HOSTNAME'] || 'localhost:3000') }
|
||||
|
||||
# Set the smtp configuration of your service provider
|
||||
# For further details of each configuration checkout: http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
|
||||
config.action_mailer.smtp_settings = {
|
||||
address: CONFIG['MAIL_ADDRESS'],
|
||||
port: CONFIG['MAIL_PORT'],
|
||||
user_name: CONFIG['MAIL_USERNAME'],
|
||||
password: CONFIG['MAIL_PASSWORD'],
|
||||
authentication: CONFIG['MAIL_AUTHENTICATION']
|
||||
address: ENV['OSEM_SMTP_ADDRESS'],
|
||||
port: ENV['OSEM_SMTP_PORT'],
|
||||
user_name: ENV['OSEM_SMTP_USERNAME'],
|
||||
password: ENV['OSEM_SMTP_PASSWORD'],
|
||||
authentication: ENV['OSEM_SMTP_AUTHENTICATION'].try(:to_sym),
|
||||
domain: ENV['OSEM_SMTP_DOMAIN'],
|
||||
enable_starttls_auto: true
|
||||
}
|
||||
|
||||
# Set the secret_key_base from the env, if not set by any other means
|
||||
config.secret_key_base ||= ENV["SECRET_KEY_BASE"]
|
||||
end
|
||||
|
|
|
|||
|
|
@ -41,6 +41,9 @@ Osem::Application.configure do
|
|||
# Do not perform deliveries on test
|
||||
config.action_mailer.perform_deliveries = false
|
||||
|
||||
# Set the secret key base if it's not set via other means
|
||||
config.secret_key_base ||= 'f4be765bc98e516de82ac01daa8f8aa11c5ca13cb6c911887851ac89457b6c0b056b2361a21b5c08926c9386e0f91eef84fc0b103d522bf00bc0c78ea8ce7c58'
|
||||
|
||||
config.after_initialize do
|
||||
ActiveRecord::Base.logger = nil
|
||||
# Set Time.now to May 1, 2014 00:01:00 AM (at this instant), but allow it to move forward
|
||||
|
|
|
|||
|
|
@ -2,24 +2,21 @@
|
|||
# Many of these configuration options can be set straight in your model.
|
||||
|
||||
Devise.setup do |config|
|
||||
# ==> Secret key, generate one with `rake secret`
|
||||
config.secret_key = Rails.application.secrets.devise_secret_key
|
||||
|
||||
# ==> openIDs configuration
|
||||
# Define the available openID providers that can be used to log in
|
||||
# Pass each provider to User model in :omniauth_providers (for open_id providers use their name)
|
||||
|
||||
config.omniauth :open_id, name: 'suse', identifier: 'http://www.opensuse.org/openid/user'
|
||||
config.omniauth :google_oauth2, Rails.application.secrets.google_key, Rails.application.secrets.google_secret,
|
||||
config.omniauth :google_oauth2, (ENV['OSEM_GOOGLE_KEY'] || Rails.application.secrets.google_key), (ENV['OSEM_GOOGLE_SECRET'] || Rails.application.secrets.google_secret),
|
||||
name: 'google',
|
||||
scope: 'email'
|
||||
config.omniauth :facebook, Rails.application.secrets.facebook_key, Rails.application.secrets.facebook_secret
|
||||
config.omniauth :github, Rails.application.secrets.github_key, Rails.application.secrets.github_secret
|
||||
config.omniauth :facebook, (ENV['OSEM_FACEBOOK_KEY'] || Rails.application.secrets.facebook_key), (ENV['OSEM_FACEBOOK_SECRET'] || Rails.application.secrets.facebook_secret)
|
||||
config.omniauth :github, (ENV['OSEM_GITHUB_KEY'] || Rails.application.secrets.github_key), (ENV['OSEM_GITHUB_SECRET'] || Rails.application.secrets.github_secret)
|
||||
|
||||
# ==> Mailer Configuration
|
||||
# Configure the e-mail address which will be shown in Devise::Mailer,
|
||||
# note that it will be overwritten if you use your own mailer class with default "from" parameter.
|
||||
config.mailer_sender = CONFIG['sender_for_emails']
|
||||
config.mailer_sender = ENV['OSEM_EMAIL_ADDRESS'] || 'no-reply@localhost'
|
||||
|
||||
# Configure the class responsible to send e-mails.
|
||||
# config.mailer = "Devise::Mailer"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
HoptoadNotifier.configure do |config|
|
||||
# Change this to some sensible data for your errbit instance
|
||||
config.api_key = Rails.application.secrets.errbit_key || ''
|
||||
config.host = Rails.application.secrets.errbit_host || ''
|
||||
config.api_key = ENV['OSEM_ERRBIT_APIKEY'] || Rails.application.secrets.errbit_key || ''
|
||||
config.host = ENV['OSEM_ERRBIT_HOST']
|
||||
if config.api_key.blank? || config.host.blank?
|
||||
config.development_environments = 'production development test'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Osem::Application.routes.draw do
|
||||
|
||||
if CONFIG['authentication']['ichain']['enabled']
|
||||
if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
||||
devise_for :users, controllers: { registrations: :registrations }
|
||||
else
|
||||
devise_for :users,
|
||||
|
|
|
|||
|
|
@ -1,18 +1,9 @@
|
|||
defaults: &defaults
|
||||
# You can generate secret keys with 'rake secret'
|
||||
|
||||
# For rails cookies
|
||||
secret_key_base: '12345'
|
||||
|
||||
# For devise login tokens
|
||||
devise_secret_key: '12345'
|
||||
|
||||
# Your errbit API key
|
||||
# errbit_key: '12345'
|
||||
|
||||
development:
|
||||
<<: *defaults
|
||||
# Sample data so that mocks work
|
||||
# Generate your own with rake secret
|
||||
# secret_key_base: '12345'
|
||||
|
||||
########## OMNIAUTH Providers ##########
|
||||
# This is just sample data so mocks work
|
||||
google_key: 'sample'
|
||||
google_secret: 'sample'
|
||||
|
||||
|
|
@ -23,33 +14,45 @@ development:
|
|||
suse_secret: 'sample'
|
||||
|
||||
test:
|
||||
<<: *defaults
|
||||
# Generate your own with rake secret
|
||||
# secret_key_base: '12345'
|
||||
|
||||
production:
|
||||
<<: *defaults
|
||||
# Leave the variables' names empty, unless you use the providers, in which case you need to
|
||||
# register your applicaton and add the actual keys.
|
||||
# Generate your own with rake secret or use the environment
|
||||
# secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|
||||
|
||||
# If you add more providers, keep the format of the variables: provider_key, provider_secret
|
||||
# Your errbit API key
|
||||
# errbit_key: '12345'
|
||||
|
||||
# Register your appllication with Google from https://code.google.com/apis/console#:access
|
||||
########## OMNIAUTH Providers ##########
|
||||
# Leave the variables' names empty, unless you use the providers, in which
|
||||
# case you need to register your applicaton and add the actual keys.
|
||||
#
|
||||
# If you add a provider, keep the format of the variables:
|
||||
# *provider*_key and *provider*_secret
|
||||
|
||||
# If you add a provider that does not require a key, you still have to
|
||||
# create the 2 variables with sample data or they won't show up in the app.
|
||||
|
||||
# Register your appllication with Google from
|
||||
# https://code.google.com/apis/console#:access
|
||||
google_key: ''
|
||||
google_secret: ''
|
||||
|
||||
# Register your application with Facebook from https://developers.facebook.com/
|
||||
# Register your application with Facebook from
|
||||
# https://developers.facebook.com/
|
||||
facebook_key: ''
|
||||
facebook_secret: ''
|
||||
|
||||
# Developers do not need to register their application for suse account to work.
|
||||
# You must, however, add some sample value to the variables, for the login option to appear.
|
||||
# For example:
|
||||
# Developers do not need to register their application for suse account to
|
||||
# work. You must, however, add some sample value to the variables, for the
|
||||
# login option to appear. For example:
|
||||
#suse_key: 'sample data'
|
||||
#suse_secret: 'sample data'
|
||||
suse_key: ''
|
||||
suse_secret: ''
|
||||
|
||||
# Register your application with GitHub from https://github.com/settings/applications
|
||||
# Register your application with GitHub from
|
||||
# https://github.com/settings/applications
|
||||
github_key: ''
|
||||
github_secret: ''
|
||||
|
||||
# If you add more providers that do not require a key, you still have to create the 2 variables with sample data
|
||||
|
|
|
|||
54
dotenv.example
Normal file
54
dotenv.example
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# Set environment variables for OSEM in this file
|
||||
# and copy it to .env or .env.rails_environment
|
||||
# (like env.production or env.development)
|
||||
#
|
||||
# The following is a list of variables and default
|
||||
# values that OSEM uses to configure some aspects
|
||||
# of the app
|
||||
|
||||
# The name of your page
|
||||
OSEM_NAME="OSEM"
|
||||
|
||||
# The host this OSEM instance runs on. Used for
|
||||
# generating urls in emails sent
|
||||
OSEM_HOSTNAME="localhost:3000"
|
||||
|
||||
# The address OSEM uses for sending mails
|
||||
OSEM_EMAIL_ADDRESS="no-reply@localhost"
|
||||
|
||||
# The api key for transifex.com.
|
||||
# See TRANSLATION.md for details
|
||||
OSEM_TRANSIFEX_APIKEY=""
|
||||
|
||||
# The errbit host to post exceptions to
|
||||
OSEM_ERRBIT_HOST=""
|
||||
# The api key for the errbit host
|
||||
OSEM_ERRBIT_APIKEY=""
|
||||
|
||||
# OMNIAUTH Developer Key/Secret for GOOGLE
|
||||
OSEM_GOOGLE_KEY=''
|
||||
OSEM_GOOGLE_SECRET=''
|
||||
|
||||
# OMNIAUTH Developer Key/Secret for Facebook
|
||||
OSEM_FACEBOOK_KEY=''
|
||||
OSEM_FACEBOOK_SECRET=''
|
||||
|
||||
# OMNIAUTH Developer Key/Secret for GitHub
|
||||
OSEM_GITHUB_KEY=''
|
||||
OSEM_GITHUB_SECRET=''
|
||||
|
||||
# Disable linting of factories in the test suite.
|
||||
# Speeds up turn around times of tests
|
||||
OSEM_FACTORY_LINT="false"
|
||||
|
||||
# The smtp configuration. See the rails guides for more
|
||||
# http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
|
||||
OSEM_SMTP_ADDRESS=""
|
||||
OSEM_SMTP_PORT=""
|
||||
OSEM_SMTP_USERNAME=""
|
||||
OSEM_SMTP_PASSWORD=""
|
||||
OSEM_SMTP_AUTHENTICATION=""
|
||||
OSEM_SMTP_DOMAIN=""
|
||||
|
||||
# Enable the usage of the devise ichain plugin
|
||||
OSEM_ICHAIN_ENABLED=false
|
||||
41
lib/tasks/migrate_config.rake
Normal file
41
lib/tasks/migrate_config.rake
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
namespace :data do
|
||||
namespace :migrate do
|
||||
desc 'Create a dotenv file from config/config.yml'
|
||||
task config2dotenv: :environment do
|
||||
# Create the dotenv file
|
||||
dot_env = Rails.root.join(".env.#{Rails.env}")
|
||||
if File.exist?(dot_env)
|
||||
abort("Sorry can't migrate, #{dot_env} already exists")
|
||||
else
|
||||
dot_env = File.open(dot_env, 'w')
|
||||
end
|
||||
|
||||
# Load the configuration file
|
||||
config_yml = Rails.root.join('config', 'config.yml')
|
||||
begin
|
||||
CONFIG = YAML.load_file(config_yml)[Rails.env]
|
||||
rescue
|
||||
CONFIG = {}
|
||||
end
|
||||
|
||||
# Write the dotenv file
|
||||
dot_env.puts '# OSEM environment variables. Check INSTALL.md for more information'
|
||||
dot_env.puts "OSEM_NAME=\"#{CONFIG['name']}\""
|
||||
dot_env.puts "OSEM_HOSTNAME=\"#{CONFIG['url_for_emails']}\""
|
||||
dot_env.puts "OSEM_EMAIL_ADDRESS=\"#{CONFIG['sender_for_emails']}\""
|
||||
dot_env.puts "OSEM_ICHAIN_ENABLED=\"#{CONFIG['authentication']['ichain']['enabled']}\"" if CONFIG.has_key?(:authentication)
|
||||
dot_env.puts "OSEM_TRANSIFEX_APIKEY=\"#{CONFIG['transifex_live_api_key']}\""
|
||||
dot_env.puts "OSEM_ERRBIT_HOST=\"#{CONFIG['errbit_host']}\""
|
||||
dot_env.puts "OSEM_FACTORY_LINT=\"#{CONFIG['factory_girl_lint']}\""
|
||||
dot_env.puts "OSEM_SMTP_ADDRESS=\"#{CONFIG['mail_address']}\""
|
||||
dot_env.puts "OSEM_SMTP_PORT=\"#{CONFIG['mail_port']}\""
|
||||
dot_env.puts "OSEM_SMTP_USERNAME=\"#{CONFIG['mail_username']}\""
|
||||
dot_env.puts "OSEM_SMTP_PASSWORD=\"#{CONFIG['mail_password']}\""
|
||||
dot_env.puts "OSEM_SMTP_AUTHENTICATION=\"#{CONFIG['mail_authentication']}\""
|
||||
dot_env.puts 'OSEM_SMTP_DOMAIN=""'
|
||||
dot_env.close
|
||||
|
||||
puts "Migrated config/config.yml to .env.#{Rails.env}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -3,7 +3,7 @@ require_relative 'external_request'
|
|||
RSpec.configure do |config|
|
||||
|
||||
config.before(:suite) do
|
||||
if CONFIG['factory_girl_lint']
|
||||
if ENV['OSEM_FACTORY_LINT'] != 'false'
|
||||
mock_commercial_request
|
||||
FactoryGirl.lint
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue