2016-01-31 20:45:35 -07:00
|
|
|
Dirtbags Monarch Of The Hill Server
|
2016-01-31 20:41:22 -07:00
|
|
|
=====================
|
|
|
|
|
2016-01-31 20:45:35 -07:00
|
|
|
This is a set of thingies to run our Monarch-Of-The-Hill contest,
|
|
|
|
which in the past has been called
|
|
|
|
"Tracer FIRE",
|
|
|
|
"Project 2",
|
|
|
|
"HACK",
|
|
|
|
"Queen Of The Hill",
|
|
|
|
and "Cyber FIRE".
|
2016-01-31 20:41:22 -07:00
|
|
|
|
2016-01-31 20:45:35 -07:00
|
|
|
Information about these events is at
|
|
|
|
http://dirtbags.net/contest/
|
|
|
|
|
|
|
|
This software serves up puzzles in a manner similar to Jeopardy.
|
2016-01-31 20:41:22 -07:00
|
|
|
It also track scores,
|
|
|
|
and comes with a JavaScript-based scoreboard to display team rankings.
|
|
|
|
|
|
|
|
|
2016-01-31 20:45:35 -07:00
|
|
|
How everything works
|
|
|
|
---------------------------
|
2016-01-31 20:41:22 -07:00
|
|
|
|
2016-01-31 20:45:35 -07:00
|
|
|
This section wound up being pretty long.
|
|
|
|
Please check out [the overview](doc/overview.md)
|
|
|
|
for details.
|
2016-01-31 20:41:22 -07:00
|
|
|
|
|
|
|
|
2016-02-16 09:25:45 -07:00
|
|
|
Dependencies
|
|
|
|
--------------------
|
2016-02-22 01:12:24 -07:00
|
|
|
If you're using Xubuntu 14.04 LTS, you should have everything you need except
|
2016-02-16 09:25:45 -07:00
|
|
|
[LUA](http://lua.org).
|
|
|
|
|
|
|
|
$ sudo apt-get install lua5.2 -y
|
|
|
|
|
2016-01-31 20:41:22 -07:00
|
|
|
How to set it up
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
It's made to be virtualized,
|
|
|
|
so you can run multiple contests at once if you want.
|
2016-02-16 09:25:45 -07:00
|
|
|
If you were to want to run it out of `/opt/moth`,
|
2016-01-31 20:41:22 -07:00
|
|
|
do the following:
|
|
|
|
|
2016-02-16 09:25:45 -07:00
|
|
|
$ mkdir -p /opt/moth/mycontest
|
|
|
|
$ ./install /opt/moth/mycontest
|
|
|
|
$ cp mothd /opt/moth
|
2016-02-22 01:12:24 -07:00
|
|
|
|
2016-01-31 20:41:22 -07:00
|
|
|
Yay, you've got it set up.
|
|
|
|
|
|
|
|
|
|
|
|
Installing Puzzle Categories
|
|
|
|
------------------------------------
|
|
|
|
|
|
|
|
Puzzle categories are distributed in a different way than the server.
|
|
|
|
After setting up (see above), just run
|
2016-02-16 09:25:45 -07:00
|
|
|
$ /opt/moth/mycontest/bin/install-category /path/to/my/category
|
2016-02-22 01:12:24 -07:00
|
|
|
|
2016-01-31 20:41:22 -07:00
|
|
|
|
|
|
|
Running It
|
|
|
|
-------------
|
|
|
|
|
2016-02-22 22:13:41 -07:00
|
|
|
Get your web server to serve up your contest. Here's one way to do it
|
|
|
|
on Xubuntu 14.04 LTS with [lighttpd](https://lighttpd.net) where the contest is at `/opt/moth/mycontest` and `mothd` is running as user `moth`:
|
|
|
|
|
|
|
|
First, install lighttpd and backup the configuration:
|
|
|
|
|
|
|
|
$ sudo apt-get install lighttpd -y
|
|
|
|
$ cp /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.orig
|
|
|
|
|
|
|
|
Add `mod_cgi` to the `ServerModules` section, an alias, and CGI handling to `/etc/lighttpd/lighttpd.conf`:
|
|
|
|
|
|
|
|
alias.url = ("/moth" => "/opt/moth/mycontest/www")
|
|
|
|
$HTTP["url"] =~ "/moth/" {
|
|
|
|
cgi.assign = (".cgi" => "/usr/bin/lua")
|
|
|
|
}
|
|
|
|
|
|
|
|
Restart your server:
|
|
|
|
|
|
|
|
$ sudo service lighttpd restart
|
|
|
|
* Stopping web server lighttpd [ OK ]
|
|
|
|
* Starting web server lighttpd [ OK ]
|
2016-01-31 20:41:22 -07:00
|
|
|
|
2016-02-22 22:13:41 -07:00
|
|
|
Make sure user `moth` can access contest content and run the daemon.
|
2016-01-31 20:41:22 -07:00
|
|
|
|
2016-02-22 22:13:41 -07:00
|
|
|
$ sudo chown -R moth:moth /opt/moth/mycontest
|
|
|
|
$ sudo -u moth /opt/moth/mothd
|
2016-01-31 20:41:22 -07:00
|
|
|
|
|
|
|
Permissions
|
|
|
|
----------------
|
|
|
|
|
|
|
|
It's up to you not to be a bonehead about permissions.
|
|
|
|
|
|
|
|
Install sets it so the web user on your system can write to the files it needs to,
|
|
|
|
but if you're using Apache,
|
|
|
|
it plays games with user IDs when running CGI.
|
|
|
|
You're going to have to figure out how to configure your preferred web server.
|