smartmachine 0.8.0 → 1.0.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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +661 -0
  3. data/README.md +147 -0
  4. data/bin/console +14 -0
  5. data/bin/setup +8 -0
  6. data/exe/smartmachine +3 -0
  7. data/lib/smart_machine/apps/app.rb +165 -181
  8. data/lib/smart_machine/apps/container.rb +120 -0
  9. data/lib/smart_machine/apps/manager.rb +182 -0
  10. data/lib/smart_machine/base.rb +24 -6
  11. data/lib/smart_machine/buildpackers/buildpacker.rb +95 -0
  12. data/lib/smart_machine/{engine/buildpacks → buildpackers}/rails/Dockerfile +3 -3
  13. data/lib/smart_machine/buildpackers/rails.rb +221 -0
  14. data/lib/smart_machine/commands/app.rb +112 -0
  15. data/lib/smart_machine/commands/buildpacker.rb +53 -0
  16. data/lib/smart_machine/commands/credentials.rb +17 -0
  17. data/lib/smart_machine/commands/docker.rb +23 -0
  18. data/lib/smart_machine/commands/engine.rb +27 -0
  19. data/lib/smart_machine/commands/grid.rb +33 -0
  20. data/lib/smart_machine/commands/grid_commands/elasticsearch.rb +68 -0
  21. data/lib/smart_machine/commands/grid_commands/minio.rb +65 -0
  22. data/lib/smart_machine/commands/grid_commands/mysql.rb +71 -0
  23. data/lib/smart_machine/commands/grid_commands/nginx.rb +53 -0
  24. data/lib/smart_machine/commands/grid_commands/prereceiver.rb +96 -0
  25. data/lib/smart_machine/commands/grid_commands/redis.rb +65 -0
  26. data/lib/smart_machine/commands/grid_commands/scheduler.rb +15 -0
  27. data/lib/smart_machine/commands/grid_commands/sub_thor.rb +15 -0
  28. data/lib/smart_machine/commands/machine.rb +24 -0
  29. data/lib/smart_machine/commands/syncer.rb +23 -0
  30. data/lib/smart_machine/commands/utilities.rb +37 -0
  31. data/lib/smart_machine/commands.rb +66 -0
  32. data/lib/smart_machine/configuration.rb +79 -0
  33. data/lib/smart_machine/credentials.rb +93 -95
  34. data/lib/smart_machine/docker.rb +144 -143
  35. data/lib/smart_machine/engine/Dockerfile +7 -5
  36. data/lib/smart_machine/engine.rb +104 -79
  37. data/lib/smart_machine/grids/elasticsearch.rb +70 -89
  38. data/lib/smart_machine/grids/minio.rb +79 -68
  39. data/lib/smart_machine/grids/mysql.rb +207 -202
  40. data/lib/smart_machine/grids/nginx.rb +176 -135
  41. data/lib/smart_machine/grids/prereceiver/Dockerfile +2 -2
  42. data/lib/smart_machine/grids/prereceiver/pre-receive +17 -0
  43. data/lib/smart_machine/grids/prereceiver.rb +169 -169
  44. data/lib/smart_machine/grids/redis.rb +75 -57
  45. data/lib/smart_machine/grids/scheduler/Dockerfile +1 -1
  46. data/lib/smart_machine/logger.rb +26 -26
  47. data/lib/smart_machine/machine.rb +128 -194
  48. data/lib/smart_machine/scp.rb +15 -0
  49. data/lib/smart_machine/ssh.rb +69 -40
  50. data/lib/smart_machine/syncer.rb +133 -0
  51. data/lib/smart_machine/templates/dotsmartmachine/Gemfile +7 -0
  52. data/lib/smart_machine/templates/dotsmartmachine/config/elasticsearch.yml +5 -0
  53. data/lib/smart_machine/templates/dotsmartmachine/config/environment.rb +0 -9
  54. data/lib/smart_machine/templates/dotsmartmachine/config/minio.yml +13 -0
  55. data/lib/smart_machine/templates/dotsmartmachine/config/mysql/schedule.rb +3 -3
  56. data/lib/smart_machine/templates/dotsmartmachine/config/mysql.yml +13 -0
  57. data/lib/smart_machine/templates/dotsmartmachine/config/prereceiver.yml +7 -0
  58. data/lib/smart_machine/templates/dotsmartmachine/config/redis.yml +15 -0
  59. data/lib/smart_machine/templates/dotsmartmachine/config/users.yml +1 -1
  60. data/lib/smart_machine/templates/dotsmartmachine/gitignore-template +47 -0
  61. data/lib/smart_machine/templates/dotsmartmachine/{grids/elasticsearch/data → vendor}/.keep +0 -0
  62. data/lib/smart_machine/version.rb +30 -6
  63. data/lib/smart_machine.rb +42 -16
  64. metadata +97 -47
  65. data/CHANGELOG.rdoc +0 -0
  66. data/MIT-LICENSE +0 -21
  67. data/README.rdoc +0 -87
  68. data/bin/buildpacker +0 -8
  69. data/bin/prereceiver +0 -8
  70. data/bin/scheduler +0 -18
  71. data/bin/smartmachine +0 -81
  72. data/bin/smartrunner +0 -33
  73. data/lib/smart_machine/apps/rails.rb +0 -250
  74. data/lib/smart_machine/apps.rb +0 -14
  75. data/lib/smart_machine/boot.rb +0 -32
  76. data/lib/smart_machine/buildpacker.rb +0 -106
  77. data/lib/smart_machine/gem_version.rb +0 -17
  78. data/lib/smart_machine/grids.rb +0 -18
  79. data/lib/smart_machine/sync.rb +0 -120
  80. data/lib/smart_machine/templates/dotsmartmachine/grids/elasticsearch/logs/.keep +0 -0
  81. data/lib/smart_machine/templates/dotsmartmachine/grids/minio/data/.keep +0 -0
  82. data/lib/smart_machine/templates/dotsmartmachine/grids/mysql/backups/.keep +0 -0
  83. data/lib/smart_machine/templates/dotsmartmachine/grids/mysql/data/.keep +0 -0
  84. data/lib/smart_machine/templates/dotsmartmachine/grids/prereceiver/pre-receive +0 -17
  85. data/lib/smart_machine/templates/dotsmartmachine/grids/redis/data/.keep +0 -0
  86. data/lib/smart_machine/user.rb +0 -38
