uberspacify 0.9.0 → 0.9.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.
- data/README.md +11 -2
- data/lib/uberspacify/base.rb +107 -0
- data/lib/uberspacify/mysql.rb +38 -0
- data/lib/uberspacify/recipes.rb +2 -139
- data/lib/uberspacify/version.rb +1 -1
- metadata +108 -124
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Uberspacify
|
2
2
|
|
3
|
-
Uberspacify helps you deploy a Ruby on Rails app on Uberspace, a popular
|
3
|
+
Uberspacify helps you deploy a Ruby on Rails app on Uberspace, a popular shared hosting provider.
|
4
4
|
|
5
5
|
All the magic is built into a couple nice Capistrano scripts. Uberspacify will create an environment for your app, install Passenger, run it in standalone mode, monitor it using Daemontools, and configure Apache to reverse-proxy to it. Uberspacify will also find out your Uberspace MySQL password and create databases as well as a `database.yml`
|
6
6
|
|
@@ -31,7 +31,11 @@ load 'deploy/assets'
|
|
31
31
|
Now, you need to add a few lines regarding your Uberspace to your `config/deploy.rb`. It is safe to copy, paste & adapt the following:
|
32
32
|
|
33
33
|
```ruby
|
34
|
-
|
34
|
+
# include uberspacify base recipes
|
35
|
+
require 'uberspacify/base'
|
36
|
+
|
37
|
+
# uncomment this if you don't use MySQL
|
38
|
+
require 'uberspacify/mysql'
|
35
39
|
|
36
40
|
# the Uberspace server you are on
|
37
41
|
server 'phoenix.uberspace.de', :web, :app, :db, :primary => true
|
@@ -58,6 +62,11 @@ set :repository, 'https://github.com/yeah/dummyapp.git'
|
|
58
62
|
# be available on port 80 and 443 from the outside. However, if you'd like to
|
59
63
|
# set this yourself, go ahead.
|
60
64
|
# set :passenger_port, 55555
|
65
|
+
|
66
|
+
# By default, Ruby Enterprise Edition 1.8.7 is used for Uberspace. If you
|
67
|
+
# prefer Ruby 1.9 or any other version, please refer to the RVM documentation
|
68
|
+
# at https://rvm.io/integration/capistrano/ and set this variable.
|
69
|
+
# set :rvm_ruby_string, '1.9.3@rails-dummyapp'
|
61
70
|
```
|
62
71
|
|
63
72
|
Done. That was the hard part. It's easy from here on out. Next, add all new/modified files to version control. If you use Git, the following will do:
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'capistrano_colors'
|
2
|
+
require 'rvm/capistrano'
|
3
|
+
require 'bundler/capistrano'
|
4
|
+
|
5
|
+
def abort_red(msg)
|
6
|
+
abort " * \e[#{1};31mERROR: #{msg}\e[0m"
|
7
|
+
end
|
8
|
+
|
9
|
+
Capistrano::Configuration.instance.load do
|
10
|
+
|
11
|
+
# required variables
|
12
|
+
_cset(:user) { abort_red "Please configure your Uberspace user in config/deploy.rb using 'set :user, <username>'" }
|
13
|
+
_cset(:repository) { abort_red "Please configure your code repository config/deploy.rb using 'set :repository, <repo uri>'" }
|
14
|
+
|
15
|
+
# optional variables
|
16
|
+
_cset(:domain) { nil }
|
17
|
+
_cset(:passenger_port) { rand(61000-32768+1)+32768 } # random ephemeral port
|
18
|
+
|
19
|
+
_cset(:deploy_via) { :remote_cache }
|
20
|
+
_cset(:git_enable_submodules) { 1 }
|
21
|
+
_cset(:branch) { 'master' }
|
22
|
+
|
23
|
+
_cset(:keep_releases) { 3 }
|
24
|
+
|
25
|
+
# uberspace presets
|
26
|
+
set(:deploy_to) { "/var/www/virtual/#{user}/rails/#{application}" }
|
27
|
+
set(:home) { "/home/#{user}" }
|
28
|
+
set(:use_sudo) { false }
|
29
|
+
set(:rvm_type) { :user }
|
30
|
+
set(:rvm_install_ruby) { :install }
|
31
|
+
set(:rvm_ruby_string) { "ree@rails-#{application}" }
|
32
|
+
|
33
|
+
ssh_options[:forward_agent] = true
|
34
|
+
default_run_options[:pty] = true
|
35
|
+
|
36
|
+
# callbacks
|
37
|
+
before 'deploy:setup', 'rvm:install_rvm'
|
38
|
+
before 'deploy:setup', 'rvm:install_ruby'
|
39
|
+
after 'deploy:setup', 'uberspace:setup_svscan'
|
40
|
+
after 'deploy:setup', 'daemontools:setup_daemon'
|
41
|
+
after 'deploy:setup', 'apache:setup_reverse_proxy'
|
42
|
+
after 'deploy:update_code', 'deploy:symlink_shared'
|
43
|
+
after 'deploy', 'deploy:cleanup'
|
44
|
+
|
45
|
+
# custom recipes
|
46
|
+
namespace :uberspace do
|
47
|
+
task :setup_svscan do
|
48
|
+
run 'uberspace-setup-svscan ; echo 0'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
namespace :daemontools do
|
53
|
+
task :setup_daemon do
|
54
|
+
daemon_script = <<-EOF
|
55
|
+
#!/bin/bash
|
56
|
+
export HOME=#{fetch :home}
|
57
|
+
source $HOME/.bash_profile
|
58
|
+
cd #{fetch :deploy_to}/current
|
59
|
+
rvm use #{fetch :rvm_ruby_string}
|
60
|
+
exec bundle exec passenger start -p #{fetch :passenger_port} -e production 2>&1
|
61
|
+
EOF
|
62
|
+
|
63
|
+
log_script = <<-EOF
|
64
|
+
#!/bin/sh
|
65
|
+
exec multilog t ./main
|
66
|
+
EOF
|
67
|
+
|
68
|
+
run "mkdir -p #{fetch :home}/etc/run-rails-#{fetch :application}"
|
69
|
+
run "mkdir -p #{fetch :home}/etc/run-rails-#{fetch :application}/log"
|
70
|
+
put daemon_script, "#{fetch :home}/etc/run-rails-#{fetch :application}/run"
|
71
|
+
put log_script, "#{fetch :home}/etc/run-rails-#{fetch :application}/log/run"
|
72
|
+
run "chmod +x #{fetch :home}/etc/run-rails-#{fetch :application}/run"
|
73
|
+
run "chmod +x #{fetch :home}/etc/run-rails-#{fetch :application}/log/run"
|
74
|
+
run "ln -nfs #{fetch :home}/etc/run-rails-#{fetch :application} #{fetch :home}/service/rails-#{fetch :application}"
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
namespace :apache do
|
80
|
+
task :setup_reverse_proxy do
|
81
|
+
htaccess = <<-EOF
|
82
|
+
RewriteEngine On
|
83
|
+
RewriteRule ^(.*)$ http://localhost:#{fetch :passenger_port}/$1 [P]
|
84
|
+
EOF
|
85
|
+
path = fetch(:domain) ? "/var/www/virtual/#{fetch :user}/#{fetch :domain}" : "#{fetch :home}/html"
|
86
|
+
run "mkdir -p #{path}"
|
87
|
+
put htaccess, "#{path}/.htaccess"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
namespace :deploy do
|
92
|
+
task :start do
|
93
|
+
run "svc -u #{fetch :home}/service/rails-#{fetch :application}"
|
94
|
+
end
|
95
|
+
task :stop do
|
96
|
+
run "svc -d #{fetch :home}/service/rails-#{fetch :application}"
|
97
|
+
end
|
98
|
+
task :restart do
|
99
|
+
run "svc -du #{fetch :home}/service/rails-#{fetch :application}"
|
100
|
+
end
|
101
|
+
|
102
|
+
task :symlink_shared do
|
103
|
+
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
Capistrano::Configuration.instance.load do
|
2
|
+
|
3
|
+
# callbacks
|
4
|
+
after 'deploy:setup', 'mysql:setup_database_and_config'
|
5
|
+
|
6
|
+
# custom recipes
|
7
|
+
namespace :mysql do
|
8
|
+
task :setup_database_and_config do
|
9
|
+
my_cnf = capture('cat ~/.my.cnf')
|
10
|
+
config = {}
|
11
|
+
%w(development production test).each do |env|
|
12
|
+
|
13
|
+
config[env] = {
|
14
|
+
'adapter' => 'mysql2',
|
15
|
+
'encoding' => 'utf8',
|
16
|
+
'database' => "#{fetch :user}_rails_#{fetch :application}_#{env}",
|
17
|
+
'host' => 'localhost'
|
18
|
+
}
|
19
|
+
|
20
|
+
my_cnf.match(/^user=(\w+)/)
|
21
|
+
config[env]['username'] = $1
|
22
|
+
|
23
|
+
my_cnf.match(/^password=(\w+)/)
|
24
|
+
config[env]['password'] = $1
|
25
|
+
|
26
|
+
my_cnf.match(/^port=(\d+)/)
|
27
|
+
config[env]['port'] = $1.to_i
|
28
|
+
|
29
|
+
run "mysql -e 'CREATE DATABASE IF NOT EXISTS #{config[env]['database']} CHARACTER SET utf8 COLLATE utf8_general_ci;'"
|
30
|
+
end
|
31
|
+
|
32
|
+
run "mkdir -p #{fetch :shared_path}/config"
|
33
|
+
put config.to_yaml, "#{fetch :shared_path}/config/database.yml"
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
data/lib/uberspacify/recipes.rb
CHANGED
@@ -1,139 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require 'bundler/capistrano'
|
4
|
-
|
5
|
-
def abort_red(msg)
|
6
|
-
abort " * \e[#{1};31mERROR: #{msg}\e[0m"
|
7
|
-
end
|
8
|
-
|
9
|
-
Capistrano::Configuration.instance.load do
|
10
|
-
|
11
|
-
# required variables
|
12
|
-
_cset(:user) { abort_red "Please configure your Uberspace user in config/deploy.rb using 'set :user, <username>'" }
|
13
|
-
_cset(:repository) { abort_red "Please configure your code repository config/deploy.rb using 'set :repository, <repo uri>'" }
|
14
|
-
|
15
|
-
# optional variables
|
16
|
-
_cset(:domain) { nil }
|
17
|
-
_cset(:passenger_port) { rand(61000-32768+1)+32768 } # random ephemeral port
|
18
|
-
|
19
|
-
_cset(:deploy_via) { :remote_cache }
|
20
|
-
_cset(:git_enable_submodules) { 1 }
|
21
|
-
_cset(:branch) { 'master' }
|
22
|
-
|
23
|
-
_cset(:keep_releases) { 3 }
|
24
|
-
|
25
|
-
# uberspace presets
|
26
|
-
set(:deploy_to) { "/var/www/virtual/#{user}/rails/#{application}" }
|
27
|
-
set(:home) { "/home/#{user}" }
|
28
|
-
set(:use_sudo) { false }
|
29
|
-
set(:rvm_type) { :user }
|
30
|
-
set(:rvm_install_ruby) { :install }
|
31
|
-
set(:rvm_ruby_string) { "ree@rails-#{application}" }
|
32
|
-
|
33
|
-
ssh_options[:forward_agent] = true
|
34
|
-
default_run_options[:pty] = true
|
35
|
-
|
36
|
-
# callbacks
|
37
|
-
before 'deploy:setup', 'rvm:install_rvm'
|
38
|
-
before 'deploy:setup', 'rvm:install_ruby'
|
39
|
-
after 'deploy:setup', 'uberspace:setup_svscan'
|
40
|
-
after 'deploy:setup', 'daemontools:setup_daemon'
|
41
|
-
after 'deploy:setup', 'apache:setup_reverse_proxy'
|
42
|
-
after 'deploy:setup', 'mysql:setup_database_and_config'
|
43
|
-
after 'deploy:update_code', 'deploy:symlink_shared'
|
44
|
-
after 'deploy', 'deploy:cleanup'
|
45
|
-
|
46
|
-
# custom recipes
|
47
|
-
namespace :uberspace do
|
48
|
-
task :setup_svscan do
|
49
|
-
run 'uberspace-setup-svscan ; echo 0'
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
namespace :daemontools do
|
54
|
-
task :setup_daemon do
|
55
|
-
daemon_script = <<-EOF
|
56
|
-
#!/bin/bash
|
57
|
-
export HOME=#{fetch :home}
|
58
|
-
source $HOME/.bash_profile
|
59
|
-
cd #{fetch :deploy_to}/current
|
60
|
-
rvm use #{fetch :rvm_ruby_string}
|
61
|
-
exec bundle exec passenger start -p #{fetch :passenger_port} -e production 2>&1
|
62
|
-
EOF
|
63
|
-
|
64
|
-
log_script = <<-EOF
|
65
|
-
#!/bin/sh
|
66
|
-
exec multilog t ./main
|
67
|
-
EOF
|
68
|
-
|
69
|
-
run "mkdir -p #{fetch :home}/etc/run-rails-#{fetch :application}"
|
70
|
-
run "mkdir -p #{fetch :home}/etc/run-rails-#{fetch :application}/log"
|
71
|
-
put daemon_script, "#{fetch :home}/etc/run-rails-#{fetch :application}/run"
|
72
|
-
put log_script, "#{fetch :home}/etc/run-rails-#{fetch :application}/log/run"
|
73
|
-
run "chmod +x #{fetch :home}/etc/run-rails-#{fetch :application}/run"
|
74
|
-
run "chmod +x #{fetch :home}/etc/run-rails-#{fetch :application}/log/run"
|
75
|
-
run "ln -nfs #{fetch :home}/etc/run-rails-#{fetch :application} #{fetch :home}/service/rails-#{fetch :application}"
|
76
|
-
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
namespace :apache do
|
81
|
-
task :setup_reverse_proxy do
|
82
|
-
htaccess = <<-EOF
|
83
|
-
RewriteEngine On
|
84
|
-
RewriteRule ^(.*)$ http://localhost:#{fetch :passenger_port}/$1 [P]
|
85
|
-
EOF
|
86
|
-
path = fetch(:domain) ? "/var/www/virtual/#{fetch :user}/#{fetch :domain}" : "#{fetch :home}/html"
|
87
|
-
run "mkdir -p #{path}"
|
88
|
-
put htaccess, "#{path}/.htaccess"
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
namespace :mysql do
|
93
|
-
task :setup_database_and_config do
|
94
|
-
my_cnf = capture('cat ~/.my.cnf')
|
95
|
-
config = {}
|
96
|
-
%w(development production test).each do |env|
|
97
|
-
|
98
|
-
config[env] = {
|
99
|
-
'adapter' => 'mysql2',
|
100
|
-
'encoding' => 'utf8',
|
101
|
-
'database' => "#{fetch :user}_rails_#{fetch :application}_#{env}",
|
102
|
-
'host' => 'localhost'
|
103
|
-
}
|
104
|
-
|
105
|
-
my_cnf.match(/^user=(\w+)/)
|
106
|
-
config[env]['username'] = $1
|
107
|
-
|
108
|
-
my_cnf.match(/^password=(\w+)/)
|
109
|
-
config[env]['password'] = $1
|
110
|
-
|
111
|
-
my_cnf.match(/^port=(\d+)/)
|
112
|
-
config[env]['port'] = $1.to_i
|
113
|
-
|
114
|
-
run "mysql -e 'CREATE DATABASE IF NOT EXISTS #{config[env]['database']} CHARACTER SET utf8 COLLATE utf8_general_ci;'"
|
115
|
-
end
|
116
|
-
|
117
|
-
run "mkdir -p #{fetch :shared_path}/config"
|
118
|
-
put config.to_yaml, "#{fetch :shared_path}/config/database.yml"
|
119
|
-
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
namespace :deploy do
|
124
|
-
task :start do
|
125
|
-
run "svc -u #{fetch :home}/service/rails-#{fetch :application}"
|
126
|
-
end
|
127
|
-
task :stop do
|
128
|
-
run "svc -d #{fetch :home}/service/rails-#{fetch :application}"
|
129
|
-
end
|
130
|
-
task :restart do
|
131
|
-
run "svc -du #{fetch :home}/service/rails-#{fetch :application}"
|
132
|
-
end
|
133
|
-
|
134
|
-
task :symlink_shared do
|
135
|
-
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
end
|
1
|
+
require 'uberspacify/base'
|
2
|
+
require 'uberspacify/mysql'
|
data/lib/uberspacify/version.rb
CHANGED
metadata
CHANGED
@@ -1,185 +1,169 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: uberspacify
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
- 0
|
10
|
-
version: 0.9.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Jan Schulz-Hofen
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-08-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: capistrano
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 63
|
29
|
-
segments:
|
30
|
-
- 2
|
31
|
-
- 12
|
32
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 2.12.0
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: capistrano_colors
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
25
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.12.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: capistrano_colors
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
49
37
|
version: 0.5.5
|
50
38
|
type: :runtime
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: rvm-capistrano
|
54
39
|
prerelease: false
|
55
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.5.5
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rvm-capistrano
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
56
49
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
hash: 21
|
61
|
-
segments:
|
62
|
-
- 1
|
63
|
-
- 2
|
64
|
-
- 5
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
65
53
|
version: 1.2.5
|
66
54
|
type: :runtime
|
67
|
-
version_requirements: *id003
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: passenger
|
70
55
|
prerelease: false
|
71
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
57
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.2.5
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: passenger
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
81
69
|
version: 3.0.15
|
82
70
|
type: :runtime
|
83
|
-
version_requirements: *id004
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: rack
|
86
71
|
prerelease: false
|
87
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
73
|
none: false
|
89
|
-
requirements:
|
90
|
-
- -
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 3.0.15
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rack
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
97
85
|
version: 1.4.1
|
98
86
|
type: :runtime
|
99
|
-
version_requirements: *id005
|
100
|
-
- !ruby/object:Gem::Dependency
|
101
|
-
name: daemon_controller
|
102
87
|
prerelease: false
|
103
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.4.1
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: daemon_controller
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
104
97
|
none: false
|
105
|
-
requirements:
|
106
|
-
- -
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
hash: 23
|
109
|
-
segments:
|
110
|
-
- 1
|
111
|
-
- 0
|
112
|
-
- 0
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
113
101
|
version: 1.0.0
|
114
102
|
type: :runtime
|
115
|
-
version_requirements: *id006
|
116
|
-
- !ruby/object:Gem::Dependency
|
117
|
-
name: mysql2
|
118
103
|
prerelease: false
|
119
|
-
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.0.0
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: mysql2
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
120
113
|
none: false
|
121
|
-
requirements:
|
122
|
-
- -
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
hash: 5
|
125
|
-
segments:
|
126
|
-
- 0
|
127
|
-
- 3
|
128
|
-
- 11
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
129
117
|
version: 0.3.11
|
130
118
|
type: :runtime
|
131
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.3.11
|
132
126
|
description: Deploy Rails apps on Uberspace
|
133
|
-
email:
|
127
|
+
email:
|
134
128
|
- jan@launchco.com
|
135
129
|
executables: []
|
136
|
-
|
137
130
|
extensions: []
|
138
|
-
|
139
131
|
extra_rdoc_files: []
|
140
|
-
|
141
|
-
files:
|
132
|
+
files:
|
142
133
|
- .gitignore
|
143
134
|
- Gemfile
|
144
135
|
- LICENSE
|
145
136
|
- README.md
|
146
137
|
- Rakefile
|
147
138
|
- lib/uberspacify.rb
|
139
|
+
- lib/uberspacify/base.rb
|
140
|
+
- lib/uberspacify/mysql.rb
|
148
141
|
- lib/uberspacify/recipes.rb
|
149
142
|
- lib/uberspacify/version.rb
|
150
143
|
- uberspacify.gemspec
|
151
|
-
homepage:
|
144
|
+
homepage: ''
|
152
145
|
licenses: []
|
153
|
-
|
154
146
|
post_install_message:
|
155
147
|
rdoc_options: []
|
156
|
-
|
157
|
-
require_paths:
|
148
|
+
require_paths:
|
158
149
|
- lib
|
159
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
160
151
|
none: false
|
161
|
-
requirements:
|
162
|
-
- -
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
|
165
|
-
|
166
|
-
- 0
|
167
|
-
version: "0"
|
168
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ! '>='
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
157
|
none: false
|
170
|
-
requirements:
|
171
|
-
- -
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
|
174
|
-
segments:
|
175
|
-
- 0
|
176
|
-
version: "0"
|
158
|
+
requirements:
|
159
|
+
- - ! '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
177
162
|
requirements: []
|
178
|
-
|
179
163
|
rubyforge_project:
|
180
164
|
rubygems_version: 1.8.24
|
181
165
|
signing_key:
|
182
166
|
specification_version: 3
|
183
|
-
summary: Uberspacify helps you deploy a Ruby on Rails app on Uberspace, a popular
|
167
|
+
summary: Uberspacify helps you deploy a Ruby on Rails app on Uberspace, a popular
|
168
|
+
German shared hosting provider.
|
184
169
|
test_files: []
|
185
|
-
|