Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Rails 3 app for playing the board game Go online.
branch: master
Failed to load latest commit information.
autotest switching to rspec
config automatically clear old stuck games each day
db send email containing chat message when user requests it
doc initial commit with game model
lib automatically clear old stuck games each day
public bump up jquery ajax timeout so it doesn't leave long requests hanging
script specifying path to bundler gemfile in worker
spec fixing bug where it would try to send an invitation email for a govsg…
vendor/plugins initial commit with game model
.gitignore adding email notifications
.rspec adding initial invitation feature
.rvmrc updating .rvmrc
.travis.yml use Ruby 1.9.2 in travis.yml
Capfile adding basic deploy.rb script
Gemfile send email move notification even when receipient is online because i…
LICENSE removing jquery-ui because I'm not using it (yet)
Rakefile initial commit with game model initial commit with game model


Go vs Go

This is the source code for, a site for playing the board game Go online with other players or against the computer.

If you have problems or suggestions, please post them on the Issue Tracker.


Ruby 1.9.2 is required. If you're using RVM it should automatically switch to 1.9.2 when entering the directory.

Run the following commands to set it up. Note the Homebrew command to install GNU Go and Beanstalk. You may want to use a different packaging system or install them from the source.

cp config/database.example.yml config/database.yml
cp config/private.example.yml config/private.yml
rake db:create db:migrate
brew install gnu-go beanstalk

You can start up the server with rails s and run the specs with rake.

Background Process

In production, the computer moves are handled in a background process because GNU Go can take a while and we don't want to tie up the Rails process during this time.

If you want to test the background process, set background_process: true in your config/private.yml file. Next run beanstalkd and script/worker. to start up the processes. Alternatively you can use god to start and monitor it. See the config/god.rb file.

Fix GNU Go

If GNU Go seems to be stuck, it may have run into a game or two that it cannot complete. Run the following command in the rails console to clear out any old games that are stuck.

Game.where("current_player_id IS NULL AND finished_at IS NULL and updated_at < ?",,

Then restart Beanstalkd, the worker, and web server.

sudo /etc/init.d/beanstalkd restart
god restart govsgo-worker
touch tmp/restart.txt


This site was originally created for Rails Rumble 2010 by Ryan Bates, James Edward Gray II and Phil Bates.

Something went wrong with that request. Please try again.