software/server-setup

Generic Server Setup Tricks

hostname

On Linux (at least ubuntu), the correct way to set a FQDN (fully qualified domain name, eg killer.mail.webtwo.com; the hostname in this case would be killer) is to edit both /etc/hosts:

<primary ip>    <fqdn>  <hostname>
127.0.0.1   localhost

and /etc/hostname:

<hostname>

See also debian and freebsd tricks.

bind

You probably want to hide your bind verison name to prevent scanning and attacks. Edit /etc/bind/named.conf or /etc/bind/named.conf.options and add this line to the options block:

version "Withheld";

ntp

ntp servers listen on port 37.

temboz

The temboz feed reader is started by:

$ ./temboz --server &

in the appropriate directory.

File Hierarchy

/srv/

Root for server files, scripts, and databases

/srv/http/

Subdirectories for each virtual host live in this folder, with further subdirectories for different dynamic services or static serving. /www/ is for static html content.

/srv/http/default/www/

Default pages like 404.html or 50x.html live here.

/srv/git/

Bare git repositories are stored here; those with a file git-daemon-export-ok get served up through a web interface and can be publically cloned.

/srv/backup/

Database dumps and backups get put in subdirectories here; this whole directory can be rsynced to a remote location.

/srv/db/

Database files (sqlite, passwds, etc) go in subdirectories here. Usually has crazy r/w permissions!

Ruby on Rails Deployment: Phusion Passenger

This method replaces the nginx binary. It uses <http://www.modrails.com> Phusion Passenger on Ubuntu Server:

nano /etc/apt/sources.list  # uncomment the 'universes' lines
sudo aptitude update
sudo aptitude install ruby ruby1.8-dev rubygems build-essential libopenssl-ruby libssl-dev zlib1g-dev
sudo aptitude install irb1.8 bzip2 unzip less screen wget curl sysinfo # Optional
sudo gem install passenger
sudo /var/lib/gems/1.8/bin/passenger-install-nginx-module