mguterl / slice
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
| name | age | message | |
|---|---|---|---|
| |
.bash_profile | ||
| |
README.textile | ||
| |
config/ | Wed Nov 12 12:05:34 -0800 2008 | |
| |
etc/ |
Setup steps
The following step-by-step process outlines how to setup a Rails server on Slicehost using Debian 4.0 and Passenger.
Install git
From remote server, type:
sudo aptitude update sudo aptitude upgrade sudo aptitude install wget build-essential gettext zlib1g-dev cd ~/src wget http://www.kernel.org/pub/software/scm/git/git-1.6.0.4.tar.gz tar -xzvf git-1.6.0.4.tar.gz cd git-1.6.0.4 ./configure --prefix=/usr/local make sudo make install
Add the deploy user
type adduser deploy
Command will ask you for a new password. Go ahead and choose one. You can safely choose default user information (blank).
Now you need to setup sudo for the deploy user.
type visudo
Add the following text to bottom of file:
deploy ALL=(ALL) ALL
You can confirm you got sudo setup properly by typing cat /etc/sudoers and ensuring that the deploy line you added is at the bottom of the output
SSH public key
You need to copy a SSH public key from your local machine to the server. You need to have created SSH key first.
from your local computer, type scp ~/.ssh/id_dsa.pub deployXXX.XXX.XXX.XXX:@ (replace X’s with your slice IP, don’t forget the trailing semi-colon)
Add public key to authorized keys and set permissions
Login to the slice using your new ‘deploy’ user, and enter the following commands:
mkdir ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys cat ~/id_dsa.pub >> ~/.ssh/authorized_keys rm ~/id_dsa.pub
Copy the setup files to remote server
Login as deploy user, and type: git clone git://github.com/mguterl/slice.git
Configure the SSH daemon to be more secure
sudo -s (enter password when prompted) cp slice/etc/ssh/sshd_config /etc/ssh/sshd_config /etc/init.d/ssh restart
Copy bash settings to your home directory
cat slice/.bash_profile >> ~/.bash_profile source ~/.bash_profile
Add some other misc. stuff
install locales sudo dpkg-reconfigure locales install screen install build-essential
Install and setup Shorewall (firewall)
Enter these commands:
install shorewall cp slice/etc/shorewall/rules /etc/shorewall/rules cp slice/etc/shorewall/zones /etc/shorewall/zones cp slice/etc/shorewall/interfaces /etc/shorewall/interfaces cp slice/etc/shorewall/policy /etc/shorewall/policy nano /etc/default/shorewall
Enable shorewall by setting startup=1 in the configuration
Ruby installation
install wget libssl-dev libreadline5-dev zlib1g-dev mkdir -p ~/src cd ~/src wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p111.tar.bz2 tar -jxvf ruby-1.8.6-p111.tar.bz2 cd ruby-1.8.6-p111 ./configure --prefix=/usr/local --disable-pthread make sudo make install cd ~/src 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 sudo ruby setup.rb
sudo gem install rails —no-ri —no-rdoc
Apache installation
install apache2 apache2-prefork-dev
Passenger installation
sudo gem install rake passenger sudo passenger-install-apache2-module
MySQL installation
install mysql-server-5.0 libmysqlclient15-dev mysqladmin -u root password YOURPASSWORDHERE sudo gem install mysql install phpmyadmin
Visit http://XXX.XXX.XXX.XXX/phpmyadmin/
Setup Passenger
sudo nano /etc/apache2/apache2.conf
Add the following lines:
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.3 PassengerRuby /usr/local/bin/ruby
Restart apache with this command:
sudo /etc/init.d/apache2 restart
Setup a rails app
Install rails:
sudo gem install rails
mkdir ~/apps cd ~/apps git clone git://github.com/ryw/cincinnati.rb.git sudo nano /etc/apache2/sites-available/cincinnatirb
Add something like this to the config file:
<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /home/deploy/apps/mysite/public
<Directory "/home/deploy/apps/mysite/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
To enable the new site:
sudo a2ensite cincinnatirb sudo /etc/init.d/apache2 reload
Capistrano
On your local machine cd to your current project directory.
Run capify . to setup capistrano
Replace config/deploy.rb with the deploy.rb included in this project
cap deploy:setup
Be sure to create your database prior to running this step.
cap deploy:cold
If all goes well you should have a working rails app. Also, don’t forget to setup your DNS entries
Sources
- http://articles.slicehost.com/2007/9/5/debian-etch-setup-page-1
- http://articles.slicehost.com/2007/9/5/debian-etch-setup-page-2

