Web services

These web services are usually installed on the web machine. They are important services like documentations, wikis, bug tracking systems etc. that make the contest experience better.

Homepage

Homepage is a landing page for all contestants, available at http://homepage. It is a simple page that shows a list of links to the available services.

Homepage is a Django application that allows the staff to easily add new links by going to the admin panel here: http://homepage/admin

This service runs as homepage.service. Users are automatically synchronized from UDB with udbsync_django@homepage.

Docs

Documentation of the finals (Stechec2 usage, game API, FAQ, …) can be hosted on http://docs/. After the initial setup, this page is just an empty page containing instructions on how to upload content here.

For more flexibility, so that the staff working on the game rules can easily make changes to the documentation, the deployment of this documentation is manual. Building and deploying the documentation should look like this:

cd prologin20XX/docs
make html
rsync --info=progress2 -r _build/html/* root@web:/var/prologin/docs

It is recommanded to add this line as a make deploy rule in the documentation Makefile.

DevDocs

The language documentations are available at http://devdocs/. It is a self-hosted instance of DevDocs that allows people to easily browse the documentation of the supported languages without having access to the internet.

It is possible for each user to enable or disable the documentation of their languages of choice, so that when they search for a keyword they only see the relevant parts of the documentation.

This service runs as devdocs.service.

Wiki

A Wiki service is available at http://wiki. It is a self-hosted instance of django-wiki that everyone can edit with any information they want.

TODO: add documentation on how to create the initial pages as staff.

This service runs as wiki.service. Users are automatically synchronized from UDB with udbsync_django@wiki.

Paste

A pastebin service is available at http://paste. It is a self-hosted instance of dpaste, where everyone can paste anything with syntax highlighting.

This service runs as paste.service. Users are automatically synchronized from UDB with udbsync_django@paste.

Bug tracker

TODO: We ditched Redmine and we are working on a good replacement based on Django. This section should be updated once it’s ready.

Map

A map of all the users is available at http://map. It uses a SVG template which maps the usual machine room setup. It uses machine hostnames to map positions in the room with machines registered in MDB.

The presencesync_usermap.service service watches for changes in UDB, MDB and Presencesync, and regenerates a map based on the map template after each change. It also regularly pings the machines to check for network issues and display them.