Skip to content

Commit

Permalink
Merge pull request #525 from coopdevs/add-next-environment
Browse files Browse the repository at this point in the history
Add next.timeoverflow.org Capistrano deploy
  • Loading branch information
sauloperez authored Dec 4, 2019
2 parents 4156f47 + 05dcbdc commit 5333ba4
Show file tree
Hide file tree
Showing 6 changed files with 118 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Capfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ require 'capistrano/deploy'
require 'capistrano/rails'

stage = ARGV.first
if stage == 'staging' # Sorry, production is not ready yet
if stage != 'production' # Sorry, production is not ready yet
require 'capistrano/rbenv'
end

Expand Down
4 changes: 4 additions & 0 deletions config/database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,7 @@ staging:
production:
# Set DATABASE_URL environment variable
url: <%= ENV['DATABASE_URL'] %>

next:
<<: *defaults
database: <%= ENV.fetch('DATABASE_NAME', 'timeoverflow_production') %>
11 changes: 11 additions & 0 deletions config/deploy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,14 @@
end
end
end

task "deploy:db:load" do
on primary :db do
within release_path do
with rails_env: fetch(:rails_env) do
execute :rake, "db:schema:load"
end
end
end
end
before "deploy:migrate", "deploy:db:load" if ENV["COLD"]
1 change: 1 addition & 0 deletions config/deploy/next.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
server 'next.timeoverflow.org', user: 'timeoverflow', roles: %w(app db web)
98 changes: 98 additions & 0 deletions config/environments/next.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.

# Code is not reloaded between requests.
config.cache_classes = true

# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both threaded web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true

# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true

# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like
# NGINX, varnish or squid.
# config.action_dispatch.rack_cache = true

# Disable serving static files from the `/public` folder by default since
# Apache or NGINX already handles this.
config.serve_static_files = true

# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass

# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = true # false

# Asset digests allow you to set far-future HTTP expiration dates on all assets,
# yet still be able to expire them through the digest params.
config.assets.digest = true

# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb

# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX

# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = true

# Use the lowest log level to ensure availability of diagnostic information
# when problems arise.
config.log_level = :debug

# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]

# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)

# Use a different cache store in production.
# config.cache_store = :mem_cache_store
config.cache_store = :dalli_store

# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = 'http://assets.example.com'

# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
config.action_mailer.raise_delivery_errors = true

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = {
host: ENV["MAIL_LINK_HOST"],
protocol: (ENV["MAIL_LINK_PROTO"] || "https")
}

# Retrieve SMTP configuration from environment variables
# starting with `SMTP_`
smtp_env = Hash[ENV.map do |k,v|
if /^SMTP_(.*)$/ === k
[$1.downcase.to_sym, YAML.load(v)]
end
end.compact]

if smtp_env.present?
config.action_mailer.smtp_settings = smtp_env
end

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found).
config.i18n.fallbacks = true

# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify

# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new

# Do not dump schema after migrations.
config.active_record.dump_schema_after_migration = false
end
3 changes: 3 additions & 0 deletions config/secrets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ staging:

production:
secret_key_base: <%= ENV['SECRET_TOKEN'] %>

next:
secret_key_base: <%= ENV['SECRET_TOKEN'] %>

0 comments on commit 5333ba4

Please sign in to comment.