-
Notifications
You must be signed in to change notification settings - Fork 3
Platform
OctoRig's training platform is a self-hosted CTF engine and admin dashboard that runs alongside your lab containers. It adds challenge competitions, badge systems, team management, a creator workflow, and Assessment Mode on top of the Docker lab infrastructure.
- Docker and Docker Compose
# From the OctoRig root
./octorig.sh platform startThis builds and starts the API, workers, and frontend UI, creating platform/.env from platform/.env.example on first run if it doesn't exist yet.
| Service | URL |
|---|---|
| Dashboard | http://localhost:3000 |
| API docs | http://localhost:8000/docs |
The admin account is created automatically on first boot using the credentials in platform/.env.
Set these in platform/.env before going to production (edit the file, then ./octorig.sh platform restart):
| Variable | Description |
|---|---|
ADMIN_USERNAME |
Initial admin username |
ADMIN_PASSWORD |
Initial admin password |
ADMIN_EMAIL |
Initial admin email |
SECRET_KEY |
JWT signing secret (openssl rand -hex 32) |
CORS_ORIGINS |
Allowed frontend origins (default: http://localhost:3000) |
STORAGE_BACKEND |
local (default) or s3 for challenge file attachments |
./octorig.sh platform stop # Stop all services, keep data volumes
./octorig.sh platform restart # Rebuild and restart
./octorig.sh platform wipe # Stop and delete all data volumes (asks to confirm)
./octorig.sh platform status # Show platform container status
./octorig.sh platform logs [service] # Tail platform logsStart labs from the OctoRig root directory — they appear automatically in the platform's Labs section once running.
./octorig.sh start goldenace./octorig.sh platform importCreate time-boxed competition events, assign challenges, set scoring modes (static or dynamic), and freeze the scoreboard before announcing results. Teams or solo players.
Author challenges with markdown descriptions, file attachments, hints, and flag validation. Link challenges to specific lab endpoints so solves are contextual. Publish through the creator workflow for community review.
Award badges for challenge solves, event participation, and custom achievements. Configure rank thresholds to give users progression milestones on the scoreboard.
DAST scanners register via the octorig.plugins entry point group. The platform discovers them automatically at startup and proxies scan requests from the UI. See the CommonHuman-Lab scanner toolkit for reference plugins.
See [https://github.com/CommonHuman-Lab/OctoRig/wiki/Assessment-Mode](Assessment Mode).
Admin settings are available at /admin/settings:
- Registration — open, invite-only, or closed
- Branding — platform name, company name, logo URL
- Features — toggle scoreboard visibility, team creation, badge display, Python editor