gist: 2039 Download_button fork
public
Description:
Capistrano, Ubuntu, Django
Public Clone URL: git://gist.github.com/2039.git
Capfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
set :application, "clever_name"
set :user, "deploy"
set :scm_username, "you"
set :repository, "git@github.com:#{scm_username}/#{application}.git"
set :deploy_to, "/home/#{user}/public_html/#{application}"
set :scm, :git
set :django_location, "/home/#{user}/sources/django/trunk"
set :django_admin_media, "/django/contrib/admin/media"
 
set :domain, "example.com"
role :app, domain
role :web, domain
role :db, domain, :primary => true
 
# If you use a custom SSH port (a good idea):
# ssh_options[:port] = 22
 
# --------
# Commands
# --------
namespace :deploy do
 
  desc "Update project from repository"
  task :default do
    stream "cd #{deploy_to}; git pull"
  end
 
  desc "Setup a new project"
  task :cold do
    stream "git clone #{repository} #{deploy_to};"
  end
 
end # Deploy
 
desc "Undo all the cleanup and settings changes from the previous deploy"
task :undo_cleanup do
  stream "cd #{deploy_to};git reset --hard"
end
before "deploy", "undo_cleanup"
 
desc "Link Admin media to the project static/ folder"
task :admin_media do
  stream "ln -s #{django_location}#{django_admin_media} #{deploy_to}/public/static/base_admin"
end
after "deploy:cold", "admin_media"
 
desc "Use the correct settings.py for the production or staging server"
task :update_settings do
  stream "cd #{deploy_to};rm settings.py;mv production_settings.py settings.py"
end
after "deploy", "update_settings"
 
desc "Clean up unused files."
task :cleanup do
  stream "cd #{deploy_to};rm Capfile;rm staging_settings.py;rm -rf db;rm vhost.conf"
end
after "deploy", "cleanup"
 
desc "Restart Apache"
task :restart do
  sudo "/etc/init.d/apache2 restart"
end
after "deploy", "restart"
 
desc "Set SQLite3 permissions for Apache user"
task :sqlite_perms do
  sudo "chgrp -R www-data #{deploy_to}/db; chmod -R 775 #{deploy_to}/db"
end
# after "deploy:cold", "sqlite_perms"
 
desc "Make sure database is in sync with models"
task :syncdb do
  stream "#{deploy_to}/manage.py syncdb"
end
# after "deploy:cold", "syncdb"
 
desc "Don't use this"
task :wipe_deployment do
  stream "rm -rf #{deploy_to}"
end
 
# ----
# Misc
# ----
desc "Find the location of Python's site-packages folder"
task :site_packages do
  stream "python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()'"
end
 

Owner

trey

Forks

Revisions