Skip to content

Repository files navigation

HackBox Console

Note

Comes with support for:

HackBox Console Main

HackBox Console Challenge View

A portal for Hackathon participants to access challenges and credentials.

A portal for Hackathon coaches to access challenges, solutions, credentials and unlock challenges for participants.

The HackBox Console also supports multitenancy (multiple teams with a single coach each) and can be integrated with other tools, that take care of the sandbox environment provisioning.

Solutions and challenges are stored in markdown files.

  • challanges should follow the format: challenge-*.md, f.e. challenge-1.md, challenge-2.md, ...
  • solutions should follow the format: solution-*.md, f.e. solution-1.md, solution-2.md, ...

Thanks to zero-md the markdown files are rendered as HTML with a broad support for markdown syntax:

  • Math rendering via KaTeX
  • Mermaid diagrams
  • Syntax highlighting via highlight.js
  • Language detection for un-hinted code blocks
  • Hash-link scroll handling
  • FOUC prevention
  • Auto re-render on input changes
  • Light and dark themes
  • Spec-compliant extensibility
  • Renders single secrets <secret group="groupname" name="secretname" show="true|false|alwayshidden" />
  • Renders secrets group table <secretgroup group="azure" show="true|false|alwayshidden" />

Prerequisites

How to build & Deploy

Have a directory containing the challenges. It will walk through the directory (including subdirectories) and look for files named *challenge*.md. Have a directory containing the solutions. It will walk through the directory (including subdirectories) and look for files named *solution*.md.

Easy and quick way to test the console use:

# for single tenant run:
.\iac\deployHackerConsole.ps1 `-SourceChallengesDir ..\path\to\challenges\ `-SourceSolutionsDir ..\path\to\solutions\ `-hackerUsername "hacker"`-hackerPassword ("hacker"|ConvertTo-SecureString-AsPlainText -Force) `-coachUsername "coach"`-coachPassword ("coach"|ConvertTo-SecureString-AsPlainText -Force)

For real deployment use one of the following options:

users.json - Multi Tenant User Definition

The easiest way to create the users.json file is to use the createUsers.ps1 script.

Alternatively, you can copy the sample-users.json file to users.json and then modify it to fit your needs.

The file has the following structure:

[
{
"username": "admin",
"password": "admin",
"role": "coach",
"tenant": "Default"
}
]
AttributeRequired?Description
usernamerequiredThe username of the user
passwordrequiredThe password of the user
rolerequiredThe role of the user:
  • coach: Can see unlocked challenges, solutions and credentials within his tenant. Can unlock challenges for hackers.
  • hacker: Can see only unlocked challenges and credentials within his tenant.
  • techlead: Can start/stop/reset timers and unlock challenges across all tenants. (Just create a techlead, if you have a more than 3 tenants.)
tenantoptionalThe tenant the user belongs to (each tenant must have at least one coach and one hacker)

About

A Console For Hackathons

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages