Installing jobsworth on your server
Step 1: Getting the source
The source is released under the MIT/X Consortium License.
The easiest way to get the source and easily update it from time to time is with git. You'll need to install that on your machine and then run:
git clone git://github.com/ari/clockingit.git
You will want to put the source somewhere sensible depending on your operating system. On OSX that might be ~/Sites/jobsworth and on FreeBSD /usr/local/www/jobsworth. We'll use the FreeBSD path in these instructions.
Step 2: Prerequsites
You need to be running some type of Unix: OSX, Linux, Solaris, BSD. Windows will probably not work. You will also need a database. MySQL has been heavily tested, and some people are running postgresql.
Install the following packages:
ruby mysql driver (you could also choose postgresql)
How to install these will differ on each platform. Some possibilities:
portinstall ruby-iconv ruby18-gems ruby18-mysql rubygem-rake ImageMagick
First install the Macports system from www.macports.org. Then:
sudo port install rb-rubygems rb-mysql rb-rake ImageMagick libxml2 libxslt
Under other operating systems use your favourite package manager to ensure you have Ruby 1.8.x, rubygems, Imagemagick, Rake and the Ruby mysql driver installed. Something like:
yum install libxml2 libxslt ImageMagick ruby
Step 3: Phusion Passenger
Install Phusion Passenger. You can instead use Mongrel, but it tends to be a little easier to set up with Phusion.
gem install passenger passenger-install-apache2-module
And follow the instructions you'll be given about how to install the relevant config for Apache httpd.
Your Apache httpd virtual host DocumentRoot should point to the public directory in the installation directory.
<VirtualHost *:80> ServerName jobsworth.example.com.au RailsEnv production PassengerHighPerformance on DocumentRoot /usr/local/www/jobsworth/public CustomLog /var/log/www/myserver.example.com.au-access_log combined ErrorLog /var/log/www/myserver.example.com.au-access_log </VirtualHost>
Naturally adjust the paths to suit your own environment.
Step 4: Setup configuration and database
cd /usr/local/www/jobsworth ruby setup.rb
Step 5: Ruby gems
There are a few Ruby gems which are needed for running CIT. Change directory into the top of your CIT installation, then type:
That will install the gems you need.
If you have trouble on OSX with the mysql gem (this seems to be an issue on 10.5), then try this
sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-include=/opt/local/include/mysql5 --with-mysql-lib=/opt/local/lib/mysql5 --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config
Upgrading to a newer revision
git checkout db/schema.rb git pull
Check that there aren't any updated gems or new gems to install. If there are, just follow the instructions you will be given on screen.
Next, make sure the database is updated:
rake db:migrate RAILS_ENV=production
Depending on which environment you are updating, you can change the RAIL_ENV value to “test” or “development” and the appropriate database will be updated.
Find the daemon running with
ps ax | grep push_server
then kill the push server daemon.
cd /usr/local/www/jobsworth nohup ./script/push_server & apachectl restart
Setting up Email Integration
You need to set up your email software so that it sends all emails for a subdomain to your rails user, and set up the alias so that it runs the mailman script.
For example to configure sendmail to pass to jobsworth all emails sent to domain.com. See www.freebsd.org/doc/en/books/handbook/sendmail.html for more help on configuring sendmail on FreeBSD systems.
Add an entry to /etc/mail/local-host-names to contain your domain
Add an entry to /etc/mail/aliases to create an alias that will hand off emails to the mailman script
jobsworth: "|/path/to/cit/script/runner -e production 'Mailman.receive(STDIN.read)'"
Add an entry to /etc/mail/virtusertable to redirect all emails to your domain to the above alias
run “make; make restart” in /etc/mail