public
Description: A script to launch new ansuz instances, ready to be used, on a passenger-supporting server
Homepage: http://www.ansuzcms.com
Clone URL: git://github.com/knewter/ansuz_launcher.git
ansuz_launcher / Rakefile
100644 52 lines (46 sloc) 1.51 kb
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
task :launch, [:project_name, :domain] do |t, args|
  ansuz_repository = "git://github.com/knewter/ansuz.git"
  project_dir = File.join(ansuz_launch_dir, args.project_name)
 
  `git clone #{ansuz_repository} #{project_dir}`
  Dir.chdir project_dir
  `cp config/database.yml.example config/database.yml`
  `sed -i 's/ansuz/#{args.project_name}/' config/database.yml`
  `rake db:create:all`
  `rake db:migrate:plugins RAILS_ENV=production`
  `rake db:migrate RAILS_ENV=production`
  `rake utils:create_admin RAILS_ENV=production`
  `mkdir public/uploads`
  puts "Now run 'sudo rake setup_webserver[#{args.project_name},#{args.domain}]'"
end
 
task :setup_webserver, [:project_name, :domain] do |t, args|
  project_dir = File.join(ansuz_launch_dir, args.project_name)
  config_vhost(args.domain, project_dir, args.project_name)
  restart_apache
  puts "Visit http://#{args.domain}/admin and log in as admin/admin"
end
 
def config_vhost domain, project_dir, project_name
  vhost_config =<<-EOF
<VirtualHost *:80>
ServerName #{domain}
ServerAlias www.#{domain}
DocumentRoot #{project_dir}/public
<Directory "#{project_dir}/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
RailsBaseURI /
</VirtualHost>
EOF
  File.open("/etc/apache2/sites-available/#{project_name}", "w") do |f|
    f.write vhost_config
  end
  `a2ensite #{project_name}`
end
 
def restart_apache
  `/etc/init.d/apache2 restart`
end
 
def ansuz_launch_dir
  "/home/jadams/ansuz_launch_dir"
end