diff --git a/.example-env b/.example-env
index c2c9a2e9..51d89c5d 100644
--- a/.example-env
+++ b/.example-env
@@ -14,6 +14,7 @@ export SECRET_KEY_BASE='267c8a84f63963282f45bc3010eaddf027abfab58fc759d6e239c800
 # # you can safely leave these blank, unless you're deploying an instance, in
 # # which case you'll need to set them up
 #
+# export S3_REGION
 # export S3_BUCKET_NAME
 # export AWS_ACCESS_KEY_ID
 # export AWS_SECRET_ACCESS_KEY
diff --git a/config/application.rb b/config/application.rb
index 96505b32..9d8870a9 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -43,5 +43,17 @@ module Metamaps
 
     # pundit errors return 403 FORBIDDEN
     config.action_dispatch.rescue_responses['Pundit::NotAuthorizedError'] = :forbidden
+
+    # S3 file storage
+    config.paperclip_defaults = {
+      storage: :s3,
+      s3_protocol: 'https',
+      s3_region: ENV['S3_REGION'],
+      s3_credentials: {
+        bucket: ENV['S3_BUCKET_NAME'],
+        access_key_id: ENV['AWS_ACCESS_KEY_ID'],
+        secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
+      }
+    }
   end
 end
diff --git a/config/environments/development.rb b/config/environments/development.rb
index dd6095b2..5449e5e8 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -14,17 +14,6 @@ Rails.application.configure do
   config.consider_all_requests_local       = true
   config.action_controller.perform_caching = false
 
-  # S3 file storage
-  config.paperclip_defaults = {
-    storage: :s3,
-    s3_credentials: {
-      bucket: ENV['S3_BUCKET_NAME'],
-      access_key_id: ENV['AWS_ACCESS_KEY_ID'],
-      secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
-    },
-    s3_protocol: 'https'
-  }
-
   config.action_mailer.delivery_method = :smtp
   config.action_mailer.smtp_settings = {
     address:       ENV['SMTP_SERVER'],
diff --git a/config/environments/production.rb b/config/environments/production.rb
index f9c94af6..d3f8794e 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -5,6 +5,11 @@ Rails.application.configure do
   config.log_level = :warn
   config.eager_load = true
 
+  # 12 factor: log to stdout
+  logger = ActiveSupport::Logger.new(STDOUT)
+  logger.formatter = config.log_formatter
+  config.logger = ActiveSupport::TaggedLogging.new(logger)
+
   # Code is not reloaded between requests
   config.cache_classes = true
 
@@ -13,24 +18,13 @@ Rails.application.configure do
   config.action_controller.perform_caching = true
 
   # Disable Rails's static asset server (Apache or nginx will already do this)
-  config.public_file_server.enabled = false
+  config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
 
   # Don't fallback to assets pipeline if a precompiled asset is missed
   config.assets.compile = false
 
   config.assets.js_compressor = :uglifier
 
-  # S3 file storage
-  config.paperclip_defaults = {
-    storage: :s3,
-    s3_credentials: {
-      bucket: ENV['S3_BUCKET_NAME'],
-      access_key_id: ENV['AWS_ACCESS_KEY_ID'],
-      secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
-    },
-    s3_protocol: 'https'
-  }
-
   config.action_mailer.delivery_method = :smtp
   config.action_mailer.smtp_settings = {
     address:       ENV['SMTP_SERVER'],