A server for running puzzle hunts. This project is mainly used by Puzzlehunt CMU to run their puzzlehunt, but is generic enough to be used for nearly any puzzle hunt. Includes basic features such as per-puzzle pages, automatic answer response, teams, customizable unlocking structure, and admin pages to manange submissions, teams, as well as hunt progress. It also includes automatic team creation from registration, privacy settings for hunts, cool charts, a built in chat, and automatic file fetching and hosting.
Documentation can be found at http://docs.puzzlehunt.club
If you are interested in getting this running elsewhere, let me ([email protected]) know. I'd be happy to help anyone who wants to get this up and running for their needs, and get help get you over any gaps in setup documentation. I'd also recommend if possible waiting for version 4.1 which will make adapting this software to other hunts easier: #121
Please submit issues for any bugs reports or feature requests.
This project now uses docker-compose as it's main form of setup. You can use the following steps to get a sample server up and going
- Install docker/docker-compose.
- Clone this repository.
- Make a copy of
sample.env
named.env
(yes, it starts with a dot). - Edit the new
.env
file, filling in new values for the first block of uncommented lines. Other lines can be safely ignored as they only provide additional functionality. - Run
docker-compose up
(possibly prependingsudo
if needed) - Once up, you'll need to run the following commands to collect all the static files (to be run any time you alter static files) and to load in an initial hunt to pacify some of the display logic (to be run only once) :
docker-compose exec app python3 /code/manage.py collectstatic --noinput
docker-compose exec app python3 /code/manage.py loaddata initial_hunt
- You should now have the server running on a newly created VM, accessible via http://localhost. The repository you cloned has been linked into the VM by docker, so any changes made to the repository on the host system should show up automatically. (A
docker-compose restart
may be needed for some changes to take effect)