magic_recipes 0.0.19 → 0.0.20
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/lib/generators/magic_recipes/templates/deploy.rb.tt +16 -6
- data/lib/magic_recipes/assets.rb +18 -0
- data/lib/magic_recipes/db.rb +16 -0
- data/lib/magic_recipes/gems.rb +4 -0
- data/lib/magic_recipes/git.rb +5 -1
- data/lib/magic_recipes/nginx.rb +19 -11
- data/lib/magic_recipes/nodejs.rb +10 -0
- data/lib/magic_recipes/passenger.rb +10 -8
- data/lib/magic_recipes/postgresql.rb +48 -5
- data/lib/magic_recipes/private_pub.rb +28 -0
- data/lib/magic_recipes/rbenv.rb +10 -0
- data/lib/magic_recipes/rvm.rb +10 -0
- data/lib/magic_recipes/sqlite.rb +16 -0
- data/lib/magic_recipes/templates/postgresql.yml.erb +2 -2
- data/lib/magic_recipes/thin.rb +18 -0
- data/lib/magic_recipes/unicorn.rb +10 -0
- data/lib/magic_recipes.rb +39 -0
- metadata +2 -2
@@ -54,9 +54,20 @@ set :rails_env, "production" #=> Rails environmen
|
|
54
54
|
# => # set :git_enable_submodules, 1 #=> Git submodules
|
55
55
|
|
56
56
|
|
57
|
+
# PostgreSQL
|
58
|
+
# => set :postgresql_host, "localhost" #=> postgres host
|
59
|
+
# => set :postgresql_user, "#{ app_name }" #=> postgres user
|
60
|
+
# => set :postgresql_password, "password" #=> postgres user password, if not set prompt will follow
|
61
|
+
# => set :postgresql_database, "#{ app_name }_#{ rails_env }" #=> postgres db name
|
62
|
+
# => set :postgresql_pool, 5 #=> postgres pool
|
63
|
+
|
64
|
+
|
57
65
|
# SqLite3 ... this is more for test & try pupose (save .sqlite and copy to current after deploy)
|
58
66
|
# => set :sqlite_path, "#{ deploy_to }/shared/db/" #=> shared path for db
|
59
67
|
# => set :sqlite_db, "#{ rails_env }" #=> sqlite name
|
68
|
+
# SqLite3-callbacks
|
69
|
+
# => before "deploy", "sqlite:save_db"
|
70
|
+
# => after "deploy", "sqlite:copy_db"
|
60
71
|
|
61
72
|
|
62
73
|
# if you want to clean up old releases on each deploy uncomment this:
|
@@ -66,15 +77,14 @@ set :rails_env, "production" #=> Rails environmen
|
|
66
77
|
|
67
78
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
68
79
|
# Usage:
|
69
|
-
# magic_recipes :
|
80
|
+
# magic_recipes :nginx, :private_pub, :rvm, :thin
|
70
81
|
# available:
|
71
|
-
# :
|
82
|
+
# :assets, :db, :gems, :nginx, :passenger, :postgresql, :private_pub, :rbenv, :rvm, :sqlite, :thin, :unicorn
|
83
|
+
# works great:
|
84
|
+
# :assets, :db, :nginx, :postgresql, :private_pub, :rvm, :sqlite, :thin
|
72
85
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
73
86
|
|
74
|
-
magic_recipes :
|
87
|
+
magic_recipes :assets, :nginx, :rvm, :thin
|
75
88
|
|
76
89
|
|
77
|
-
# SqLite3-callbacks ... this is more for test & try pupose (save .sqlite and copy to current after deploy)
|
78
|
-
# => before "deploy", "sqlite:save_db"
|
79
|
-
# => after "deploy", "sqlite:copy_db"
|
80
90
|
|
data/lib/magic_recipes/assets.rb
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
+
# = Assets - Deploy-Recipes
|
4
|
+
#
|
5
|
+
# changed asset deployment .. include chmod 777 for public folder (my server need this)
|
6
|
+
#
|
7
|
+
# [Tasks:]
|
8
|
+
# :symlink # => set up a symlink to the shared directory
|
9
|
+
#
|
10
|
+
# :precompile # => Run the asset precompilation rake task
|
11
|
+
#
|
12
|
+
# :chmod # => make the public folder public for all (777)
|
13
|
+
#
|
14
|
+
# :clean # => Run the asset clean rake task
|
15
|
+
#
|
16
|
+
# [Callbacks:]
|
17
|
+
# before 'deploy:finalize_update', 'deploy:assets:symlink'
|
18
|
+
#
|
19
|
+
# after 'deploy:update_code', 'deploy:assets:precompile'
|
20
|
+
#
|
3
21
|
module Assets
|
4
22
|
def self.load_into(configuration)
|
5
23
|
configuration.load do
|
data/lib/magic_recipes/db.rb
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
+
# = Db - Deploy-Recipes
|
4
|
+
#
|
5
|
+
# Some recipes to work with databases, especialy when you have an server, where you can't delete or create db's.
|
6
|
+
#
|
7
|
+
# [Tasks:]
|
8
|
+
# :seed # => seed the database
|
9
|
+
#
|
10
|
+
# :migrate # => migrate the database
|
11
|
+
#
|
12
|
+
# :delete_tables # => delete all Tables of the Database!
|
13
|
+
#
|
14
|
+
# :save_reset # => DB-Reset for user without dbcreate permission (deletes all tables than migrates again)
|
15
|
+
#
|
16
|
+
# [Callbacks:]
|
17
|
+
# - - -
|
18
|
+
#
|
3
19
|
module Db
|
4
20
|
def self.load_into(configuration)
|
5
21
|
configuration.load do
|
data/lib/magic_recipes/gems.rb
CHANGED
data/lib/magic_recipes/git.rb
CHANGED
data/lib/magic_recipes/nginx.rb
CHANGED
@@ -1,18 +1,26 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
-
# Nginx - Deploy-Recipes
|
3
|
+
# = Nginx - Deploy-Recipes
|
4
4
|
#
|
5
|
-
#
|
6
|
-
# :install # => Install latest stable release of nginx
|
7
|
-
# :setup # => Setup nginx configuration for this application
|
8
|
-
# :start # => start nginx-server
|
9
|
-
# :stop # => stop nginx-server
|
10
|
-
# :restart # => setup, stop, start nginx-server
|
5
|
+
# Deploy Recipes for nginx.
|
11
6
|
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
7
|
+
# [Tasks:]
|
8
|
+
# :install # => Install latest stable release of nginx
|
9
|
+
#
|
10
|
+
# :setup # => Setup nginx configuration for this application
|
11
|
+
#
|
12
|
+
# :start # => start nginx-server
|
13
|
+
#
|
14
|
+
# :stop # => stop nginx-server
|
15
|
+
#
|
16
|
+
# :restart # => setup, stop, start nginx-server
|
17
|
+
#
|
18
|
+
# [Callbacks:]
|
19
|
+
# after "deploy:install", "nginx:install"
|
20
|
+
#
|
21
|
+
# after "deploy:setup", "nginx:setup"
|
22
|
+
#
|
23
|
+
# after "deploy", "nginx:restart"
|
16
24
|
#
|
17
25
|
module Nginx
|
18
26
|
def self.load_into(configuration)
|
data/lib/magic_recipes/nodejs.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
+
# = Passenger - Deploy
|
4
|
+
#
|
5
|
+
# Simple recipe to restart passenger
|
6
|
+
#
|
7
|
+
# [Tasks:]
|
8
|
+
# task :restart # => Restart Phusion-Passenger
|
9
|
+
#
|
10
|
+
# [Callbacks:]
|
11
|
+
# after "deploy:restart", "passenger:restart"
|
12
|
+
#
|
3
13
|
module Passenger
|
4
14
|
|
5
|
-
# Passenger - Deploy
|
6
|
-
#
|
7
|
-
# Tasks:
|
8
|
-
# task :restart # => Restart Phusion-Passenger
|
9
|
-
#
|
10
|
-
# Callbacks:
|
11
|
-
# after "deploy:restart", "passenger:restart"
|
12
|
-
#
|
13
15
|
def self.load_into(configuration)
|
14
16
|
configuration.load do
|
15
17
|
|
@@ -1,6 +1,32 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
-
|
3
|
+
# = Postgresql - Deploy-Recipes
|
4
|
+
#
|
5
|
+
# Some simple recipes for PostgreSQL
|
6
|
+
#
|
7
|
+
# [Tasks:]
|
8
|
+
# :install # => Install the latest stable release of PostgreSQL.
|
9
|
+
#
|
10
|
+
# :create_database # => Create a database for this application.
|
11
|
+
#
|
12
|
+
# :setup # => Generate the database.yml configuration file.
|
13
|
+
#
|
14
|
+
# :symlink # => Symlink the database.yml file into latest release
|
15
|
+
#
|
16
|
+
# :kill_postgres_connections # => kill pgsql users so database can be dropped
|
17
|
+
#
|
18
|
+
# :drop_public_shema # => drop public shema so db is empty and not dropped
|
19
|
+
#
|
20
|
+
# [Callbacks:]
|
21
|
+
# after "deploy:install", "postgresql:install"
|
22
|
+
#
|
23
|
+
# after "deploy:setup", "postgresql:create_database"
|
24
|
+
#
|
25
|
+
# after "deploy:setup", "postgresql:setup"
|
26
|
+
#
|
27
|
+
# after "deploy:finalize_update", "postgresql:symlink"
|
28
|
+
#
|
29
|
+
module Postgresql
|
4
30
|
def self.load_into(configuration)
|
5
31
|
configuration.load do
|
6
32
|
|
@@ -9,7 +35,8 @@ module MagicRecipes
|
|
9
35
|
set_default(:postgresql_host, "localhost")
|
10
36
|
set_default(:postgresql_user) { application }
|
11
37
|
set_default(:postgresql_password) { Capistrano::CLI.password_prompt "PostgreSQL Password: " }
|
12
|
-
set_default(:postgresql_database) { "#{application}
|
38
|
+
set_default(:postgresql_database) { "#{application}_#{rails_env}" }
|
39
|
+
set_default(:postgresql_pool, 5)
|
13
40
|
|
14
41
|
namespace :postgresql do
|
15
42
|
desc "Install the latest stable release of PostgreSQL."
|
@@ -22,7 +49,8 @@ module MagicRecipes
|
|
22
49
|
|
23
50
|
desc "Create a database for this application."
|
24
51
|
task :create_database, roles: :db, only: {primary: true} do
|
25
|
-
|
52
|
+
# with --createdb for rake commands
|
53
|
+
run %Q{#{sudo} -u postgres psql -c "create user --createdb #{postgresql_user} with password '#{postgresql_password}';"}
|
26
54
|
run %Q{#{sudo} -u postgres psql -c "create database #{postgresql_database} owner #{postgresql_user};"}
|
27
55
|
end
|
28
56
|
after "deploy:setup", "postgresql:create_database"
|
@@ -30,15 +58,30 @@ module MagicRecipes
|
|
30
58
|
desc "Generate the database.yml configuration file."
|
31
59
|
task :setup, roles: :app do
|
32
60
|
run "mkdir -p #{shared_path}/config"
|
33
|
-
template "postgresql.yml.erb", "#{shared_path}/config/
|
61
|
+
template "postgresql.yml.erb", "#{shared_path}/config/postgres_#{rails_env}.yml"
|
34
62
|
end
|
35
63
|
after "deploy:setup", "postgresql:setup"
|
36
64
|
|
37
65
|
desc "Symlink the database.yml file into latest release"
|
38
66
|
task :symlink, roles: :app do
|
39
|
-
run "ln -nfs #{shared_path}/config/
|
67
|
+
run "ln -nfs #{shared_path}/config/postgres_#{rails_env}.yml #{release_path}/config/database.yml"
|
40
68
|
end
|
41
69
|
after "deploy:finalize_update", "postgresql:symlink"
|
70
|
+
|
71
|
+
# http://stackoverflow.com/a/12939218/1470996
|
72
|
+
desc 'kill pgsql users so database can be dropped'
|
73
|
+
task :kill_postgres_connections do
|
74
|
+
# run "echo 'SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname=\'#{postgresql_database}\';' | psql -U postgres"
|
75
|
+
run %Q{#{sudo} -u postgres psql -c "SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname='#{postgresql_database}';"}
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
desc 'drop public shema so db is empty and not dropped'
|
81
|
+
task :drop_public_shema do
|
82
|
+
run %Q{#{sudo} -u postgres psql -c "drop schema public cascade on #{postgresql_database};';"}
|
83
|
+
end
|
84
|
+
|
42
85
|
end
|
43
86
|
|
44
87
|
# eof
|
@@ -1,5 +1,33 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
+
# = PrivatePub - Deploy-Recipes
|
4
|
+
#
|
5
|
+
# Easy deployment of private_pub .. which can be frustrating on nginx because of the tcp server
|
6
|
+
#
|
7
|
+
# [Tasks:]
|
8
|
+
# :reconf # => Generate the thin yml configuration file.
|
9
|
+
#
|
10
|
+
# :setup # => Generate the nginx configuration file.
|
11
|
+
#
|
12
|
+
# :yml_file # => Generate the private_pup yml configuration file.
|
13
|
+
#
|
14
|
+
# :start # => Start the private_pup server
|
15
|
+
#
|
16
|
+
# :stop # => Start the private_pup server
|
17
|
+
#
|
18
|
+
# :restart # => Restart the private_pup server
|
19
|
+
#
|
20
|
+
# [Callbacks:]
|
21
|
+
# before "thin:start", "private_pub:yml_file"
|
22
|
+
#
|
23
|
+
# after "thin:start", "private_pub:start"
|
24
|
+
#
|
25
|
+
# after "thin:stop", "private_pub:stop"
|
26
|
+
#
|
27
|
+
# after "nginx:setup", "private_pub:setup"
|
28
|
+
#
|
29
|
+
# after "thin:reconf", "private_pub:reconf"
|
30
|
+
#
|
3
31
|
module PrivatePub
|
4
32
|
def self.load_into(configuration)
|
5
33
|
configuration.load do
|
data/lib/magic_recipes/rbenv.rb
CHANGED
data/lib/magic_recipes/rvm.rb
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
+
# = RVM - Deploy-Recipes
|
4
|
+
#
|
5
|
+
# little helper to work on crazy rvm mashine ... mine dont accept the standard rvm handling
|
6
|
+
#
|
7
|
+
# [Tasks:]
|
8
|
+
# - - -
|
9
|
+
#
|
10
|
+
# [Callbacks:]
|
11
|
+
# - - -
|
12
|
+
#
|
3
13
|
module Rvm
|
4
14
|
def self.load_into(configuration)
|
5
15
|
configuration.load do
|
data/lib/magic_recipes/sqlite.rb
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
+
# = RVM - Deploy-Recipes
|
4
|
+
#
|
5
|
+
# This is more for test & try pupose. Save .sqlite and copy to current after deploy.
|
6
|
+
#
|
7
|
+
# [Tasks:]
|
8
|
+
# :setup_db # => Create shared folder.
|
9
|
+
#
|
10
|
+
# :save_db # => Copy current DB to shared folder.
|
11
|
+
#
|
12
|
+
# :copy_db # => Copy saved DB from shared folder to current_release
|
13
|
+
#
|
14
|
+
# [Callbacks:]
|
15
|
+
# after "deploy:setup", "sqlite:setup_db"
|
16
|
+
#
|
17
|
+
# more in deploy.rb ! .. becasuse ist just in case you need it .. and only works after second deploy !
|
18
|
+
#
|
3
19
|
module Sqlite
|
4
20
|
def self.load_into(configuration)
|
5
21
|
configuration.load do
|
data/lib/magic_recipes/thin.rb
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module MagicRecipes
|
3
|
+
# = Thin - Deploy-Recipes
|
4
|
+
#
|
5
|
+
# Simple recipe to work with thin, and app configurstion / registration.
|
6
|
+
#
|
7
|
+
# [Tasks:]
|
8
|
+
# :reconf # => Create or Update the thin yml configuration files
|
9
|
+
#
|
10
|
+
# :start # => Start the private_pup server
|
11
|
+
#
|
12
|
+
# :stop # => Start the private_pup server
|
13
|
+
#
|
14
|
+
# :restart # => Restart the private_pup server
|
15
|
+
#
|
16
|
+
# [Callbacks:]
|
17
|
+
# before "nginx:start", "thin:start"
|
18
|
+
#
|
19
|
+
# before "nginx:stop", "thin:stop"
|
20
|
+
#
|
3
21
|
module Thin
|
4
22
|
def self.load_into(configuration)
|
5
23
|
configuration.load do
|
data/lib/magic_recipes.rb
CHANGED
@@ -1,6 +1,45 @@
|
|
1
1
|
require 'capistrano'
|
2
2
|
|
3
3
|
module MagicRecipes
|
4
|
+
# = MagicRecipes
|
5
|
+
#
|
6
|
+
# Some capistrano-recipes for our deployment .. still in development!
|
7
|
+
#
|
8
|
+
# [Methods:]
|
9
|
+
# template(from, to) # => write erb template to path
|
10
|
+
#
|
11
|
+
# set_default(name, *args, &block) # => set default value
|
12
|
+
#
|
13
|
+
# random_string(length=42) # => generate a random string
|
14
|
+
#
|
15
|
+
# use_recipe(recipe_name) # => load one recipe
|
16
|
+
#
|
17
|
+
# magic_recipes(*recipes) # => load several recipes
|
18
|
+
#
|
19
|
+
# [Usage:]
|
20
|
+
# add magic_recipes to your Gemfile
|
21
|
+
# gem 'magic_recipes', :require => nil
|
22
|
+
#
|
23
|
+
# install the gem
|
24
|
+
# bundle install
|
25
|
+
#
|
26
|
+
# run the generator
|
27
|
+
# rails g magic_recipes:capify
|
28
|
+
#
|
29
|
+
# edit 'config/deploy'
|
30
|
+
#
|
31
|
+
# enjoy some magic!
|
32
|
+
#
|
33
|
+
# [config/deploy.rb:]
|
34
|
+
#
|
35
|
+
# uncomment and edit all needed vars
|
36
|
+
#
|
37
|
+
# add all recipes
|
38
|
+
# magic_recipes :assets, :db, :nginx, :postgresql, :private_pub, :rvm, :sqlite, :thin
|
39
|
+
#
|
40
|
+
# add your recipes
|
41
|
+
# magic_recipes :assets, :nginx, :rvm, :thin
|
42
|
+
#
|
4
43
|
def self.load_into(configuration)
|
5
44
|
configuration.load do
|
6
45
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magic_recipes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.20
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|