wpcap 0.2.2.3 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -4,12 +4,12 @@ WPcap is a set of capistrano recipes designed to deploy wordpress instaliations
4
4
 
5
5
  WPcap is opinionated, and currently reasonably narrow minded.
6
6
 
7
- WPcap assumptions
7
+ WPcap expectations
8
8
 
9
- * Local Macine is a Mac running MAMP
9
+ * Local Macine is a Mac running MAMP (for now)
10
10
  * Remote Server is a brand new Ubuntu Server
11
- * Passwordless access to remote server has be established (ssh keys)
12
- * Wordpress is using mysql
11
+ * Passwordless access to remote server has be established (ssh keys) **Capistrano Requirment**
12
+ * Using a SMTP Mailer Plugin for E-Mail delivery ie. wp-mail-smtp
13
13
 
14
14
  WPcap server configuration
15
15
 
@@ -18,6 +18,11 @@ WPcap server configuration
18
18
  * mysql > 5.5
19
19
  * memcached
20
20
  * varnish (Optional)
21
+
22
+ Base
23
+ * git
24
+ * debconf-utils
25
+ * python-software-properties
21
26
 
22
27
  ## Installation
23
28
 
@@ -31,6 +36,10 @@ Create a new projet
31
36
 
32
37
  wpcap create mynewproject
33
38
 
39
+ Convert an existing project to WPcap (Incomplete)
40
+
41
+ wpcap build PATH-TO-WORDPRESS-FOLDER
42
+
34
43
  Build a remote server
35
44
 
36
45
  cap deploy:install
@@ -51,11 +60,20 @@ Pull Remote Database and Assets to local enviroment
51
60
 
52
61
  cap db:pull
53
62
 
63
+ List Backups and Resotre
64
+
65
+ cap backups
66
+
54
67
  ## Todo
55
68
 
56
69
  * Covert a predone wordpress install into a wpcap style directory
57
70
  * Do not require MAMP
58
- * Allow users to customize templates by placing them in there config directory (think devise generators for views)
71
+ * Allow users to customize templates by placing them in their config directory (think devise generators for views)
72
+ * Automate mysql_secure_installation
73
+ * Offsite (s3) Backups
74
+ * Backup Asset Directory
75
+ * Add Sendmail Receipe and Config (Maybe?)
76
+
59
77
 
60
78
 
61
79
  ## Contributing
@@ -0,0 +1,40 @@
1
+ configuration = Capistrano::Configuration.respond_to?(:instance) ?
2
+ Capistrano::Configuration.instance(:must_exist) :
3
+ Capistrano.configuration(:must_exist)
4
+
5
+ configuration.load do
6
+ namespace :backups do
7
+
8
+ #Hooks
9
+ before :deploy, 'db:mysql:dump'
10
+
11
+
12
+ #Taks
13
+ desc "List all available backups"
14
+ task :default, :except => { :no_release => true } do
15
+ db.mysql.restore
16
+ end
17
+
18
+ desc <<-DESC
19
+ Clean up old releases. By default, the last 5 backups are kept on each \
20
+ server (though you can change this with the keep_releases variable). All \
21
+ other deployed revisions are removed from the servers. By default, this \
22
+ will use sudo to clean up the old releases, but if sudo is not available \
23
+ for your environment, set the :use_sudo variable to false instead.
24
+ DESC
25
+ task :cleanup, :except => { :no_release => true } do
26
+ count = fetch(:keep_backups, 5).to_i
27
+ local_backups = capture("ls -xt #{backups_path}").split.reverse
28
+ if count >= local_backups.length
29
+ logger.important "no old backups to clean up"
30
+ else
31
+ logger.info "keeping #{count} of #{local_backups.length} backups"
32
+ directories = (local_backups - local_backups.last(count)).map { |release|
33
+ File.join(backups_path, release) }.join(" ")
34
+
35
+ try_sudo "rm -rf #{directories}"
36
+ end
37
+ end
38
+ end
39
+ end
40
+
@@ -261,7 +261,6 @@ configuration.load do
261
261
 
262
262
  def create_db_if_missing(environment = stage)
263
263
  unless database_exits?(environment)
264
- create_yaml
265
264
  sql = <<-SQL
266
265
  CREATE DATABASE #{db_database};
267
266
  GRANT ALL PRIVILEGES ON #{db_database}.* TO #{db_username}@#{db_host} IDENTIFIED BY '#{db_password}';
@@ -297,7 +296,7 @@ configuration.load do
297
296
  before "db:mysql:pull", "db:mysql:create_local_db"
298
297
  after "deploy:update_code" , "db:mysql:prepare_enviroment"
299
298
  after "deploy:setup", "db:mysql:create"
300
- before :deploy, 'db:mysql:dump'
299
+
301
300
  end
302
301
  end
303
302
  end
