diff --git a/config/deploy/shared/.rbenv-vars b/config/deploy/shared/.rbenv-vars new file mode 100644 index 00000000..4589226b --- /dev/null +++ b/config/deploy/shared/.rbenv-vars @@ -0,0 +1 @@ +SECRET_KEY_BASE=33c956cc0e41623bf4e0aedbb16061fa7460a993452b58311d07009782dc242925a52dbb79b506c35308e65cda7cb07b014f78daea0a7ea883a535dc14b33a09 \ No newline at end of file diff --git a/config/deploy/shared/database.yml.erb b/config/deploy/shared/database.yml.erb new file mode 100644 index 00000000..7303b1cd --- /dev/null +++ b/config/deploy/shared/database.yml.erb @@ -0,0 +1,6 @@ +production: + adapter: postgresql + host: localhost + database: iticket + username: wathon + password: root diff --git a/config/deploy/shared/log_rotation.erb b/config/deploy/shared/log_rotation.erb new file mode 100644 index 00000000..7507de18 --- /dev/null +++ b/config/deploy/shared/log_rotation.erb @@ -0,0 +1,11 @@ +<%= fetch(:deploy_to) %>/shared/log/*.log { + daily + missingok + rotate 52 + compress + delaycompress + notifempty + sharedscripts + endscript + copytruncate +} diff --git a/config/deploy/shared/monit.conf.erb b/config/deploy/shared/monit.conf.erb new file mode 100644 index 00000000..1689f9e0 --- /dev/null +++ b/config/deploy/shared/monit.conf.erb @@ -0,0 +1,2 @@ +<% application = fetch(:application) %> +set mail-format { subject: <%= "#{fetch(:full_app_name)} - #{fetch(:rails_env)}" %> $SERVICE $EVENT at $DATE } diff --git a/config/deploy/shared/nginx.conf.erb b/config/deploy/shared/nginx.conf.erb new file mode 100644 index 00000000..c888b6ae --- /dev/null +++ b/config/deploy/shared/nginx.conf.erb @@ -0,0 +1,40 @@ +server { + server_name <%= fetch(:server_name) %>; + listen 80; + passenger_enabled on; + rails_env production; + root <%= fetch(:deploy_to) %>/current/public; + + location ^~ /assets/ { + gzip_static on; + expires max; + add_header Cache-Control public; + } + + error_page 500 502 503 504 /500.html; + client_max_body_size 4G; + keepalive_timeout 10; +} + +<% if fetch(:enable_ssl) %> +server { + server_name <%= fetch(:server_name) %>; + listen 443; + passenger_enabled on; + rails_env production; + root <%= fetch(:deploy_to) %>/current/public; + + location ^~ /assets/ { + gzip_static on; + expires max; + add_header Cache-Control public; + } + + error_page 500 502 503 504 /500.html; + client_max_body_size 4G; + keepalive_timeout 10; + ssl on; + ssl_certificate <%= fetch(:deploy_to) %>/shared/ssl_cert.crt; + ssl_certificate_key <%= fetch(:deploy_to) %>/shared/ssl_private_key.key; +} +<% end %> diff --git a/config/deploy/shared/redis.yml.erb b/config/deploy/shared/redis.yml.erb new file mode 100644 index 00000000..8a1f2d4a --- /dev/null +++ b/config/deploy/shared/redis.yml.erb @@ -0,0 +1,4 @@ +<%= fetch(:rails_env) %>: + host: data.myapp.com + port: 6379 + db: 0 \ No newline at end of file diff --git a/config/deploy/shared/sidekiq.yml.erb b/config/deploy/shared/sidekiq.yml.erb new file mode 100644 index 00000000..707ebb27 --- /dev/null +++ b/config/deploy/shared/sidekiq.yml.erb @@ -0,0 +1,2 @@ +<%= fetch(:rails_env) %>: + :concurrency: <%= fetch(:sidekiq_concurrency, 5) %> \ No newline at end of file diff --git a/config/deploy/shared/sidekiq_init.sh.erb b/config/deploy/shared/sidekiq_init.sh.erb new file mode 100644 index 00000000..1f667f90 --- /dev/null +++ b/config/deploy/shared/sidekiq_init.sh.erb @@ -0,0 +1,48 @@ +#!/bin/sh +set -e + +APP_ROOT=<%= current_path %> +PID=$APP_ROOT/tmp/pids/sidekiq.pid +CMD="cd $APP_ROOT; RAILS_ENV=<%= "#{fetch(:rails_env)}" %> nohup bundle exec sidekiq -e <%= "#{fetch(:rails_env)}" %> -C $APP_ROOT/config/sidekiq.yml -i 0 -P $PID >> $APP_ROOT/log/sidekiq.log 2>&1 &" +STOP_CMD="cd $APP_ROOT; RAILS_ENV=<%= "#{fetch(:rails_env)}" %> bundle exec sidekiqctl stop $APP_ROOT/tmp/pids/sidekiq.pid 10" +AS_USER=<%= fetch(:deploy_user) %> + +run () { + if [ "$(id -un)" = "$AS_USER" ]; then + eval $1 + else + su -c "$1" - $AS_USER + fi +} + +sig () { + test -s "$PID" && kill -$1 `cat $PID` +} + +case "$1" in + start) + sig 0 && echo >&2 "Already Running" && exit 0 + run "$CMD" + ;; + stop) + if test -s "$PID" && kill -0 `cat $PID` + then + echo "stopping...." + run "$STOP_CMD" + else + echo "not running" + fi + ;; + restart|reload) + if test -s "$PID" && kill -0 `cat $PID` + then + echo "stopping...." + run "$STOP_CMD" + fi + run "$CMD" + ;; + *) + echo >&2 "Usage: $0 " + exit 1 + ;; +esac diff --git a/config/puma_backup.rb b/config/puma_backup.rb new file mode 100755 index 00000000..d24425ae --- /dev/null +++ b/config/puma_backup.rb @@ -0,0 +1,11 @@ +application_path="#{File.expand_path("../..", __FILE__)}" +directory application_path +#environment ENV.fetch("RAILS_ENV") { "production" } +environment "production" +pidfile "#{application_path}/tmp/puma/pid" +state_path "#{application_path}/tmp/puma/state" +stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" +port ENV.fetch("PORT") { 62158 } +workers 2 +preload_app! +threads 1,1