@@ -0,0 +1,13 @@
1
+ mysqlone:
2
+ port: 3306
3
+ root_password: <%= SmartMachine.credentials.dig(:mysqlone, :root_password) %>
4
+ username: <%= SmartMachine.credentials.dig(:mysqlone, :username) %>
5
+ password: <%= SmartMachine.credentials.dig(:mysqlone, :password) %>
6
+ database_name: <%= SmartMachine.credentials.dig(:mysqlone, :database_name) %>
7
+
8
+ # mysqltwo:
9
+ # port: 3307
10
+ # root_password: <%= SmartMachine.credentials.dig(:mysqltwo, :root_password) %>
11
+ # username: <%= SmartMachine.credentials.dig(:mysqltwo, :username) %>
12
+ # password: <%= SmartMachine.credentials.dig(:mysqltwo, :password) %>
13
+ # database_name: <%= SmartMachine.credentials.dig(:mysqltwo, :database_name) %>
@@ -0,0 +1,7 @@
1
+ prereceiverone:
2
+ git_domain: "git.yourdomain.com"
3
+ letsencrypt_test: false
4
+
5
+ # prereceivertwo:
6
+ # git_domain: "gittwo.yourdomain.com"
7
+ # letsencrypt_test: false
@@ -0,0 +1,15 @@
1
+ redisone:
2
+ port: 6379
3
+ password: <%= SmartMachine.credentials.dig(:redisone, :password) %>
4
+ appendonly: "yes"
5
+ maxmemory: 250MB
6
+ maxmemory_policy: allkeys-lfu
7
+ modules: []
8
+
9
+ # redistwo:
10
+ # port: 6380
11
+ # password: <%= SmartMachine.credentials.dig(:redistwo, :password) %>
12
+ # appendonly: "yes"
13
+ # maxmemory: 250MB
14
+ # maxmemory_policy: allkeys-lfu
15
+ # modules: []
@@ -1,4 +1,4 @@
1
1
  # The username and password will be used by nginx to provide htpasswd based authentication for each of the domains specified.
