explaingit

live-ctf/livectf-defcon34

14RustAudience · ops devopsComplexity · 5/5Setup · hard

TLDR

Archived infrastructure for LiveCTF at DEF CON 34, a bot-programming competition where teams write programs for a custom CPU that compete in a live game, built in Rust with Terraform and Ansible.

Mindmap

mindmap
  root((LiveCTF DEF CON 34))
    Crates
      Emulator
      Game engine
      Driver
    Services
      API web service
      Coordinator
      Game visualizer
    Infrastructure
      Terraform Hetzner
      Ansible config
      GitHub Actions CI
    Management
      Organizer CLI
      SSH tunnel access
      Staging and prod
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study how a live bot-programming competition platform is architected across emulator, game engine, driver, and API crates.

USE CASE 2

Adapt the infrastructure as a starting point for running your own bot-game competition event on Hetzner Cloud.

USE CASE 3

Browse the qualifier archive in Google Cloud Storage to replay past games and study bot strategies.

Tech stack

RustTerraformAnsiblePostgreSQLGitHub ActionsHetzner Cloud

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Rust, PostgreSQL, and Linux system libraries. Written for organizers running the event infrastructure, not for competition participants.

In plain English

LiveCTF-DEFCON34 is the infrastructure codebase for LiveCTF, a bot-programming competition that ran at DEF CON 34, a major hacking and security conference. In this competition, teams write programs (called bots) that run on a custom made computer architecture, and those bots compete against each other in a game. This repository is now an archive. Qualifier data including the database, API snapshots, replays, and the bots themselves is available in a public Google Cloud Storage bucket linked from the README. The code is written in Rust and split into six crates. The emulator crate runs the custom architecture that bots execute on. The game-engine crate contains the game logic and simulation rules. The driver crate runs bots against each other using the game engine. The coordinator crate fetches game data and bot binaries, invokes the driver, and reports results. The api crate is a web service that teams and organizers use to register bots, create games, and view results. The game crate is a visualizer for watching games replay. Deployment uses Terraform to provision servers on Hetzner Cloud and Ansible to configure them. There are separate staging and production environments. A command-line tool lets organizers manage teams, upload bot binaries, create and start games, and check results through an SSH tunnel to the API. GitHub Actions handles continuous integration and production releases gated by a required reviewer. The development setup requires Rust, a PostgreSQL database, and a handful of Linux system libraries. The README is written for organizers running the infrastructure, not for participants. It is a detailed operational guide covering first-time setup through day-to-day game management commands. This is a niche codebase that would interest people running similar bot-game competition systems or studying how live CTF infrastructure is built.

Copy-paste prompts

Prompt 1
I want to run a bot-programming competition similar to LiveCTF. Looking at live-ctf/livectf-defcon34, explain how the emulator crate and game-engine crate interact and what I would need to change to support a different game.
Prompt 2
Walk me through the Terraform and Ansible setup in livectf-defcon34 to understand how staging and production environments are provisioned on Hetzner Cloud.
Prompt 3
How does the coordinator crate in livectf-defcon34 fetch bot binaries, invoke the driver, and report results back to the API? I want to build a similar game orchestration pipeline.
Prompt 4
What does the organizer CLI tool in livectf-defcon34 do, and how does it communicate with the API over an SSH tunnel to manage teams, games, and results on competition day?
Open on GitHub → Explain another repo

← live-ctf on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.