Monarch Of The Hill - base infrastructure for computer-based puzzle contests
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Neale Pickett 67e8dda39d
Remove use of participant ID
1 week ago
.github/ISSUE_TEMPLATE Remove github workflow 1 year ago
.vscode mkpuzzle working in dev mode 3 years ago
build oops, add in dockerhub repo to 1 year ago
cmd Remove use of participant ID 1 week ago
contrib Bit of reorg, add missing files 4 years ago
docs Remove use of participant ID 1 week ago
example-puzzles Counting example category now demonstrates python IDE 2 years ago
pkg Prepend timestamp to award filenames 1 year ago
theme Remove use of participant ID 1 week ago
.dockerignore oops 3 years ago
.gitignore Housekeeping 3 years ago
.gitlab-ci.yml Pull XML reporting into its own job, so it still shows up 5 months ago changelog 11 months ago License formatting 4 years ago Push images to docker hub, but say to use ghcr 1 year ago
go.mod Bump from 0.3.7 to 0.3.8 1 month ago
go.sum Bump from 0.3.7 to 0.3.8 1 month ago

Dirtbags Monarch Of The Hill Server

Build badge Go report card

Monarch Of The Hill (MOTH) is a puzzle server. We (the authors) have used it for instructional and contest events called "Tracer FIRE", "Project 2", "HACK", "Queen Of The Hill", "Cyber Spark", "Cyber Fire", "Cyber Fire Puzzles", and "Cyber Fire Foundry".

Information about these events is at

A few things make MOTH different than other Capture The Flag server projects:

  • Once any team opens a puzzle, all teams can work on it (high fives to DC949/Orange County for this idea)
  • No penalties for wrong answers
  • No time-based point deductions (if you're faster, you get to answer more puzzles)
  • No internal notion of ranking or score: it only stores an event log, and scoreboards parse it however they want
  • All puzzles must be compiled to static content before it can be served up
  • The server does very little: most functionality is in client-side JavaScript

You can read more about why we made these decisions in philosophy.

Run in demonstration mode

docker run --rm -it -p 8080:8080

Then open http://localhost:8080/ and check out the example puzzles.


  • Development: The development server lets you create and test categories, and compile mothballs.
  • Getting Started: This guide will get you started with a production server.
  • Administration: How to set hours, and change setup.

Contributing to MOTH

Please read our contributing guide.