orats 0.8.0 → 0.8.1
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 +3 -2
- data/lib/orats/cli.rb +4 -0
- data/lib/orats/commands/new/rails.rb +22 -16
- data/lib/orats/postgres.rb +4 -2
- data/lib/orats/templates/base.rb +2 -26
- data/lib/orats/templates/includes/new/rails/.env +6 -13
- data/lib/orats/templates/includes/new/rails/Gemfile +0 -1
- data/lib/orats/templates/includes/new/rails/Procfile +2 -2
- data/lib/orats/templates/includes/new/rails/app/views/pages/home.html.erb +1 -24
- data/lib/orats/templates/includes/new/rails/config/database.yml +3 -16
- data/lib/orats/templates/includes/new/rails/config/initializers/sidekiq.rb +2 -6
- data/lib/orats/templates/includes/new/rails/config/puma.rb +2 -8
- data/lib/orats/templates/includes/new/rails/config/schedule.rb +1 -5
- data/lib/orats/templates/includes/new/rails/config/sidekiq.yml +2 -2
- data/lib/orats/version.rb +1 -1
- data/test/test_helper.rb +5 -3
- metadata +2 -5
- data/lib/orats/templates/includes/new/rails/lib/backup/config.rb +0 -116
- data/lib/orats/templates/includes/new/rails/lib/backup/models/backup.rb +0 -55
- data/lib/orats/templates/includes/new/rails/lib/tasks/orats/backup.rake +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a725f12656a6becdd6ae20faf0c0bda7931155d
|
4
|
+
data.tar.gz: 244645b83953ef5e8e86cd384fd3c1af29ff48ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22b712f9ff800cb0e0c38849972df8ef4ae3ed787e504a7a8962be3a726530e35bbf16ede4d65f08c6e0f15749f710e6a903de49e46ae0ec9b46b44c2a0bff44
|
7
|
+
data.tar.gz: b25aa0727359cdba80242c209c21811232178ef0f12048924e5967f7397dc3e9b9e921338449541d3332c12dabdcde70d77c0d4f824fcce666e39f5f6b9a625b
|
data/README.md
CHANGED
@@ -112,7 +112,6 @@ All of the changes have git commits to go with them. After generating a project
|
|
112
112
|
- Keep a sitemap up to date using `sitemap_generator`
|
113
113
|
- Add a `pages` controller with `home` action that has points of interest
|
114
114
|
- **Rake tasks**:
|
115
|
-
- Daily backups using `backup` and `whenever`
|
116
115
|
- Generate favicons for many devices based off a single source png
|
117
116
|
- **Config**:
|
118
117
|
- Extract a bunch of configuration to environment variables
|
@@ -247,12 +246,14 @@ You can also view the [orats templates](https://github.com/nickjj/orats/tree/mas
|
|
247
246
|
|
248
247
|
Both the `new` and `nuke` commands are dependent on having your postgres and redis login information because they need to connection to those databases to perform various tasks.
|
249
248
|
|
250
|
-
There are
|
249
|
+
There are 7 flags to configure for this:
|
251
250
|
|
252
251
|
- `--pg-location` (defaults to localhost)
|
252
|
+
- `--pg-port` (defaults to 5432)
|
253
253
|
- `--pg-username` (defaults to postgres)
|
254
254
|
- `--pg-password` (defaults to an empty string)
|
255
255
|
- `--redis-location` (defaults to localhost)
|
256
|
+
- `--redis-port` (defaults to 6379)
|
256
257
|
- `--redis-password` (defaults to an empty string)
|
257
258
|
|
258
259
|
For most people you will only need to supply the postgres password but still it's annoying to have to type those flags in every time you create a new app or nuke an app. It's really annoying if you develop inside of linux containers like myself which means the location is not localhost.
|
data/lib/orats/cli.rb
CHANGED
@@ -41,9 +41,11 @@ module Orats
|
|
41
41
|
end
|
42
42
|
|
43
43
|
option :pg_location, default: 'localhost', aliases: '-l'
|
44
|
+
option :pg_port, default: '5432', aliases: '-o'
|
44
45
|
option :pg_username, default: 'postgres', aliases: '-u'
|
45
46
|
option :pg_password, default: '', aliases: '-p'
|
46
47
|
option :redis_location, default: 'localhost', aliases: '-n'
|
48
|
+
option :redis_port, default: '6379', aliases: '-r'
|
47
49
|
option :redis_password, default: '', aliases: '-d'
|
48
50
|
option :template, default: '', aliases: '-t'
|
49
51
|
option :custom, default: '', aliases: '-c'
|
@@ -56,9 +58,11 @@ module Orats
|
|
56
58
|
end
|
57
59
|
|
58
60
|
option :pg_location, default: 'localhost', aliases: '-l'
|
61
|
+
option :pg_port, default: '5432', aliases: '-o'
|
59
62
|
option :pg_username, default: 'postgres', aliases: '-u'
|
60
63
|
option :pg_password, default: '', aliases: '-p'
|
61
64
|
option :redis_location, default: 'localhost', aliases: '-n'
|
65
|
+
option :redis_port, default: '6379', aliases: '-r'
|
62
66
|
option :redis_password, default: '', aliases: '-d'
|
63
67
|
option :skip_data, type: :boolean, default: false, aliases: '-D'
|
64
68
|
option :rc, default: ''
|
@@ -40,7 +40,6 @@ module Orats
|
|
40
40
|
def rails_template_actions
|
41
41
|
gsub_postgres_info
|
42
42
|
gsub_redis_info
|
43
|
-
gsub_app_path
|
44
43
|
gsub_readme
|
45
44
|
|
46
45
|
bundle_install
|
@@ -53,27 +52,34 @@ module Orats
|
|
53
52
|
end
|
54
53
|
|
55
54
|
def gsub_postgres_info
|
56
|
-
task 'Update the
|
55
|
+
task 'Update the DATABASE_URL'
|
57
56
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
57
|
+
unless @options[:pg_password].empty?
|
58
|
+
gsub_file "#{@target_path}/.env", 'db_user',
|
59
|
+
"db_user:#{@options[:pg_password]}"
|
60
|
+
end
|
61
|
+
|
62
|
+
gsub_file "#{@target_path}/.env", 'db_location',
|
63
|
+
@options[:pg_location]
|
64
|
+
gsub_file "#{@target_path}/.env", 'db_port', @options[:pg_port]
|
65
|
+
gsub_file "#{@target_path}/.env", 'db_user', @options[:pg_username]
|
64
66
|
|
65
|
-
commit 'Update the
|
67
|
+
commit 'Update the DATABASE_URL'
|
66
68
|
end
|
67
69
|
|
68
70
|
def gsub_redis_info
|
69
|
-
task 'Update the
|
71
|
+
task 'Update the CACHE_URL'
|
72
|
+
|
73
|
+
unless @options[:redis_password].empty?
|
74
|
+
gsub_file "#{@target_path}/.env", '//',
|
75
|
+
"//#{@options[:redis_password]}@"
|
76
|
+
end
|
70
77
|
|
71
|
-
gsub_file "#{@target_path}/.env",
|
72
|
-
|
73
|
-
gsub_file "#{@target_path}/.env",
|
74
|
-
"CACHE_HOST: '#{@options[:redis_location]}'"
|
78
|
+
gsub_file "#{@target_path}/.env", 'cache_location',
|
79
|
+
@options[:redis_location]
|
80
|
+
gsub_file "#{@target_path}/.env", 'cache_port', @options[:redis_port]
|
75
81
|
|
76
|
-
commit 'Update the
|
82
|
+
commit 'Update the CACHE_URL'
|
77
83
|
end
|
78
84
|
|
79
85
|
def gsub_app_path
|
@@ -102,7 +108,7 @@ module Orats
|
|
102
108
|
|
103
109
|
def bundle_binstubs
|
104
110
|
task 'Run bundle binstubs for a few gems'
|
105
|
-
run_from @target_path, 'bundle binstubs whenever puma sidekiq
|
111
|
+
run_from @target_path, 'bundle binstubs whenever puma sidekiq'
|
106
112
|
|
107
113
|
commit 'Add binstubs for the important gems'
|
108
114
|
end
|
data/lib/orats/postgres.rb
CHANGED
@@ -59,9 +59,10 @@ module Orats
|
|
59
59
|
|
60
60
|
def manually_create_postgres_db
|
61
61
|
database = File.basename(@target_path)
|
62
|
+
dev_database = "#{database}_development"
|
62
63
|
test_database = "#{database}_test"
|
63
64
|
|
64
|
-
createdb(
|
65
|
+
createdb(dev_database)
|
65
66
|
createdb(test_database)
|
66
67
|
end
|
67
68
|
|
@@ -74,9 +75,10 @@ module Orats
|
|
74
75
|
|
75
76
|
def manually_delete_postgres_db(name)
|
76
77
|
database = File.basename(name)
|
78
|
+
dev_database = "#{database}_development"
|
77
79
|
test_database = "#{database}_test"
|
78
80
|
|
79
|
-
dropdb(
|
81
|
+
dropdb(dev_database)
|
80
82
|
dropdb(test_database)
|
81
83
|
end
|
82
84
|
|
data/lib/orats/templates/base.rb
CHANGED
@@ -156,14 +156,8 @@ def update_app_config
|
|
156
156
|
config.action_mailer.default_options = { from: ENV['ACTION_MAILER_DEFAULT_FROM'] }
|
157
157
|
config.action_mailer.default_url_options = { host: ENV['ACTION_MAILER_HOST'] }
|
158
158
|
|
159
|
-
|
160
|
-
|
161
|
-
db: ENV['CACHE_DATABASE'].to_i,
|
162
|
-
namespace: '#{app_name}::cache'
|
163
|
-
}
|
164
|
-
|
165
|
-
redis_store_options[:password] = ENV['CACHE_PASSWORD'] if ENV['CACHE_PASSWORD'].present?
|
166
|
-
config.cache_store = :redis_store, redis_store_options
|
159
|
+
config.cache_store = :redis_store, ENV['CACHE_URL'],
|
160
|
+
{ namespace: '#{app_name}::cache' }
|
167
161
|
|
168
162
|
# run `bundle exec rake time:zones:all` to get a complete list of valid time zone names
|
169
163
|
config.time_zone = ENV['TIME_ZONE'] unless ENV['TIME_ZONE'] == 'UTC'
|
@@ -310,14 +304,6 @@ def update_routes
|
|
310
304
|
commit 'Add a concern for pagination and mount sidekiq'
|
311
305
|
end
|
312
306
|
|
313
|
-
def add_backup_lib
|
314
|
-
task __method__
|
315
|
-
|
316
|
-
orats_to_local 'lib/backup/config.rb'
|
317
|
-
orats_to_local 'lib/backup/models/backup.rb'
|
318
|
-
commit 'Add backup library'
|
319
|
-
end
|
320
|
-
|
321
307
|
def add_favicon_task
|
322
308
|
task __method__
|
323
309
|
|
@@ -325,14 +311,6 @@ def add_favicon_task
|
|
325
311
|
commit 'Add a favicon generator task'
|
326
312
|
end
|
327
313
|
|
328
|
-
def add_backup_task
|
329
|
-
task __method__
|
330
|
-
|
331
|
-
orats_to_local 'lib/tasks/orats/backup.rake'
|
332
|
-
gsub_file 'lib/tasks/orats/backup.rake', 'app_name', app_name
|
333
|
-
commit 'Add an application backup task'
|
334
|
-
end
|
335
|
-
|
336
314
|
def add_helpers
|
337
315
|
task __method__
|
338
316
|
|
@@ -525,8 +503,6 @@ add_staging_environment
|
|
525
503
|
update_development_environment
|
526
504
|
update_production_environment
|
527
505
|
update_routes
|
528
|
-
add_backup_lib
|
529
|
-
add_backup_task
|
530
506
|
add_favicon_task
|
531
507
|
add_helpers
|
532
508
|
add_layout
|
@@ -1,6 +1,5 @@
|
|
1
1
|
RAILS_ENV: 'development'
|
2
2
|
|
3
|
-
PROJECT_PATH: '/tmp/yourapp'
|
4
3
|
TIME_ZONE: 'Eastern Time (US & Canada)'
|
5
4
|
DEFAULT_LOCALE: 'en'
|
6
5
|
|
@@ -24,20 +23,14 @@ ACTION_MAILER_HOST: 'localhost:3000'
|
|
24
23
|
ACTION_MAILER_DEFAULT_FROM: 'info@app_name.com'
|
25
24
|
ACTION_MAILER_DEFAULT_TO: 'me@app_name.com'
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
DATABASE_PASSWORD: 'supersecrets'
|
33
|
-
|
34
|
-
CACHE_HOST: 'localhost'
|
35
|
-
CACHE_PORT: 6379
|
36
|
-
CACHE_DATABASE: 0
|
37
|
-
CACHE_PASSWORD: ''
|
26
|
+
# your database name will automatically be adjusted for its enviroments:
|
27
|
+
# development: app_name_development
|
28
|
+
# test: app_name_test
|
29
|
+
DATABASE_URL: 'postgresql://db_user@db_location:db_port/app_name?encoding=utf8&pool=5&timeout=5000'
|
30
|
+
CACHE_URL: 'redis://cache_location:cache_port/0'
|
38
31
|
|
39
32
|
PUMA_THREADS_MIN: 0
|
40
33
|
PUMA_THREADS_MAX: 1
|
41
34
|
PUMA_WORKERS: 0
|
42
35
|
|
43
|
-
SIDEKIQ_CONCURRENCY:
|
36
|
+
SIDEKIQ_CONCURRENCY: 5
|
@@ -1,3 +1,3 @@
|
|
1
|
-
web: puma -C config/puma.rb | grep -v --line-buffered ' 304 -'
|
1
|
+
web: puma -C config/puma.rb -p 3000 | grep -v --line-buffered ' 304 -'
|
2
2
|
worker: sidekiq -C config/sidekiq.yml
|
3
|
-
log: tail -f log/development.log | grep -xv --line-buffered '^[[:space:]]*' | grep -v --line-buffered '/assets/'
|
3
|
+
log: tail -f log/development.log | grep -xv --line-buffered '^[[:space:]]*' | grep -v --line-buffered '/assets/'
|
@@ -20,19 +20,6 @@
|
|
20
20
|
|
21
21
|
<hr/>
|
22
22
|
|
23
|
-
<h3>Custom rake tasks</h3>
|
24
|
-
<pre>
|
25
|
-
<code>
|
26
|
-
# backup the database to S3 or any other location
|
27
|
-
bundle exec rake orats:backup
|
28
|
-
|
29
|
-
# generate a new set of favicons to the public directory
|
30
|
-
bundle exec rake orats:favicons
|
31
|
-
</code>
|
32
|
-
</pre>
|
33
|
-
|
34
|
-
<hr/>
|
35
|
-
|
36
23
|
<h3>Trying to figure out what to do next?</h3>
|
37
24
|
|
38
25
|
<p>
|
@@ -43,16 +30,6 @@
|
|
43
30
|
|
44
31
|
<hr/>
|
45
32
|
|
46
|
-
<h3>Looking to deploy your application?</h3>
|
47
|
-
|
48
|
-
<p>
|
49
|
-
Visit the wiki guide
|
50
|
-
for <%= link_to 'get your application on a server ', 'https://github.com/nickjj/orats/wiki/Get-your-application-on-a-server' %>
|
51
|
-
.
|
52
|
-
</p>
|
53
|
-
|
54
|
-
<hr/>
|
55
|
-
|
56
33
|
<h3>Want to get rid of the pages controller?</h3>
|
57
34
|
|
58
35
|
<p>
|
@@ -78,4 +55,4 @@
|
|
78
55
|
<div class="col-sm-3">
|
79
56
|
<%= image_tag '/apple-touch-icon-228x228-precomposed.png', size: '228x228', alt: 'A ruby image I found on Google' %>
|
80
57
|
</div>
|
81
|
-
</div>
|
58
|
+
</div>
|
@@ -1,19 +1,6 @@
|
|
1
1
|
---
|
2
|
-
development:
|
3
|
-
|
4
|
-
database: <%= ENV['DATABASE_NAME'] %>
|
5
|
-
host: <%= ENV['DATABASE_HOST'] %>
|
6
|
-
pool: <%= ENV['DATABASE_POOL'] %>
|
7
|
-
timeout: <%= ENV['DATABASE_TIMEOUT'] %>
|
8
|
-
username: <%= ENV['DATABASE_USERNAME'] %>
|
9
|
-
password: <%= ENV['DATABASE_PASSWORD'] %>
|
2
|
+
development:
|
3
|
+
url: <%= ENV['DATABASE_URL'].gsub('?', '_development?') %>
|
10
4
|
|
11
5
|
test:
|
12
|
-
|
13
|
-
database: <%= ENV['DATABASE_NAME'] %>_test
|
14
|
-
|
15
|
-
staging:
|
16
|
-
<<: *default
|
17
|
-
|
18
|
-
production:
|
19
|
-
<<: *default
|
6
|
+
url: <%= ENV['DATABASE_URL'].gsub('?', '_test?') %>
|
@@ -1,9 +1,5 @@
|
|
1
|
-
ENV['CACHE_PASSWORD'].present? ? pass_string = ":#{ENV['CACHE_PASSWORD']}@" : pass_string = ''
|
2
|
-
|
3
|
-
redis_host = "#{pass_string}#{ENV['CACHE_HOST']}"
|
4
|
-
|
5
1
|
sidekiq_config = {
|
6
|
-
url:
|
2
|
+
url: ENV['CACHE_URL'],
|
7
3
|
namespace: "ns_app::sidekiq_#{Rails.env}"
|
8
4
|
}
|
9
5
|
|
@@ -13,4 +9,4 @@ end
|
|
13
9
|
|
14
10
|
Sidekiq.configure_client do |config|
|
15
11
|
config.redis = sidekiq_config
|
16
|
-
end
|
12
|
+
end
|
@@ -3,13 +3,7 @@ environment ENV['RAILS_ENV']
|
|
3
3
|
threads ENV['PUMA_THREADS_MIN'].to_i, ENV['PUMA_THREADS_MAX'].to_i
|
4
4
|
workers ENV['PUMA_WORKERS'].to_i
|
5
5
|
|
6
|
-
pidfile "
|
7
|
-
|
8
|
-
if ENV['RAILS_ENV'] == 'production'
|
9
|
-
bind "unix://#{ENV['PROJECT_PATH']}/tmp/puma.sock"
|
10
|
-
else
|
11
|
-
port '3000'
|
12
|
-
end
|
6
|
+
pidfile "tmp/puma.pid"
|
13
7
|
|
14
8
|
# https://github.com/puma/puma/blob/master/examples/config.rb#L125
|
15
9
|
prune_bundler
|
@@ -22,4 +16,4 @@ on_worker_boot do
|
|
22
16
|
config_path = File.expand_path('../database.yml', __FILE__)
|
23
17
|
ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
|
24
18
|
ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'] || YAML.load_file(config_path)[ENV['RAILS_ENV']])
|
25
|
-
end
|
19
|
+
end
|
data/lib/orats/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -12,14 +12,16 @@ module Orats
|
|
12
12
|
|
13
13
|
TEST_PATH = ENV['TEST_PATH'] || '/tmp/orats'
|
14
14
|
POSTGRES_LOCATION = ENV['POSTGRES_LOCATION'] || 'localhost'
|
15
|
+
POSTGRES_PORT = ENV['POSTGRES_PORT'] || '5432'
|
15
16
|
POSTGRES_USERNAME = ENV['POSTGRES_USERNAME'] || 'postgres'
|
16
17
|
POSTGRES_PASSWORD = ENV['POSTGRES_PASSWORD'] || ''
|
17
18
|
REDIS_LOCATION = ENV['REDIS_LOCATION'] || 'localhost'
|
19
|
+
REDIS_PORT = ENV['REDIS_PORT'] || '6379'
|
18
20
|
REDIS_PASSWORD = ENV['REDIS_PASSWORD'] || ''
|
19
21
|
|
20
|
-
CREDENTIALS = "-l #{POSTGRES_LOCATION} -
|
21
|
-
" -p #{POSTGRES_PASSWORD} " + \
|
22
|
-
"
|
22
|
+
CREDENTIALS = "-l #{POSTGRES_LOCATION} -o #{POSTGRES_PORT} " + \
|
23
|
+
"-u #{POSTGRES_USERNAME} -p #{POSTGRES_PASSWORD} " + \
|
24
|
+
"-n #{REDIS_LOCATION} -r #{REDIS_PORT} -d #{REDIS_PASSWORD}"
|
23
25
|
|
24
26
|
INCLUDES_PATH = File.absolute_path('../../lib/orats/templates/includes',
|
25
27
|
__FILE__)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Janetakis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -137,9 +137,6 @@ files:
|
|
137
137
|
- lib/orats/templates/includes/new/rails/config/secrets.yml
|
138
138
|
- lib/orats/templates/includes/new/rails/config/sidekiq.yml
|
139
139
|
- lib/orats/templates/includes/new/rails/config/sitemap.rb
|
140
|
-
- lib/orats/templates/includes/new/rails/lib/backup/config.rb
|
141
|
-
- lib/orats/templates/includes/new/rails/lib/backup/models/backup.rb
|
142
|
-
- lib/orats/templates/includes/new/rails/lib/tasks/orats/backup.rake
|
143
140
|
- lib/orats/templates/includes/new/rails/lib/tasks/orats/favicon.rake
|
144
141
|
- lib/orats/templates/includes/new/rails/public/404.html
|
145
142
|
- lib/orats/templates/includes/new/rails/public/422.html
|
@@ -1,116 +0,0 @@
|
|
1
|
-
##
|
2
|
-
# Backup v4.x Configuration
|
3
|
-
#
|
4
|
-
# Documentation: http://meskyanichi.github.io/backup
|
5
|
-
# Issue Tracker: https://github.com/meskyanichi/backup/issues
|
6
|
-
|
7
|
-
# Config Options
|
8
|
-
#
|
9
|
-
# The options here may be overridden on the command line, but the result
|
10
|
-
# will depend on the use of --root-path on the command line.
|
11
|
-
#
|
12
|
-
# If --root-path is used on the command line, then all paths set here
|
13
|
-
# will be overridden. If a path (like --tmp-path) is not given along with
|
14
|
-
# --root-path, that path will use it's default location _relative to --root-path_.
|
15
|
-
#
|
16
|
-
# If --root-path is not used on the command line, a path option (like --tmp-path)
|
17
|
-
# given on the command line will override the tmp_path set here, but all other
|
18
|
-
# paths set here will be used.
|
19
|
-
#
|
20
|
-
# Note that relative paths given on the command line without --root-path
|
21
|
-
# are relative to the current directory. The root_path set here only applies
|
22
|
-
# to relative paths set here.
|
23
|
-
#
|
24
|
-
# ---
|
25
|
-
#
|
26
|
-
# Sets the root path for all relative paths, including default paths.
|
27
|
-
# May be an absolute path, or relative to the current working directory.
|
28
|
-
|
29
|
-
root_path 'lib/backup'
|
30
|
-
|
31
|
-
# Sets the path where backups are processed until they're stored.
|
32
|
-
# This must have enough free space to hold apx. 2 backups.
|
33
|
-
# May be an absolute path, or relative to the current directory or +root_path+.
|
34
|
-
|
35
|
-
tmp_path '../../tmp'
|
36
|
-
|
37
|
-
# Sets the path where backup stores persistent information.
|
38
|
-
# When Backup's Cycler is used, small YAML files are stored here.
|
39
|
-
# May be an absolute path, or relative to the current directory or +root_path+.
|
40
|
-
|
41
|
-
data_path '../../tmp/backup/data'
|
42
|
-
|
43
|
-
# Utilities
|
44
|
-
#
|
45
|
-
# If you need to use a utility other than the one Backup detects,
|
46
|
-
# or a utility can not be found in your $PATH.
|
47
|
-
#
|
48
|
-
# Utilities.configure do
|
49
|
-
# tar '/usr/bin/gnutar'
|
50
|
-
# redis_cli '/opt/redis/redis-cli'
|
51
|
-
# end
|
52
|
-
|
53
|
-
# Logging
|
54
|
-
#
|
55
|
-
# Logging options may be set on the command line, but certain settings
|
56
|
-
# may only be configured here.
|
57
|
-
#
|
58
|
-
# Logger.configure do
|
59
|
-
# console.quiet = true # Same as command line: --quiet
|
60
|
-
# logfile.max_bytes = 2_000_000 # Default: 500_000
|
61
|
-
# syslog.enabled = true # Same as command line: --syslog
|
62
|
-
# syslog.ident = 'my_app_backup' # Default: 'backup'
|
63
|
-
# end
|
64
|
-
#
|
65
|
-
# Command line options will override those set here.
|
66
|
-
# For example, the following would override the example settings above
|
67
|
-
# to disable syslog and enable console output.
|
68
|
-
# backup perform --trigger my_backup --no-syslog --no-quiet
|
69
|
-
|
70
|
-
# Component Defaults
|
71
|
-
#
|
72
|
-
# Set default options to be applied to components in all models.
|
73
|
-
# Options set within a model will override those set here.
|
74
|
-
#
|
75
|
-
# Storage::S3.defaults do |s3|
|
76
|
-
# s3.access_key_id = "my_access_key_id"
|
77
|
-
# s3.secret_access_key = "my_secret_access_key"
|
78
|
-
# end
|
79
|
-
#
|
80
|
-
# Notifier::Mail.defaults do |mail|
|
81
|
-
# mail.from = 'sender@email.com'
|
82
|
-
# mail.to = 'receiver@email.com'
|
83
|
-
# mail.address = 'smtp.gmail.com'
|
84
|
-
# mail.port = 587
|
85
|
-
# mail.domain = 'your.host.name'
|
86
|
-
# mail.user_name = 'sender@email.com'
|
87
|
-
# mail.password = 'my_password'
|
88
|
-
# mail.authentication = 'plain'
|
89
|
-
# mail.encryption = :starttls
|
90
|
-
# end
|
91
|
-
|
92
|
-
# Preconfigured Models
|
93
|
-
#
|
94
|
-
# Create custom models with preconfigured components.
|
95
|
-
# Components added within the model definition will
|
96
|
-
# +add to+ the preconfigured components.
|
97
|
-
#
|
98
|
-
# preconfigure 'MyModel' do
|
99
|
-
# archive :user_pictures do |archive|
|
100
|
-
# archive.add '~/pictures'
|
101
|
-
# end
|
102
|
-
#
|
103
|
-
# notify_by Mail do |mail|
|
104
|
-
# mail.to = 'admin@email.com'
|
105
|
-
# end
|
106
|
-
# end
|
107
|
-
#
|
108
|
-
# MyModel.new(:john_smith, 'John Smith Backup') do
|
109
|
-
# archive :user_music do |archive|
|
110
|
-
# archive.add '~/music'
|
111
|
-
# end
|
112
|
-
#
|
113
|
-
# notify_by Mail do |mail|
|
114
|
-
# mail.to = 'john.smith@email.com'
|
115
|
-
# end
|
116
|
-
# end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
Model.new(:backup, 'Backup for the current RAILS_ENV') do
|
2
|
-
split_into_chunks_of 10
|
3
|
-
compress_with Gzip
|
4
|
-
|
5
|
-
database PostgreSQL do |db|
|
6
|
-
db.sudo_user = ENV['DATABASE_USERNAME']
|
7
|
-
# To dump all databases, set `db.name = :all` (or leave blank)
|
8
|
-
db.name = ENV['DATABASE_NAME']
|
9
|
-
db.username = ENV['DATABASE_USERNAME']
|
10
|
-
db.password = ENV['DATABASE_PASSWORD']
|
11
|
-
db.host = ENV['DATABASE_HOST']
|
12
|
-
db.port = 5432
|
13
|
-
db.socket = '/var/run/postgresql'
|
14
|
-
#db.skip_tables = ['skip', 'these', 'tables']
|
15
|
-
#db.only_tables = ['only', 'these', 'tables']
|
16
|
-
end
|
17
|
-
|
18
|
-
# uncomment the block below to archive a specific path
|
19
|
-
# this may be useful if you have user supplied content
|
20
|
-
|
21
|
-
# archive :app_archive do |archive|
|
22
|
-
# archive.add File.join(ENV['PROJECT_PATH'], 'public', 'system')
|
23
|
-
# end
|
24
|
-
|
25
|
-
# uncomment the block below and fill in the required information
|
26
|
-
# to use S3 to store your backups
|
27
|
-
|
28
|
-
# don't want to use S3? check out the other available options:
|
29
|
-
# http://meskyanichi.github.io/backup/v4/storages/
|
30
|
-
|
31
|
-
# store_with S3 do |s3|
|
32
|
-
# s3.access_key_id = ENV['S3_ACCESS_KEY_ID']
|
33
|
-
# s3.secret_access_key = ENV['S3_SECRET_ACCESS_KEY']
|
34
|
-
# s3.region = ENV['S3_REGION']
|
35
|
-
# s3.bucket = 'backup'
|
36
|
-
# s3.path = "/database/#{ENV['RAILS_ENV']}"
|
37
|
-
# end
|
38
|
-
|
39
|
-
ENV['SMTP_ENCRYPTION'].empty? ? mail_encryption = 'none' : mail_encryption = ENV['SMTP_ENCRYPTION']
|
40
|
-
|
41
|
-
notify_by Mail do |mail|
|
42
|
-
mail.on_success = false
|
43
|
-
#mail.on_warning = true
|
44
|
-
mail.on_failure = true
|
45
|
-
mail.from = ENV['ACTION_MAILER_DEFAULT_FROM']
|
46
|
-
mail.to = ENV['ACTION_MAILER_DEFAULT_TO']
|
47
|
-
mail.address = ENV['SMTP_ADDRESS']
|
48
|
-
mail.port = ENV['SMTP_PORT'].to_i
|
49
|
-
mail.domain = ENV['SMTP_DOMAIN']
|
50
|
-
mail.user_name = ENV['SMTP_USERNAME']
|
51
|
-
mail.password = ENV['SMTP_PASSWORD']
|
52
|
-
mail.authentication = ENV['SMTP_AUTH']
|
53
|
-
mail.encryption = mail_encryption.to_sym
|
54
|
-
end
|
55
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
namespace :orats do
|
2
|
-
desc 'Create a backup of your application for a specific environment'
|
3
|
-
task :backup do
|
4
|
-
if File.exist?('.env') && File.file?('.env')
|
5
|
-
require 'dotenv'
|
6
|
-
Dotenv.load
|
7
|
-
source_external_env = ''
|
8
|
-
else
|
9
|
-
source_external_env = '. /etc/default/app_name &&'
|
10
|
-
end
|
11
|
-
|
12
|
-
# hack'ish way to run the backup command with elevated privileges, it won't prompt for a password on the production
|
13
|
-
# server because passwordless sudo has been enabled if you use the ansible setup provided by orats
|
14
|
-
system 'sudo whoami'
|
15
|
-
|
16
|
-
system "#{source_external_env} backup perform -t backup -c '#{File.join('lib', 'backup', 'config.rb')}' --log-path='#{File.join('log')}'"
|
17
|
-
end
|
18
|
-
end
|