How markusbauer/saarctf-servers works
This repository provisions and configures the server infrastructure for running an attack-defense CTF. Its central runtime workflow connects team traffic through VPN services, accepts flag submissions, processes checker jobs on Celery workers, and exposes competition state through the scoreboard and control panel. Separate branches provide traffic capture and statistics, monitoring, and centralized log infrastructure. The graph reflects the README and sampled scripts; several services are documented but their application source is not present in the tree, so their internal wiring is not expanded.
Main entry points: main.tf VM Infrastructure · vpn@.service Team VPN Services · playbook.yml Databases · saarctf-dashboards.yml Metrics and Dashboards
Components 23
Infrastructure
- VM Infrastructure
tofu/saarctf-setup/main.tf - Network Module
tofu/modules/network/main.tf - Controller Image
controller/playbook.yml - VPN Image
vpn/playbook.yml - Checker Image
checker/playbook.yml
Gameserver
- Databases
controller/playbook.yml - Control Panel
controller/playbook.yml - CTF Timer
controller/files/ctftimer.service - Flag Submission
controller/files/submission-server.service - Scoreboard
controller/files/scoreboard.service - Test Run Client
controller/files/codeeditor/scripts/start_testrun.py - Traffic Database
controller/playbook.yml
VPN and Traffic
- Team VPN Services
vpn/files/services/vpn@.service - Firewall Manager
vpn/files/services/manage-iptables.service - Traffic Capture
vpn/files/services/tcpdump-team.service - Traffic Statistics
vpn/files/services/trafficstats.service
Workers and Operations
- Celery Queue
controller/files/scripts/rabbitmq-setup.sh - Checker Worker
checker/files/services/celery.service - Metrics and Dashboards
controller/files/grafana/saarctf-dashboards.yml - Central Log Stack
elastic/files/docker-compose.yml - Service Status
srvstatus/service.py
Other components
- Organizer
- CTF Teams
Connections 23
- Organizer → VM Infrastructure: provisions
- VM Infrastructure → Network Module: creates network
- VM Infrastructure → Controller Image: deploys role
- VM Infrastructure → VPN Image: deploys role
- VM Infrastructure → Checker Image: deploys role
- CTF Teams → Team VPN Services: connects through
- Team VPN Services → Firewall Manager: uses rules
- CTF Teams → Flag Submission: submits flags
- Flag Submission → Databases: records submissions
- Control Panel → Celery Queue: schedules checker jobs
- Celery Queue → Checker Worker: dispatches jobs
- Checker Worker → Databases: stores results
- Test Run Client → Control Panel: uploads and queries
- CTF Timer → Scoreboard: triggers rebuild
- Databases → Scoreboard: provides competition data
- Team VPN Services → Traffic Capture: carries captured traffic
- Traffic Capture → Traffic Statistics: supplies traffic
- Traffic Statistics → Traffic Database: writes summaries
- Metrics and Dashboards → Databases: monitors
- Metrics and Dashboards → Team VPN Services: monitors
- Central Log Stack → Controller Image: collects logs
- Central Log Stack → VPN Image: collects logs
- Service Status → Metrics and Dashboards: reports status