RANGE42 is a modular cyber range platform designed for real-world readiness. We build, deploy, and document offensive, defensive, and hybrid cyber training environments using reproducible, infrastructure-as-code methodologies.
- Proxmox-based cyber ranges with dynamic catalog
- Ansible roles for automated deployments (Wazuh, Kong, Docker, etc.)
- Private APIs for range orchestration and telemetry
- Developer and testing toolkits and JSON transformers for automation pipelines
- ...
- RANGE42 deployer UI : A web interface to visually design infrastructure schemas and trigger deployments.
- RANGE42 deployer backend API : Orchestrates deployments by executing playbooks and bundles from the catalog.
- RANGE42 catalog : A collection of Ansible roles and Docker/Docker Compose stacks, forming deployable bundles.
- RANGE42 playbooks : Centralized playbooks that can be invoked by the backend or CLI.
- RANGE42 proxmox role : An Ansible role for controlling Proxmox nodes via the Proxmox API.
- RANGE42 devkit : Helper scripts for testing, debugging, and development workflows.
- RANGE42 kong API gateway : A network service in front of the backend API, handling authentication, ACLs, and access control policies.
- RANGE42 swagger API spec : OpenAPI/Swagger JSON definition of the backend API.
These repositories provide a modular and extensible platform to design, manage and deploy infrastructures automatically either from the UI (coming soon) or from the CLI through the playbooks repository.
This repository contains Ansible playbooks used by the backend API or CLI to deploy infrastructure bundles and full scenarios from the catalog.
playbooks/
├─ scenarios/ # Complete scenarios (entrypoints)
│ ├─ demo_lab.yml
│ ├─ forensics_lab.yml
│ └─ ...
│
└─ bundles/ # Reusable unit bundles actions
├─ ping.yml
├─ software/
│ ├─ configure/
│ │ └─ firewalls.yml
│ └─ install/
│ └─ docker_compose.yml
└─ ...
- Contains top-level playbooks executed directly.
- Each scenario chains multiple bundles to deploy a complete lab or environment.
To run scenario from CLI :
- Contains atomic, reusable bundles actions.
- Each bundles actions represents one clear intent (install, configure, verify, list, …).
- Organized by domain, for example:
ping.yml→ connectivity testsoftware/configure/firewalls.yml→ firewall configurationsoftware/install/docker_compose.yml→ docker-compose installation
Scenarios import these bundles actions via import_playbook.
- Use
snake_casefor files (docker_compose.yml,firewalls.yml). - Use
verb_objectfor bundle actions:install_docker_compose.ymlconfigure_firewalls.ymlping.yml
- Use descriptive names for scenarios that reflect the lab’s purpose:
demo_lab.ymlforensics_lab.yml
This is a collaborative initiative, developed for applied security training, community integration, and internal capability building. We use centralized community health files in Range42 community health.
- GPL-3.0 license