Skip to content

Platform

CommonHuman-Lab edited this page Jun 22, 2026 · 1 revision

Platform Setup

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.

Requirements

  • Docker and Docker Compose

Quick Start

# From the OctoRig root
./octorig.sh platform start

This 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.

Key Environment Variables

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

Managing the Platform

./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 logs

Connecting Labs

Start labs from the OctoRig root directory — they appear automatically in the platform's Labs section once running.

./octorig.sh start goldenace

Importing Fire-Range Challenges

./octorig.sh platform import

Features

CTF Events

Create time-boxed competition events, assign challenges, set scoring modes (static or dynamic), and freeze the scoreboard before announcing results. Teams or solo players.

Challenges

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.

Badges and Ranks

Award badges for challenge solves, event participation, and custom achievements. Configure rank thresholds to give users progression milestones on the scoreboard.

Plugin API

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.

Assessment Mode

See [https://github.com/CommonHuman-Lab/OctoRig/wiki/Assessment-Mode](Assessment Mode).

Settings

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

Clone this wiki locally