@@ -5,6 +5,6 @@
5
5
  # cap production deploy
6
6
 
7
7
  set :user, "root"
8
- set :application_url, "your full url here includeing the protocol (https/http)"
8
+ set :application_url, "your full url here including the protocol (https/http)"
9
9
  server "your server address or url here", :web, :app, :db, primary: true
10
10
 
@@ -1,5 +1,4 @@
1
-
2
- set :application, "your application web address here" #Your Project webaddress
1
+ set :application, "your application web address here" #Your Project's webaddress
3
2
  set :repository, "your repo location here"
4
3
  set :branch, :master
5
4
 
@@ -15,6 +14,10 @@ set(:deploy_to) { "/home/#{user}/#{application}" }
15
14
 
16
15
  # Database Backup Path
17
16
  set :backups_path, "#{deploy_to}/backups"
17
+ set :keep_backups, 5
18
+
19
+ # if you want to clean up old backups on each deploy uncomment this:
20
+ # after :deploy , 'backups:cleanup'
18
21
 
19
22
  # Wordpress Uploads Path
20
23
  set :uploads_path, "assets"
@@ -33,3 +36,4 @@ require "wpcap/recipes/mysql"
33
36
  require "wpcap/recipes/nginx"
34
37
  require "wpcap/recipes/php"
35
38
  require "wpcap/recipes/wordpress"
39
+ require "wpcap/recipes/backups"
@@ -1,6 +1,6 @@
1
1
  server {
2
2
  listen 80;
3
- server_name <%= application %>, <%= application_url.gsub(/^https?:\/\//, "") %> ;
3
+ server_name <%= application %>, <%= application_url.gsub(/^https?:\/\//, "") %>, www.<%= application %>, www.<%= application_url.gsub(/^https?:\/\//, "") %> ;
4
4
  root <%= current_path %>/app;
5
5
  index index.php;
6
6
 
@@ -34,7 +34,6 @@ server {
34
34
  location / {
35
35
  try_files $uri $uri/ /index.php?$args;
36
36
  }
37
-
38
37
 
39
38
  location ~ \.php$ {
40
39
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
@@ -52,7 +52,10 @@ configuration.load do
52
52
  # set correct permissions
53
53
  run "chmod -R 755 #{latest_release}/app/wp-content/plugins"
54
54
  run "chmod -R 775 #{shared_path}/uploads"
55
- run "chmod -R 755 #{shared_path}/cache"
55
+ run "chmod -R 775 #{shared_path}/cache"
56
+ run "chmod -R 755 #{latest_release}"
57
+ run "chown -R -h #{user}:www-data #{latest_release}"
58
+ run "chown -R -h #{user}:www-data #{shared_path}"
56
59
  end
57
60
 
58
61
  desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
@@ -167,8 +170,8 @@ configuration.load do
167
170
  desc "[internal] Protect system files"
168
171
  task :protect, :except => { :no_release => true } do
169
172
  run "chmod 444 #{latest_release}/app/wp-config.php*"
170
- run "cd #{current_path} && chown -R #{user} . && find . -type d -print0 | xargs -0 chmod 755"
171
- run "cd #{shared_path}/uploads && chown -R #{user} . && chmod 755 -R ."
173
+ # run "cd #{current_path} && chown -R #{user} . && find . -type d -print0 | xargs -0 chmod 755"
174
+ #run "cd #{shared_path}/uploads && chown -R #{user} . && chmod 755 -R ."
172
175
  end
173
176
 
174
177
  desc "[internal] get current wp template from local db"
@@ -176,6 +179,10 @@ configuration.load do
176
179
  db.mysql.prepare_env(:development)
177
180
  template = run_locally "#{local_mysql_path}mysql -u #{db_username} -p#{db_password} #{db_database} -e 'SELECT `option_value` FROM `#{db_prefix}options` WHERE `option_name` = \"template\"'"
178
181
  set(:wp_template) { template.split("\n")[1] }
182
+ unless wp_template.length > 1
183
+ Wpcap::Utility.error("No Wordpress Template found (Is your local Database Running?)")
184
+ abort
185
+ end
179
186
  end
180
187
  before "nginx:setup", "wordpress:current_wp_template"
181
188
 
@@ -1,3 +1,3 @@
1
1
  module Wpcap
2
- VERSION = "0.2.2.3"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wpcap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2.3
4
+ version: 0.2.3
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-11-02 00:00:00.000000000 Z
12
+ date: 2012-11-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
@@ -60,6 +60,7 @@ files:
60
60
  - lib/wpcap.rb
61
61
  - lib/wpcap/backup.rb
62
62
  - lib/wpcap/command.rb
63
+ - lib/wpcap/recipes/backups.rb
63
64
  - lib/wpcap/recipes/base.rb
64
65
  - lib/wpcap/recipes/check.rb
65
66
  - lib/wpcap/recipes/memcached.rb