Home About Stack Changelog
KRALI4

Stack

Challenge server

Ubuntu 22.04base image
OpenSSH serverplayers connect via SSH on port 30022
Linux userslevel0 – level5, each with a separate home directory
Random passwordsgenerated fresh on every container start
Level scriptsone .sh script per level — challenge files, permissions, hints

Infrastructure

Kubernetes (k3s)single-node cluster on a VPS — always-on challenge deployment
nginxserves the frontend as a baked Docker image
Traefikingress controller with automatic TLS via Let's Encrypt
GitLab CIbuilds both images in parallel, deploys to k8s on push to main

Security

cap_drop ALLonly required capabilities added back
no-new-privilegesprocesses can't escalate beyond their starting privileges
resource limits0.5 CPU · 256 MB RAM at the pod level
ulimitsper-user: max 30 processes, 50 MB writes, 5 min CPU time
egress blockedNetworkPolicy denies all outbound traffic from the challenge pod
read-only fileschallenge files owned by root — players can read, not delete

Frontend

Vanilla JSno frameworks
HTML / CSSmonospace, dark theme