kratos 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +13 -3
- data/lib/kratos/app_builder.rb +17 -3
- data/lib/kratos/generators/app_generator.rb +5 -1
- data/lib/kratos/version.rb +1 -1
- data/templates/Capfile +8 -0
- data/templates/Gemfile.erb +11 -2
- data/templates/bin_setup +0 -4
- data/templates/deploy.rake +31 -19
- data/templates/deploy_config.rb.erb +12 -10
- data/templates/dotfiles/.env +13 -0
- data/templates/foreman.rake +0 -3
- data/templates/lograge.rb +2 -1
- data/templates/mysql_database.yml.erb +26 -0
- data/templates/newrelic.yml.erb +34 -0
- data/templates/nginx.conf.erb +86 -0
- data/templates/rollbar.rb.erb +12 -0
- data/templates/schedule.rb +5 -0
- metadata +7 -4
- data/templates/dotfiles/.sample.application.yml +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7b3bdd730f01861415f2ffdf2981945f07fbcb5
|
4
|
+
data.tar.gz: 2523567b4804055c1ee62fe55a5a657113837f1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ecb0629c7eaf9c02e8744e107457c6b5126973b7eeb0fb24d84c42aee6691ade30f165f3c820cbd9392e0f2849bfcc2ca7b0714c0b29ec425edb04cd76e1488
|
7
|
+
data.tar.gz: 687a4251bcb6ebdc2ced44836b491b4503ff0b0ae54bf45798535c9f25e38ec000a1efc15598c505ef87b108dead9adf4ed34a1e80cda1c864dd6bd8d0b859fd
|
data/README.md
CHANGED
@@ -15,9 +15,19 @@ Then run:
|
|
15
15
|
|
16
16
|
This will create a Rails app in `projectname` using the latest version of Rails.
|
17
17
|
|
18
|
-
After run,
|
19
|
-
|
20
|
-
|
18
|
+
After run, you must configure:
|
19
|
+
|
20
|
+
- Change the sidekiq panel password in the `config/initializers/sidekiq.rb`
|
21
|
+
file. The panel is accessible by the URL `/sidekiq`.
|
22
|
+
- Setup your development environment variables: `NEW_RELIC_LICENSE_KEY`,
|
23
|
+
`ROLLBAR_TOKEN`, `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`
|
24
|
+
- Setup your production and staging environment variables using dotgpg. You must
|
25
|
+
create two files on the root of your project: `env_production.gpg` and
|
26
|
+
`env_staging.gpg`. To initialize dotgpg on your project run `dotgpg init`.
|
27
|
+
It'll create a `.gpg` folder and add your public key to it. To edit the files,
|
28
|
+
use the `dotgpg edit env_<environment>.gpg` command. For more information look
|
29
|
+
at the [DotGPG](https://github.com/ConradIrwin/dotgpg).
|
30
|
+
- Run `bin/setup` to initialize your database and files.
|
21
31
|
|
22
32
|
## License
|
23
33
|
|
data/lib/kratos/app_builder.rb
CHANGED
@@ -152,6 +152,18 @@ class AppBuilder < Rails::AppBuilder
|
|
152
152
|
copy_file 'i18n-tasks.yml', 'config/i18n-tasks.yml'
|
153
153
|
end
|
154
154
|
|
155
|
+
def configure_newrelic
|
156
|
+
template 'newrelic.yml.erb', 'config/newrelic.yml'
|
157
|
+
end
|
158
|
+
|
159
|
+
def configure_rollbar
|
160
|
+
template 'rollbar.rb.erb', 'config/initializers/rollbar.rb'
|
161
|
+
end
|
162
|
+
|
163
|
+
def configure_nginx
|
164
|
+
copy_file 'nginx.conf.erb', 'config/deploy/nginx.conf.erb'
|
165
|
+
end
|
166
|
+
|
155
167
|
def configure_smtp
|
156
168
|
copy_file 'smtp.rb', 'config/smtp.rb'
|
157
169
|
|
@@ -413,6 +425,11 @@ end
|
|
413
425
|
force: true
|
414
426
|
end
|
415
427
|
|
428
|
+
def use_mysql_config_template
|
429
|
+
template 'mysql_database.yml.erb', 'config/database.yml',
|
430
|
+
force: true
|
431
|
+
end
|
432
|
+
|
416
433
|
def create_database
|
417
434
|
bundle_command 'exec rake db:create db:migrate'
|
418
435
|
end
|
@@ -428,9 +445,6 @@ end
|
|
428
445
|
|
429
446
|
def create_capistrano_config
|
430
447
|
template 'deploy_config.rb.erb', 'config/deploy.rb'
|
431
|
-
end
|
432
|
-
|
433
|
-
def create_capistrano_config
|
434
448
|
copy_file 'cap_environment.rb', 'config/deploy/production.rb'
|
435
449
|
copy_file 'cap_environment.rb', 'config/deploy/staging.rb'
|
436
450
|
end
|
@@ -3,7 +3,7 @@ require 'rails/generators/rails/app/app_generator'
|
|
3
3
|
|
4
4
|
module Kratos
|
5
5
|
class AppGenerator < Rails::Generators::AppGenerator
|
6
|
-
class_option :database, type: :string, aliases: '-d', default: '
|
6
|
+
class_option :database, type: :string, aliases: '-d', default: 'mysql',
|
7
7
|
desc: "Configure for selected database (options: #{DATABASES.join('/')})"
|
8
8
|
|
9
9
|
class_option :skip_test_unit, type: :boolean, aliases: '-T', default: true,
|
@@ -77,6 +77,9 @@ module Kratos
|
|
77
77
|
|
78
78
|
def setup_production_environment
|
79
79
|
say 'Setting up the production environment'
|
80
|
+
build :configure_newrelic
|
81
|
+
build :configure_rollbar
|
82
|
+
build :configure_nginx
|
80
83
|
build :configure_smtp
|
81
84
|
build :enable_rack_deflater
|
82
85
|
build :setup_asset_host
|
@@ -142,6 +145,7 @@ module Kratos
|
|
142
145
|
say 'Setting up database'
|
143
146
|
|
144
147
|
build :use_postgres_config_template if 'postgresql' == options[:database]
|
148
|
+
build :use_mysql_config_template if 'mysql' == options[:database]
|
145
149
|
|
146
150
|
build :create_database
|
147
151
|
end
|
data/lib/kratos/version.rb
CHANGED
data/templates/Capfile
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'dotenv'
|
2
|
+
|
3
|
+
Dotenv.load
|
4
|
+
|
1
5
|
# Load DSL and set up stages
|
2
6
|
require 'capistrano/setup'
|
3
7
|
|
@@ -7,6 +11,10 @@ require 'capistrano/rbenv'
|
|
7
11
|
require 'capistrano/bundler'
|
8
12
|
require 'capistrano/rails/migrations'
|
9
13
|
require 'capistrano/rails/assets'
|
14
|
+
require 'capistrano/rails/console'
|
15
|
+
require 'capistrano/nginx'
|
16
|
+
require 'new_relic/recipes'
|
17
|
+
require 'rollbar/capistrano3'
|
10
18
|
|
11
19
|
# Setup Whenever tasks
|
12
20
|
require 'whenever/capistrano'
|
data/templates/Gemfile.erb
CHANGED
@@ -2,6 +2,7 @@ source "https://rubygems.org"
|
|
2
2
|
|
3
3
|
ruby "<%= Kratos::RUBY_VERSION %>"
|
4
4
|
|
5
|
+
gem 'rollbar'
|
5
6
|
gem "email_validator"
|
6
7
|
gem "i18n-tasks"
|
7
8
|
gem "autoprefixer-rails"
|
@@ -9,7 +10,12 @@ gem "bourbon", "~> 4.2.0"
|
|
9
10
|
gem "flutie"
|
10
11
|
gem "jquery-rails"
|
11
12
|
gem "normalize-rails", "~> 3.0.0"
|
13
|
+
<% if options.database == 'postgresql' %>
|
12
14
|
gem "pg"
|
15
|
+
<% end %>
|
16
|
+
<% if options.database == 'mysql' %>
|
17
|
+
gem 'mysql2', '~> 0.3.20'
|
18
|
+
<% end %>
|
13
19
|
gem "puma"
|
14
20
|
gem "rails", "<%= Kratos::RAILS_VERSION %>"
|
15
21
|
gem "recipient_interceptor"
|
@@ -23,12 +29,11 @@ gem "sinatra", require: nil
|
|
23
29
|
gem "redis-rails"
|
24
30
|
gem "dalli"
|
25
31
|
gem "lograge"
|
32
|
+
gem 'newrelic_rpm', '>= 3.9.8'
|
26
33
|
gem "whenever", require: false
|
27
|
-
gem "premailer-rails"
|
28
34
|
gem "nokogiri", ">= 1.6.7.2"
|
29
35
|
gem "geocoder"
|
30
36
|
gem "aws-sdk"
|
31
|
-
gem "figaro"
|
32
37
|
gem "httparty"
|
33
38
|
|
34
39
|
group :development do
|
@@ -37,12 +42,16 @@ group :development do
|
|
37
42
|
gem "capistrano", "~> 3.1"
|
38
43
|
gem "capistrano-rails", "~> 1.1"
|
39
44
|
gem "capistrano-rbenv", "~> 2.0"
|
45
|
+
gem 'capistrano3-nginx', '~> 2.0'
|
46
|
+
gem 'capistrano-rails-console'
|
40
47
|
end
|
41
48
|
|
42
49
|
group :development, :test do
|
43
50
|
gem "pry-meta"
|
44
51
|
gem "bullet"
|
45
52
|
gem "bundler-audit", require: false
|
53
|
+
gem 'dotgpg'
|
54
|
+
gem 'dotenv-rails'
|
46
55
|
gem "factory_girl_rails"
|
47
56
|
gem "ffaker"
|
48
57
|
gem "rspec-rails", "~> 3.4.0"
|
data/templates/bin_setup
CHANGED
@@ -10,10 +10,6 @@ set -e
|
|
10
10
|
gem install bundler --conservative
|
11
11
|
bundle check || bundle install
|
12
12
|
|
13
|
-
if [ ! -f config/application.yml ]; then
|
14
|
-
cp .sample.application.yml config/application.yml
|
15
|
-
fi
|
16
|
-
|
17
13
|
# Set up database and add any development seed data
|
18
14
|
bin/rake dev:prime
|
19
15
|
|
data/templates/deploy.rake
CHANGED
@@ -1,28 +1,40 @@
|
|
1
1
|
namespace :deploy do
|
2
|
-
task :setup_env do
|
3
|
-
on roles(:web) do
|
4
|
-
within release_path do
|
5
|
-
execute(:cp, "~/.#{fetch(:application)}.yml config/application.yml")
|
6
|
-
execute(:cp, "~/.#{fetch(:application)}.env .env")
|
7
|
-
execute(:cp, "~/.#{fetch(:application)}.foreman .foreman")
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
|
-
before :updated, :setup_env
|
12
|
-
|
13
2
|
task :restart do
|
14
3
|
invoke 'foreman:export'
|
15
4
|
invoke 'foreman:restart'
|
5
|
+
invoke 'deploy:setup_nginx'
|
16
6
|
end
|
17
7
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
8
|
+
task :setup_nginx do
|
9
|
+
invoke 'nginx:site:add'
|
10
|
+
invoke 'nginx:site:enable'
|
11
|
+
invoke 'nginx:reload'
|
12
|
+
end
|
13
|
+
|
14
|
+
task :setup_env do
|
15
|
+
env_file = "env_#{fetch(:stage)}.gpg"
|
16
|
+
|
17
|
+
dotenv_contents = ''
|
18
|
+
run_locally do
|
19
|
+
fail "You must have a #{env_file} file on your project root " \
|
20
|
+
'to be able to deploy it' unless File.exist?(env_file)
|
21
|
+
|
22
|
+
dotenv_contents = `bundle exec dotgpg cat #{env_file}`
|
23
|
+
end
|
24
|
+
|
25
|
+
on roles(:app) do
|
26
|
+
dotenv = StringIO.new
|
27
|
+
dotenv << dotenv_contents
|
28
|
+
dotenv.rewind
|
29
|
+
|
30
|
+
upload! dotenv, File.join(shared_path, '.env')
|
26
31
|
end
|
27
32
|
end
|
33
|
+
after :started, :setup_env
|
34
|
+
|
35
|
+
namespace :check do
|
36
|
+
task linked_files: '.env'
|
37
|
+
end
|
28
38
|
end
|
39
|
+
|
40
|
+
remote_file '.env' => 'deploy:setup_env', roles: :app
|
@@ -8,6 +8,15 @@ set :user, 'deploy'
|
|
8
8
|
set :rbenv_ruby, File.read('.ruby-version').strip
|
9
9
|
set :rbenv_type, :user
|
10
10
|
set :rbenv_bin_path, '/home/deploy/.rbenv/shims'
|
11
|
+
set :rbenv_prefix, -> { "#{fetch(:rbenv_path)}/bin/rbenv exec dotenv" }
|
12
|
+
|
13
|
+
set :nginx_domains, '<%= app_name.dasherize %>.com.br'
|
14
|
+
set :nginx_template, "#{stage_config_path}/nginx.conf.erb"
|
15
|
+
set :app_server_port, 3000
|
16
|
+
|
17
|
+
set :rollbar_token, ENV['ROLLBAR_TOKEN']
|
18
|
+
set :rollbar_env, proc { fetch :stage }
|
19
|
+
set :rollbar_role, proc { :db }
|
11
20
|
|
12
21
|
# Always deploy the current branch.
|
13
22
|
set :branch, `git rev-parse --abbrev-ref HEAD`.chomp
|
@@ -19,15 +28,8 @@ set :linked_dirs, fetch(:linked_dirs, []).push('log',
|
|
19
28
|
'tmp/pids',
|
20
29
|
'tmp/cache')
|
21
30
|
|
31
|
+
set :linked_files, %w(.env)
|
32
|
+
|
22
33
|
set :default_env, path: '/home/deploy/.rbenv/shims:$PATH'
|
23
34
|
|
24
|
-
|
25
|
-
after :restart, :clear_cache do
|
26
|
-
on roles(:web), in: :groups, limit: 3, wait: 10 do
|
27
|
-
# Here we can do anything such as:
|
28
|
-
# within release_path do
|
29
|
-
# execute :rake, 'cache:clear'
|
30
|
-
# end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
35
|
+
after 'deploy:updated', 'newrelic:notice_deployment'
|
data/templates/dotfiles/.env
CHANGED
@@ -1,3 +1,16 @@
|
|
1
1
|
WEB_CONCURRENCY=1
|
2
2
|
MAX_THREADS=3
|
3
3
|
PORT=3000
|
4
|
+
ASSET_HOST=localhost:3000
|
5
|
+
APPLICATION_HOST=localhost:3000
|
6
|
+
REDIS_URL=redis://127.0.0.1:6379
|
7
|
+
SECRET_TOKEN=development_token
|
8
|
+
SECRET_KEY_BASE=development_secret
|
9
|
+
EXECJS_RUNTIME=Node
|
10
|
+
SMTP_ADDRESS=smtp.example.com
|
11
|
+
SMTP_DOMAIN=example.com
|
12
|
+
SMTP_PASSWORD=password
|
13
|
+
SMTP_USERNAME=username
|
14
|
+
AWS_REGION=us-east-1
|
15
|
+
AWS_ACCESS_KEY_ID=<put-your-key-here>
|
16
|
+
AWS_SECRET_ACCESS_KEY=<put-your-secret-here>
|
data/templates/foreman.rake
CHANGED
@@ -3,9 +3,6 @@ namespace :foreman do
|
|
3
3
|
task :export do
|
4
4
|
on roles(:app) do
|
5
5
|
within current_path do
|
6
|
-
# Add path to .env.
|
7
|
-
# Needed for rbenv to work properly.
|
8
|
-
execute(:echo, "\"PATH=#{fetch(:rbenv_bin_path)}:$PATH\" >> .env")
|
9
6
|
# Create the upstart script
|
10
7
|
execute(:sudo, "#{fetch(:rbenv_prefix)} " \
|
11
8
|
'foreman export upstart /etc/init ' \
|
data/templates/lograge.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
Rails.application.configure do
|
2
2
|
if Rails.env.production?
|
3
3
|
config.lograge.enabled = true
|
4
|
-
config.log_tags = [:uuid]
|
4
|
+
config.log_tags = [:uuid, :remote_ip]
|
5
|
+
config.lograge.formatter = Lograge::Formatters::Json.new
|
5
6
|
|
6
7
|
config.lograge.custom_options = lambda do |event|
|
7
8
|
params = event.payload[:params].reject do |k|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
development: &default
|
2
|
+
adapter: mysql2
|
3
|
+
database: <%= app_name %>_development
|
4
|
+
encoding: utf8mb4
|
5
|
+
charset: utf8mb4
|
6
|
+
collation: utf8mb4_unicode_ci
|
7
|
+
host: localhost
|
8
|
+
min_messages: warning
|
9
|
+
pool: <%%= Integer(ENV.fetch("DB_POOL", 5)) %>
|
10
|
+
reaping_frequency: <%%= Integer(ENV.fetch("DB_REAPING_FREQUENCY", 10)) %>
|
11
|
+
timeout: 5000
|
12
|
+
|
13
|
+
test:
|
14
|
+
<<: *default
|
15
|
+
database: <%= app_name %>_test
|
16
|
+
|
17
|
+
production: &deploy
|
18
|
+
encoding: utf8mb4
|
19
|
+
charset: utf8mb4
|
20
|
+
collation: utf8mb4_unicode_ci
|
21
|
+
min_messages: warning
|
22
|
+
pool: <%%= [Integer(ENV.fetch("MAX_THREADS", 5)), Integer(ENV.fetch("DB_POOL", 5))].max %>
|
23
|
+
timeout: 5000
|
24
|
+
url: <%%= ENV.fetch("DATABASE_URL", "") %>
|
25
|
+
|
26
|
+
staging: *deploy
|
@@ -0,0 +1,34 @@
|
|
1
|
+
common: &default_settings
|
2
|
+
app_name: "<%= app_name %>"
|
3
|
+
audit_log:
|
4
|
+
enabled: false
|
5
|
+
browser_monitoring:
|
6
|
+
auto_instrument: true
|
7
|
+
capture_params: false
|
8
|
+
developer_mode: false
|
9
|
+
error_collector:
|
10
|
+
capture_source: true
|
11
|
+
enabled: true
|
12
|
+
ignore_errors: "ActionController::RoutingError,Sinatra::NotFound"
|
13
|
+
license_key: "<%%= ENV["NEW_RELIC_LICENSE_KEY"] %>"
|
14
|
+
log_level: info
|
15
|
+
monitor_mode: true
|
16
|
+
transaction_tracer:
|
17
|
+
enabled: true
|
18
|
+
record_sql: obfuscated
|
19
|
+
stack_trace_threshold: 0.500
|
20
|
+
transaction_threshold: apdex_f
|
21
|
+
development:
|
22
|
+
<<: *default_settings
|
23
|
+
monitor_mode: false
|
24
|
+
developer_mode: true
|
25
|
+
test:
|
26
|
+
<<: *default_settings
|
27
|
+
monitor_mode: false
|
28
|
+
production:
|
29
|
+
<<: *default_settings
|
30
|
+
monitor_mode: true
|
31
|
+
staging:
|
32
|
+
<<: *default_settings
|
33
|
+
app_name: "<%= app_name %> (Staging)"
|
34
|
+
monitor_mode: true
|
@@ -0,0 +1,86 @@
|
|
1
|
+
<% if fetch(:app_server) && (fetch(:app_server_socket) || fetch(:app_server_port))%>
|
2
|
+
# Define App Server Upstream
|
3
|
+
upstream <%= fetch(:application) %>-app-server {
|
4
|
+
<% if fetch(:app_server_socket) %>
|
5
|
+
server unix:<%= fetch(:app_server_socket) %> fail_timeout=0;
|
6
|
+
<% elsif fetch(:app_server_port) %>
|
7
|
+
server <%= fetch(:app_server_host, '127.0.0.1') %>:<%= fetch(:app_server_port) %> fail_timeout=0;
|
8
|
+
<% end %>
|
9
|
+
}
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
# HTTP Server
|
13
|
+
|
14
|
+
<% if fetch(:nginx_redirected_domains) %>
|
15
|
+
server {
|
16
|
+
listen 80;
|
17
|
+
server_name <%= fetch(:nginx_redirected_domains) %>;
|
18
|
+
rewrite ^(.*) http://<%= fetch(:nginx_domains).gsub(/\s.*/,'') %> permanent;
|
19
|
+
}
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<% if fetch(:nginx_use_ssl) %>
|
23
|
+
server {
|
24
|
+
listen 80;
|
25
|
+
server_name <%= fetch(:nginx_domains) %>;
|
26
|
+
rewrite ^(.*) https://$host$1 permanent;
|
27
|
+
}
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
server {
|
31
|
+
|
32
|
+
<% if fetch(:nginx_use_ssl) %>
|
33
|
+
listen 443;
|
34
|
+
ssl on;
|
35
|
+
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
36
|
+
ssl_certificate <%= fetch(:nginx_ssl_certificate_path) %>/<%= fetch(:nginx_ssl_certificate) %>;
|
37
|
+
ssl_certificate_key <%= fetch(:nginx_ssl_certificate_key_path) %>/<%= fetch(:nginx_ssl_certificate_key) %>;
|
38
|
+
<% else %>
|
39
|
+
listen 80;
|
40
|
+
<% end %>
|
41
|
+
|
42
|
+
server_name <%= fetch(:nginx_domains) %>;
|
43
|
+
root <%= fetch(:deploy_to) %>/current/<%= fetch(:nginx_static_dir) %>;
|
44
|
+
|
45
|
+
access_log <%= fetch(:nginx_log_path) %>/nginx-access.log timed_combined;
|
46
|
+
error_log <%= fetch(:nginx_log_path) %>/nginx-error.log;
|
47
|
+
|
48
|
+
error_page 404 /404.html;
|
49
|
+
location /404.html { root <%= fetch(:deploy_to) %>/current/<%= fetch(:nginx_static_dir) %>; }
|
50
|
+
|
51
|
+
error_page 500 /500.html;
|
52
|
+
location /500.html { root <%= fetch (:deploy_to) %>/current/<%= fetch(:nginx_static_dir) %>; }
|
53
|
+
|
54
|
+
client_max_body_size 4G;
|
55
|
+
keepalive_timeout 10;
|
56
|
+
|
57
|
+
<% if fetch(:app_server) && (fetch(:app_server_socket) || fetch(:app_server_port))%>
|
58
|
+
location ^~ /assets/ {
|
59
|
+
gzip_static on;
|
60
|
+
expires max;
|
61
|
+
add_header Cache-Control public;
|
62
|
+
}
|
63
|
+
|
64
|
+
try_files $uri/index.html $uri @<%= fetch(:application) %>-app-server;
|
65
|
+
|
66
|
+
location @<%= fetch(:application) %>-app-server {
|
67
|
+
proxy_set_header X-Real-IP $remote_addr;
|
68
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
69
|
+
proxy_set_header X-FORWARDED_PROTO http;
|
70
|
+
proxy_set_header Host $http_host;
|
71
|
+
<% if fetch(:nginx_use_ssl) %>
|
72
|
+
proxy_set_header X-Forwarded-Proto https;
|
73
|
+
<% end %>
|
74
|
+
<% if fetch(:nginx_read_timeout) %>
|
75
|
+
proxy_read_timeout <%= fetch(:nginx_read_timeout) %>;
|
76
|
+
<% end %>
|
77
|
+
proxy_redirect off;
|
78
|
+
proxy_pass http://<%= fetch(:application) %>-app-server;
|
79
|
+
|
80
|
+
proxy_cache default;
|
81
|
+
proxy_cache_lock on;
|
82
|
+
proxy_cache_use_stale updating;
|
83
|
+
add_header X-Cache-Status $upstream_cache_status;
|
84
|
+
}
|
85
|
+
<% end %>
|
86
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Rollbar.configure do |config|
|
2
|
+
if Rails.env.test? || Rails.env.development?
|
3
|
+
config.enabled = false
|
4
|
+
end
|
5
|
+
|
6
|
+
config.access_token = ENV['ROLLBAR_TOKEN']
|
7
|
+
|
8
|
+
config.use_sidekiq
|
9
|
+
config.use_sidekiq 'queue' => 'default'
|
10
|
+
|
11
|
+
config.environment = Rails.env
|
12
|
+
end
|
data/templates/schedule.rb
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
#
|
3
3
|
# It's helpful, but not entirely necessary to understand cron before proceeding.
|
4
4
|
# http://en.wikipedia.org/wiki/Cron
|
5
|
+
#
|
6
|
+
job_type :command, 'dotenv :task :output'
|
7
|
+
job_type :rake, 'cd :path && dotenv bundle exec rake :task --silent :output'
|
8
|
+
job_type :runner, "cd :path && dotenv bin/rails runner -e :environment ':task' :output"
|
9
|
+
job_type :script, 'cd :path && dotenv bin/:task :output'
|
5
10
|
|
6
11
|
# every 1.day, at: '1:00 am' do
|
7
12
|
# rake ...
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kratos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jaisonerick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -88,7 +88,6 @@ files:
|
|
88
88
|
- templates/dotfiles/.ctags
|
89
89
|
- templates/dotfiles/.env
|
90
90
|
- templates/dotfiles/.gitignore
|
91
|
-
- templates/dotfiles/.sample.application.yml
|
92
91
|
- templates/errors.rb
|
93
92
|
- templates/factory_girl_rspec.rb
|
94
93
|
- templates/foreman.rake
|
@@ -98,10 +97,14 @@ files:
|
|
98
97
|
- templates/json_encoding.rb
|
99
98
|
- templates/kratos_layout.html.erb.erb
|
100
99
|
- templates/lograge.rb
|
100
|
+
- templates/mysql_database.yml.erb
|
101
|
+
- templates/newrelic.yml.erb
|
102
|
+
- templates/nginx.conf.erb
|
101
103
|
- templates/postgresql_database.yml.erb
|
102
104
|
- templates/puma.rb
|
103
105
|
- templates/rails_helper.rb
|
104
106
|
- templates/redis.rb
|
107
|
+
- templates/rollbar.rb.erb
|
105
108
|
- templates/routes.rb
|
106
109
|
- templates/rspec_api_documentation_rspec.rb.erb
|
107
110
|
- templates/rubocop.rake
|
@@ -139,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
142
|
version: '0'
|
140
143
|
requirements: []
|
141
144
|
rubyforge_project:
|
142
|
-
rubygems_version: 2.5.
|
145
|
+
rubygems_version: 2.5.2
|
143
146
|
signing_key:
|
144
147
|
specification_version: 4
|
145
148
|
summary: A rails project generator based on thoughtbot's suspenders.
|
@@ -1,13 +0,0 @@
|
|
1
|
-
ASSET_HOST: localhost:3000
|
2
|
-
APPLICATION_HOST: localhost:3000
|
3
|
-
REDIS_URL: redis://127.0.0.1:6379
|
4
|
-
SECRET_TOKEN: development_token
|
5
|
-
SECRET_KEY_BASE: development_secret
|
6
|
-
EXECJS_RUNTIME: Node
|
7
|
-
SMTP_ADDRESS: smtp.example.com
|
8
|
-
SMTP_DOMAIN: example.com
|
9
|
-
SMTP_PASSWORD: password
|
10
|
-
SMTP_USERNAME: username
|
11
|
-
AWS_REGION: us-east-1
|
12
|
-
AWS_ACCESS_KEY_ID: <put-your-key-here>
|
13
|
-
AWS_SECRET_ACCESS_KEY: <put-your-secret-here>
|