2
2
 
3
3
  git.yourdomain.com:
4
- yourname@yourdomain.com: yourpassword
4
+ yourname@yourdomain.com: yourpassword
@@ -0,0 +1,47 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore all logfiles and tempfiles.
11
+ /log/*
12
+ /tmp/*
13
+ !/log/.keep
14
+ !/tmp/.keep
15
+
16
+ # Ignore master key for decrypting credentials and more.
17
+ /config/master.key
18
+
19
+ # Environment Variables
20
+ .env
21
+
22
+ # Docs
23
+ /docs/*
24
+ !/docs/source/
25
+
26
+ # ---------- Mac ---------- #
27
+
28
+ .DS_Store
29
+ .AppleDouble
30
+ .LSOverride
31
+
32
+ # Icon must end with two \r
33
+ Icon
34
+
35
+ # Thumbnails
36
+ ._*
37
+
38
+ # Files that might appear on external disk
39
+ .Spotlight-V100
40
+ .Trashes
41
+
42
+ # Directories potentially created on remote AFP share
43
+ .AppleDB
44
+ .AppleDesktop
45
+ Network Trash Folder
46
+ Temporary Items
47
+ .apdisk
@@ -1,10 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "gem_version"
4
-
5
3
  module SmartMachine
6
- # Returns the version of the currently loaded SmartMachine as a <tt>Gem::Version</tt>
7
- def self.version
8
- gem_version
9
- end
4
+ # Returns the version of the currently loaded SmartMachine as a <tt>Gem::Version</tt>.
5
+ def self.gem_version
6
+ Gem::Version.new VERSION::STRING
7
+ end
8
+
9
+ def self.version
10
+ self.gem_version.to_s
11
+ end
12
+
13
+ def self.ruby_version
14
+ RUBY_VERSION::STRING
15
+ end
16
+
17
+ module VERSION
18
+ MAJOR = 1
19
+ MINOR = 0
20
+ TINY = 0
21
+ PRE = nil
22
+
23
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
24
+ end
25
+
26
+ module RUBY_VERSION
27
+ MAJOR = 2
28
+ MINOR = 7
29
+ TINY = 0
30
+ PRE = nil
31
+
32
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
33
+ end
10
34
  end
data/lib/smart_machine.rb CHANGED
@@ -1,24 +1,50 @@
1
1
  require "ostruct"
2
2
  require "yaml"
3
3
 
4
- # The main SmartMachine driver
5
- module SmartMachine
6
- def self.config
7
- @@config ||= OpenStruct.new
8
- end
4
+ require 'smart_machine/version'
5
+ require 'smart_machine/base'
9
6
 
10
- def self.credentials
11
- @@credentials ||= OpenStruct.new(SmartMachine::Credentials.new.config)
12
- end
13
- end
7
+ require 'smart_machine/configuration'
8
+ require 'smart_machine/credentials'
14
9
 
15
- require 'smart_machine/version'
10
+ require 'smart_machine/scp'
11
+ require 'smart_machine/ssh'
12
+ require 'smart_machine/machine'
13
+
14
+ require 'smart_machine/docker'
15
+ require 'smart_machine/engine'
16
+ require 'smart_machine/syncer'
17
+
18
+ require 'smart_machine/apps/app'
19
+ require 'smart_machine/apps/container'
20
+ require 'smart_machine/apps/manager'
16
21
 
17
- SmartMachine.config.root_path = File.expand_path('../..', __FILE__)
18
- SmartMachine.config.user_home_path = File.expand_path('~')
19
- if File.exist?("#{SmartMachine.config.user_home_path}/.smartmachine/config/environment.rb")
20
- require "#{SmartMachine.config.user_home_path}/.smartmachine/config/environment"
22
+ require 'smart_machine/buildpackers/buildpacker'
23
+ require 'smart_machine/buildpackers/rails'
24
+
25
+ require 'smart_machine/grids/elasticsearch'
26
+ require 'smart_machine/grids/minio'
27
+ require 'smart_machine/grids/mysql'
28
+ require 'smart_machine/grids/nginx'
29
+ require 'smart_machine/grids/prereceiver'
30
+ require 'smart_machine/grids/redis'
31
+ # require 'smart_machine/grids/scheduler'
32
+ # require 'smart_machine/grids/solr'
33
+
34
+ module SmartMachine
35
+ class Error < StandardError; end
36
+
37
+ def self.credentials
38
+ @@credentials ||= OpenStruct.new(SmartMachine::Credentials.new.config)
39
+ end
40
+
41
+ def self.config
42
+ @@config ||= OpenStruct.new(SmartMachine::Configuration.new.config)
43
+ end
21
44
  end
22
45
 
23
- require 'smart_machine/base'
24
- require 'smart_machine/boot'
46
+ SmartMachine.config.gem_dir = Gem::Specification.find_by_name("smartmachine").gem_dir
47
+ # This will only work inside the smartmachine engine.
48
+ if File.exist?("#{File.expand_path('~')}/machine/config/environment.rb")
49
+ require "#{File.expand_path('~')}/machine/config/environment"
50
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartmachine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Timeboard
7
+ - plainsource
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-22 00:00:00.000000000 Z
11
+ date: 2022-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '6.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.2'
26
+ version: '6.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bcrypt
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,6 +58,46 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '6.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: thor
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.0'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.0.1
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '1.0'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 1.0.1
81
+ - !ruby/object:Gem::Dependency
82
+ name: bundler
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 2.1.4
88
+ - - "<"
89
+ - !ruby/object:Gem::Version
90
+ version: 3.0.0
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 2.1.4
98
+ - - "<"
99
+ - !ruby/object:Gem::Version
100
+ version: 3.0.0
61
101
  - !ruby/object:Gem::Dependency
62
102
  name: whenever
63
103
  requirement: !ruby/object:Gem::Requirement
@@ -75,39 +115,48 @@ dependencies:
75
115
  description: SmartMachine is a full-stack deployment framework for rails optimized
76
116
  for admin programmer happiness and peaceful administration. It encourages natural
77
117
  simplicity by favoring convention over configuration.
78
- email: hello@timeboard.me
118
+ email: plainsource@humanmind.me
79
119
  executables:
80
- - buildpacker
81
- - prereceiver
82
- - scheduler
83
120
  - smartmachine
84
- - smartrunner
85
121
  extensions: []
86
- extra_rdoc_files:
87
- - README.rdoc
122
+ extra_rdoc_files: []
88
123
  files:
89
- - CHANGELOG.rdoc
90
- - MIT-LICENSE
91
- - README.rdoc
92
- - bin/buildpacker
93
- - bin/prereceiver
94
- - bin/scheduler
95
- - bin/smartmachine
96
- - bin/smartrunner
124
+ - LICENSE.txt
125
+ - README.md
126
+ - bin/console
127
+ - bin/setup
128
+ - exe/smartmachine
97
129
  - lib/smart_machine.rb
98
- - lib/smart_machine/apps.rb
99
130
  - lib/smart_machine/apps/app.rb
100
- - lib/smart_machine/apps/rails.rb
131
+ - lib/smart_machine/apps/container.rb
132
+ - lib/smart_machine/apps/manager.rb
101
133
  - lib/smart_machine/base.rb
102
- - lib/smart_machine/boot.rb
103
- - lib/smart_machine/buildpacker.rb
134
+ - lib/smart_machine/buildpackers/buildpacker.rb
135
+ - lib/smart_machine/buildpackers/rails.rb
136
+ - lib/smart_machine/buildpackers/rails/Dockerfile
137
+ - lib/smart_machine/commands.rb
138
+ - lib/smart_machine/commands/app.rb
139
+ - lib/smart_machine/commands/buildpacker.rb
140
+ - lib/smart_machine/commands/credentials.rb
141
+ - lib/smart_machine/commands/docker.rb
142
+ - lib/smart_machine/commands/engine.rb
143
+ - lib/smart_machine/commands/grid.rb
144
+ - lib/smart_machine/commands/grid_commands/elasticsearch.rb
145
+ - lib/smart_machine/commands/grid_commands/minio.rb
146
+ - lib/smart_machine/commands/grid_commands/mysql.rb
147
+ - lib/smart_machine/commands/grid_commands/nginx.rb
148
+ - lib/smart_machine/commands/grid_commands/prereceiver.rb
149
+ - lib/smart_machine/commands/grid_commands/redis.rb
150
+ - lib/smart_machine/commands/grid_commands/scheduler.rb
151
+ - lib/smart_machine/commands/grid_commands/sub_thor.rb
152
+ - lib/smart_machine/commands/machine.rb
153
+ - lib/smart_machine/commands/syncer.rb
154
+ - lib/smart_machine/commands/utilities.rb
155
+ - lib/smart_machine/configuration.rb
104
156
  - lib/smart_machine/credentials.rb
105
157
  - lib/smart_machine/docker.rb
106
158
  - lib/smart_machine/engine.rb
107
159
  - lib/smart_machine/engine/Dockerfile
108
- - lib/smart_machine/engine/buildpacks/rails/Dockerfile
109
- - lib/smart_machine/gem_version.rb
110
- - lib/smart_machine/grids.rb
111
160
  - lib/smart_machine/grids/elasticsearch.rb
112
161
  - lib/smart_machine/grids/elasticsearch/.keep
113
162
  - lib/smart_machine/grids/minio.rb
@@ -126,6 +175,7 @@ files:
126
175
  - lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-1.1.1-r4.apk
127
176
  - lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-doc-1.1.1-r4.apk
128
177
  - lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-openrc-1.1.1-r4.apk
178
+ - lib/smart_machine/grids/prereceiver/pre-receive
129
179
  - lib/smart_machine/grids/redis.rb
130
180
  - lib/smart_machine/grids/redis/.keep
131
181
  - lib/smart_machine/grids/scheduler.rb
@@ -296,52 +346,52 @@ files:
296
346
  - lib/smart_machine/grids/solr/sunspot/conf/solrconfig.xml
297
347
  - lib/smart_machine/logger.rb
298
348
  - lib/smart_machine/machine.rb
349
+ - lib/smart_machine/scp.rb
299
350
  - lib/smart_machine/ssh.rb
300
- - lib/smart_machine/sync.rb
351
+ - lib/smart_machine/syncer.rb
352
+ - lib/smart_machine/templates/dotsmartmachine/Gemfile
301
353
  - lib/smart_machine/templates/dotsmartmachine/apps/containers/.keep
302
354
  - lib/smart_machine/templates/dotsmartmachine/apps/repositories/.keep
355
+ - lib/smart_machine/templates/dotsmartmachine/config/elasticsearch.yml
303
356
  - lib/smart_machine/templates/dotsmartmachine/config/environment.rb
357
+ - lib/smart_machine/templates/dotsmartmachine/config/minio.yml
358
+ - lib/smart_machine/templates/dotsmartmachine/config/mysql.yml
304
359
  - lib/smart_machine/templates/dotsmartmachine/config/mysql/schedule.rb
360
+ - lib/smart_machine/templates/dotsmartmachine/config/prereceiver.yml
361
+ - lib/smart_machine/templates/dotsmartmachine/config/redis.yml
305
362
  - lib/smart_machine/templates/dotsmartmachine/config/users.yml
306
- - lib/smart_machine/templates/dotsmartmachine/grids/elasticsearch/data/.keep
307
- - lib/smart_machine/templates/dotsmartmachine/grids/elasticsearch/logs/.keep
308
- - lib/smart_machine/templates/dotsmartmachine/grids/minio/data/.keep
309
- - lib/smart_machine/templates/dotsmartmachine/grids/mysql/backups/.keep
310
- - lib/smart_machine/templates/dotsmartmachine/grids/mysql/data/.keep
363
+ - lib/smart_machine/templates/dotsmartmachine/gitignore-template
311
364
  - lib/smart_machine/templates/dotsmartmachine/grids/nginx/certificates/.keep
312
365
  - lib/smart_machine/templates/dotsmartmachine/grids/nginx/fastcgi.conf
313
366
  - lib/smart_machine/templates/dotsmartmachine/grids/nginx/htpasswd/.keep
314
367
  - lib/smart_machine/templates/dotsmartmachine/grids/nginx/nginx.tmpl
315
- - lib/smart_machine/templates/dotsmartmachine/grids/prereceiver/pre-receive
316
- - lib/smart_machine/templates/dotsmartmachine/grids/redis/data/.keep
317
368
  - lib/smart_machine/templates/dotsmartmachine/grids/scheduler/crontabs/.keep
318
369
  - lib/smart_machine/templates/dotsmartmachine/grids/solr/solr/.keep
319
370
  - lib/smart_machine/templates/dotsmartmachine/tmp/.keep
320
- - lib/smart_machine/user.rb
371
+ - lib/smart_machine/templates/dotsmartmachine/vendor/.keep
321
372
  - lib/smart_machine/version.rb
322
- homepage: https://github.com/timeboarders/smartbytes
373
+ homepage: https://github.com/plainsource/smartmachine
323
374
  licenses:
324
- - MIT
375
+ - AGPL-3.0-or-later
325
376
  metadata:
326
- bug_tracker_uri: https://github.com/timeboarders/smartbytes/issues
327
- changelog_uri: https://github.com/timeboarders/smartbytes/blob/v0.8.0/smartmachine/CHANGELOG.rdoc
328
- source_code_uri: https://github.com/timeboarders/smartbytes/tree/v0.8.0/smartmachine
377
+ homepage_uri: https://github.com/plainsource/smartmachine
378
+ bug_tracker_uri: https://github.com/plainsource/smartmachine/issues
379
+ changelog_uri: https://github.com/plainsource/smartmachine/releases/tag/v1.0.0
380
+ source_code_uri: https://github.com/plainsource/smartmachine/tree/v1.0.0/smartmachine
329
381
  post_install_message:
330
- rdoc_options:
331
- - "--main"
332
- - README.rdoc
382
+ rdoc_options: []
333
383
  require_paths:
334
384
  - lib
335
385
  required_ruby_version: !ruby/object:Gem::Requirement
336
386
  requirements:
337
387
  - - ">="
338
388
  - !ruby/object:Gem::Version
339
- version: 2.5.0
389
+ version: 2.7.0
340
390
  required_rubygems_version: !ruby/object:Gem::Requirement
341
391
  requirements:
342
392
  - - ">="
343
393
  - !ruby/object:Gem::Version
344
- version: '0'
394
+ version: 1.8.11
345
395
  requirements: []
346
396
  rubygems_version: 3.1.2
347
397
  signing_key:
data/CHANGELOG.rdoc DELETED
File without changes
data/MIT-LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2019 Timeboard
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
data/README.rdoc DELETED
@@ -1,87 +0,0 @@
1
- = SmartMachine
2
-
3
- Git push should deploy.
4
-
5
- SmartMachine is a full-stack deployment framework for rails optimized for admin programmer happiness and peaceful administration. It encourages natural simplicity by favoring convention over configuration.
6
-
7
- Deploy your Rails apps to your own server with - git push production master
8
-
9
-
10
- == How it Works
11
-
12
- After you run the below commands, you get.
13
- 1. Setup of basic best practices of setting up and securing a VPS server.
14
- 2. Setup and installation of Docker.
15
- 3. Setup and installation of docker based Mysql, Solr, Nginx, App Prereceiver.
16
- 4. Deployment of your Rails apps to your own server with - git push production master
17
-
18
-
19
- == Setup a New Machine - Ubuntu 18.04 LTS
20
-
21
- 1. Getting Started with Linode:
22
-
23
- https://www.linode.com/docs/getting-started/
24
-
25
- 2. How to Secure Your Server:
26
-
27
- https://www.linode.com/docs/security/securing-your-server/
28
-
29
-
30
- == Install SmartMachine
31
-
32
- 1. Install Ruby:
33
-
34
- $ sudo apt-get install ruby-full
35
-
36
- 2. Add gem executables to PATH (remember to check ruby version in the path):
37
-
38
- $ echo 'export PATH="$PATH:$HOME/.gem/ruby/2.5.0/bin"' >> ~/.bashrc && source ~/.bashrc
39
-
40
- 3. Install smartmachine for current user:
41
-
42
- $ gem install smartmachine --user-install
43
-
44
- 4. Initialize smartmachine:
45
-
46
- $ smartmachine init
47
-
48
-
49
- == TODO - Setup Machine
50
- 1. Getting Started and Securing your Server:
51
-
52
- $ smartmachine machine install
53
-
54
-
55
- == Install Docker
56
-
57
- 1. Run docker install command:
58
-
59
- $ smartmachine docker install
60
-
61
- 2. Add UFW rules for Docker as specified at the end of installation.
62
-
63
-
64
- == Starting Grids as per Choice
65
-
66
- 1. Start mysql grid:
67
-
68
- $ smartmachine grids mysql up
69
-
70
- 2. Start solr grid:
71
-
72
- $ smartmachine grids solr up
73
-
74
- 3. Start nginx grid:
75
-
76
- $ smartmachine grids nginx up
77
-
78
- 4. Start prereceiver grid:
79
-
80
- $ smartmachine grids prereceiver up
81
-
82
-
83
- == TODO - Creating New App
84
-
85
- 1. Creating a new bare app on the server:
86
-
87
- $ smartmachine apps create <USERNAME> <APPNAME>
data/bin/buildpacker DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'smart_machine'
4
-
5
- if ARGV[0] == 'pack'
6
- buildpacker = SmartMachine::Buildpacker.new
7
- buildpacker.pack
8
- end
data/bin/prereceiver DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'smart_machine'
4
-
5
- if ARGV[0] == 'prereceive'
6
- raise "Please provide appname, username, oldrev, newrev and refname" unless ARGV[1] && ARGV[2] && ARGV[3] && ARGV[4] && ARGV[5]
7
- SmartMachine::Grids::Prereceiver.prereceive(ARGV[1], ARGV[2], ARGV[3], ARGV[4], ARGV[5])
8
- end
data/bin/scheduler DELETED
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'smart_machine'
4
-
5
- command = ARGV.shift
6
-
7
- scheduler = SmartMachine::Grids::Scheduler.new
8
-
9
- case command
10
- when "start"
11
- action = ARGV.shift
12
- scheduler.mysql("start") if action == "--mysql"
13
-
14
- when "stop"
15
- action = ARGV.shift
16
- scheduler.mysql("stop") if action == "--mysql"
17
-
18
- end
data/bin/smartmachine DELETED
@@ -1,81 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "smart_machine"
4
-
5
- command = ARGV.shift
6
-
7
- machine = SmartMachine::Machine.new
8
-
9
- case command
10
- when "new"
11
- machine.create ARGV
12
- return
13
-
14
- when "--init-local"
15
- machine.init_local ARGV
16
- return
17
-
18
- when "--version"
19
- puts "SmartMachine #{SmartMachine.version}"
20
- return
21
-
22
- when "--help"
23
- puts "Help: Specify a valid smartmachine command to execute. Are you in the correct directory to run this command?"
24
- return
25
-
26
- when "runner"
27
- exec "smartrunner #{ARGV.join(' ')}"
28
- return
29
-
30
- end
31
-
32
- if machine.in_local_machine_dir?
33
- case command
34
- when "credentials:edit"
35
- credentials = SmartMachine::Credentials.new
36
- credentials.edit
37
-
38
- when "environment:edit"
39
- system("#{ENV['EDITOR']} config/environment.rb")
40
-
41
- when "users:edit"
42
- system("#{ENV['EDITOR']} config/users.yml")
43
-
44
- when "ssh"
45
- machine.ssh
46
-
47
- when "install"
48
- machine.installer ARGV.unshift("install")
49
-
50
- when "update"
51
- machine.installer ARGV.unshift("update")
52
-
53
- when "uninstall"
54
- machine.installer ARGV.unshift("uninstall")
55
-
56
- when "apps"
57
- machine.apps ARGV
58
-
59
- when "grids"
60
- machine.grids ARGV
61
- return
62
-
63
- when "ps"
64
- machine.ps ARGV
65
- return
66
-
67
- when "logs"
68
- machine.logs ARGV
69
- return
70
-
71
- when "sync"
72
- sync = SmartMachine::Sync.new
73
- sync.run
74
-
75
- else
76
- exec "smartmachine --help"
77
-
78
- end
79
- else
80
- exec "smartmachine --help"
81
- end