Contestrus is a platform for hosting algorithmic competitions. It is planned to feature:
Many contest environments are complicated to set up. Contestrus is aiming to be extremely simple to set up with Docker for ease of deployment.
Current status is that it definitely works and the core is pretty stable. It's been used to host a few competitions at Shopify without problems.
Pull down the latest Contestrus Docker image:
docker pull Sirupsen/contestrus
Create and migrate the sqlite database:
docker run \
--volume /var/lib/contestrus:/db \
--env RAILS_ENV=production \
sirupsen/contestrus migrate
Run the Contestrus web server:
docker run \
--volume /var/log/contestrus:/app/log \
--volume /var/lib/contestrus:/db \
--env RAILS_ENV=production \
--publish 80:4000 \
sirupsen/contestrus web
Run the Contestrus worker:
docker run \
--volume /var/log/contestrus:/app/log \
--volume /var/lib/contestrus:/db \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /var/lib/docker:/var/lib/docker \
--env RAILS_ENV=production \
sirupsen/contestrus worker
Grab the sandboxing images (will eventually be just one):
docker pull bouk/gcc
docker pull bouk/coffee
docker pull bouk/golang
docker pull bouk/node
docker pull bouk/pypy
docker pull bouk/ruby
Import a competition (there's a sample in the root of the project):
docker run \
--volume /home/me/competition:/competition \
sirupsen/contestrus import
Content type
Image
Digest
sha256:ba2152a96…
Size
483.4 MB
Last updated
almost 11 years ago
docker pull sirupsen/contestrus