diff --git a/Capfile b/Capfile
index 961d5b90b..0f81c1684 100644
--- a/Capfile
+++ b/Capfile
@@ -16,11 +16,7 @@ require 'capistrano/deploy'
# https://github.com/capistrano/passenger
#
require 'capistrano/rails'
-
-stage = ARGV.first
-if stage != 'production' # Sorry, production is not ready yet
- require 'capistrano/rbenv'
-end
+require 'capistrano/rbenv'
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
diff --git a/Gemfile b/Gemfile
index f8b962925..76bb04c84 100644
--- a/Gemfile
+++ b/Gemfile
@@ -10,7 +10,6 @@ gem 'has_scope'
gem 'pundit', '~> 2.0.0'
gem 'pg', '0.21.0'
gem 'hstore_translate'
-gem 'dalli'
gem 'devise', '~> 4.5.0'
gem "http_accept_language", '~> 2.1.1'
gem 'unicorn'
diff --git a/Gemfile.lock b/Gemfile.lock
index 0e5810de5..400b860bc 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -107,7 +107,6 @@ GEM
concurrent-ruby (1.1.5)
connection_pool (2.2.1)
crass (1.0.4)
- dalli (2.7.2)
database_cleaner (1.6.2)
debug_inspector (0.0.3)
devise (4.5.0)
@@ -405,7 +404,6 @@ DEPENDENCIES
capistrano-rbenv (~> 2.1)
capybara (~> 3.15)
coffee-rails
- dalli
database_cleaner (= 1.6.2)
devise (~> 4.5.0)
dotenv-rails (~> 2.7.1)
diff --git a/app/models/concerns/lazy_recoverable.rb b/app/models/concerns/lazy_recoverable.rb
deleted file mode 100644
index 897fdcab1..000000000
--- a/app/models/concerns/lazy_recoverable.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# Overrides part of Devise::Models::Recoverable
-#
-# If the devised model has a recent enough token, just use it again!
-# This way, the user will get the same token even if they receive two
-# password recover email.
-module LazyRecoverable
- extend ActiveSupport::Concern
-
- RESET_PASSWORD_TOKEN_LAZINESS = 20.minutes
-
- def set_reset_password_token
- # Just cache it! :)
- cache_key = "reset_password_token_hash:#{self.reset_password_token}"
- Rails.cache.fetch(cache_key, expires_in: RESET_PASSWORD_TOKEN_LAZINESS) do
- super
- end
- end
-end
diff --git a/app/models/user.rb b/app/models/user.rb
index fca0fdff6..11e194e7d 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -1,6 +1,4 @@
class User < ActiveRecord::Base
- include LazyRecoverable
-
devise *[
:database_authenticatable,
:recoverable,
diff --git a/app/views/devise/passwords/new.html.erb b/app/views/devise/passwords/new.html.erb
index 3a1d0144b..fe217bb68 100644
--- a/app/views/devise/passwords/new.html.erb
+++ b/app/views/devise/passwords/new.html.erb
@@ -18,7 +18,7 @@
diff --git a/config/database.yml b/config/database.yml
index 83e46dd15..cc142aa2d 100644
--- a/config/database.yml
+++ b/config/database.yml
@@ -31,8 +31,8 @@ staging:
database: <%= ENV.fetch('DATABASE_NAME', 'timeoverflow_staging') %>
production:
- # Set DATABASE_URL environment variable
- url: <%= ENV['DATABASE_URL'] %>
+ <<: *defaults
+ database: <%= ENV.fetch('DATABASE_NAME', 'timeoverflow_production') %>
next:
<<: *defaults
diff --git a/config/deploy.rb b/config/deploy.rb
index eb4d44cf7..ba4e81a33 100644
--- a/config/deploy.rb
+++ b/config/deploy.rb
@@ -47,13 +47,20 @@
# Default value for keep_releases is 5
# set :keep_releases, 5
-namespace :deploy do
- after :restart, :clear_cache do
- on roles(:web), in: :groups, limit: 3, wait: 10 do
- # Here we can do anything such as:
- # within release_path do
- # execute :rake, 'cache:clear'
- # end
+namespace :unicorn do
+ desc 'reload Unicorn'
+ task :reload do
+ on roles(:app) do
+ execute "sudo systemctl reload timeoverflow"
+ end
+ end
+end
+
+namespace :sidekiq do
+ desc 'reload Sidekiq'
+ task :restart do
+ on roles(:app) do
+ execute "sudo systemctl restart sidekiq"
end
end
end
@@ -67,4 +74,8 @@
end
end
end
+
before "deploy:migrate", "deploy:db:load" if ENV["COLD"]
+
+after "deploy:finishing", "unicorn:reload"
+after "deploy:finishing", "sidekiq:restart"
diff --git a/config/environments/next.rb b/config/environments/next.rb
deleted file mode 100644
index 1ba241c29..000000000
--- a/config/environments/next.rb
+++ /dev/null
@@ -1,98 +0,0 @@
-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
diff --git a/config/environments/next.rb b/config/environments/next.rb
new file mode 120000
index 000000000..0c153beb0
--- /dev/null
+++ b/config/environments/next.rb
@@ -0,0 +1 @@
+config/environments/production.rb
\ No newline at end of file
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 63287d136..a08c2828b 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -56,7 +56,6 @@
# 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'
diff --git a/config/environments/staging.rb b/config/environments/staging.rb
index 1ba241c29..1020fbbbf 100644
--- a/config/environments/staging.rb
+++ b/config/environments/staging.rb
@@ -56,7 +56,6 @@
# 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'