newbamboo (owner)

Revisions

gist: 43765 Download_button fork
public
Public Clone URL: git://gist.github.com/43765.git
Embed All Files: show embed
Bash #
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
(
cat <<'EOF'
nameserver 192.168.1.10
EOF
) > /etc/resolv.conf
 
echo "Setting up newbamboo user and home dir...."
echo "newbamboo:password:1000:1000:New Bamboo,,,:/home/newbamboo:/bin/bash" > /etc/newusers
newusers /etc/newusers
 
mkdir /home/newbamboo
 
echo "Adding github.com to known hosts..."
mkdir /home/newbamboo/.ssh
(
cat <<'EOF'
|1|8eqN4xuoGvB12TBLB+kGArZfdUU=|8z8fE4/MfCToiwu6LL2cJns2gQQ= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
|1|dLxXwkqxcBrkLSbmVrIsZB1s81c=|aLepgeWvVbyK/DHTwN5EikJx1zA= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
EOF
) > /home/newbamboo/.ssh/known_hosts
 
(
cat <<'EOF'
gem: --no-rdoc --no-ri -s http://gems.nbwd.co.uk
EOF
) > /home/newbamboo/.gemrc
 
chown newbamboo:newbamboo -R /home/newbamboo
 
# Add unstable packages so we can get ruby 1.8.6 (http://randomba.org/2008/01/installing-ruby-186-on-debian-etch-stable/)
# Also use Dom0's apt-proxy
 
(
cat <<'EOF'
deb http://192.168.1.10:9999/debian/ etch main contrib non-free
deb-src http://192.168.1.10:9999/debian/ etch main contrib non-free
deb http://www.backports.org/debian etch-backports main contrib non-free
EOF
) > /etc/apt/sources.list
wget -O - http://backports.org/debian/archive.key | apt-key add -
apt-get update
 
# Install Ruby 1.8.6 from backports
 
apt-get -y --force-yes -t etch-backports install ruby1.8 ruby1.8-dev libopenssl-ruby1.8 git-core
ln -s /usr/bin/ruby1.8 /usr/bin/ruby
 
# All other packages
 
apt-get install -y --force-yes build-essential irb apache2-mpm-prefork apache2-prefork-dev apache2.2-common apache2-utils libexpat1 ssl-cert memcached dbconfig-common mysql-client mysql-server libmysqlclient15-dev libsqlite3-0 libsqlite3-dev
# Add if you want rmgack: libmagick9-dev
# Removed postfix and mailutils because it has an interactive installation
 
# Rubygems
 
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar xzvf rubygems-1.3.1.tgz
cd rubygems-1.3.1
ruby setup.rb
ln -s /usr/bin/gem1.8 /usr/bin/gem
gem update --system
cd ..
rm -rf rubygems-1.3.1 rubygems-1.3.1.tgz
 
# Standard gems
gem install BlueCloth
gem install capistrano
gem install dm-tags
gem install data_objects do_sqlite3 do_mysql dm-core dm-more
gem install hpricot
gem install memcache-client
gem install merb
gem install rails
gem install mongrel
gem install mysql
gem install RedCloth
gem install rspec
gem install ultrasphinx
gem install ruby-openid will_paginate
gem install ruby-debug rspec-rails
# Add if you want rmgack: gem install rmagick -v=1.15.10
gem install image_science
gem install passenger
gem install rubigen
# gem install god
 
echo "Setting up Phusion Passenger..."
yes | passenger-install-apache2-module
 
echo "Configuring Apache..."
(
cat <<'EOF'
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6
PassengerRuby /usr/bin/ruby1.8
PassengerMaxPoolSize 2
PassengerDefaultUser newbamboo
EOF
) > /etc/apache2/mods-available/passenger.load
 
ln -s /etc/apache2/mods-available/passenger.load /etc/apache2/mods-enabled/passenger.load
 
(
cat <<'EOF'
<VirtualHost *:80>
DocumentRoot /var/www/app/current/public
<Location "/">
AuthType Basic
AuthName "Restricted Area"
AuthBasicProvider file
AuthUserFile /var/www/htpasswd
require valid-user
</Location>
</VirtualHost>
EOF
) > /etc/apache2/sites-available/app
 
rm /etc/apache2/sites-enabled/000-default
ln -s /etc/apache2/sites-available/app /etc/apache2/sites-enabled/000-app
/etc/init.d/apache2 restart
 
echo "Setting up /var/www/app dir for Capistrano..."
 
mkdir /var/www/app
mkdir /var/www/app/shared
mkdir /var/www/app/shared/system
mkdir /var/www/app/shared/pids
mkdir /var/www/app/shared/log
mkdir /var/www/app/releases
chown newbamboo:newbamboo -R /var/www/app
 
echo "Setting up basic auth..."
echo "Added default login newbamboo / password"
echo ""
echo "Please enter a username for the client to use:"
read USERNAME
echo "And now a password:"
read PASSWORD
 
sudo htpasswd -b -c /var/www/htpasswd $USERNAME $PASSWORD
sudo htpasswd -b /var/www/htpasswd newbamboo password
 
echo ""
echo "---------------------------"
echo ""
echo "You're nearly ready to go!"
echo "(1) deploy your app to /var/www/app/current"
echo "(2) sudo /etc/init.d/apache2 restart"
echo "(3) visit http://`hostname`"