Prudge is an online programming contest judge system.
- Memcached for caching
- Postgresql as database
- Redis for background processing
- Sphinx for full text search
- safeexec for testing code
- apt-get install memcached
- apt-get install postgresql92-server
- apt-get install redis
- apt-get install sphinxsearch
- cd /usr/ports/databases/memcached && make install clean
- cd /usr/ports/databases/postgresql92-server && make install clean
- cd /usr/ports/databases/redis && make install clean
- cd /usr/ports/textproc/sphinxsearch && make install clean
- brew install memcached
- brew install postgresql
- brew install redis
- brew install sphinx
Recommends installing ruby via rbenv. Current ruby for prudge is 1.8.7
git clone git://github.com/ochko/prudge.git
cd prudge
bundle install
- Create database and configure in
config/database.yml
bundle exec rake db:schema:load
bundle exec rails server
orbundle exec foreman start
- Initialize submodule:
git submodule update --init
- Make binary executable:
cd judge/runner && make && mv safeexec ../sandbox/
- Give setuid root permission to the binary:
cd ../sandbox && sudo chown root safeexec && sudo chmod u+s safeexec
cp config/examples/resque.yml config/resque.yml
- Start workers
QUEUE=* bundle exec rake resque:work
cp config/examples/sphinx.yml config/sphinx.yml
- See Sphinx docs for additional configuration.
See Technical Debts or Open Issues.
- After making changes add spec, and please be sure that all specs pass
- Send me pull request. Then it could be merged ;)
- If you found any problems please report on issues page. But don't post any security related issues there, send them privately.