# SteamCMD sidecar test module. # # Uses Half-Life 1 Dedicated Server (app_id=70, ~200MB) as a small-but-real # SteamCMD download to verify the panel's sidecar updater end-to-end. # The "main" container is just an alpine sleeper holding open the volume — # we never need to start HLDS; we only care that the panel successfully # spawns a steamcmd sidecar, mounts the shared volume, streams install # progress, and exits cleanly. id: steamcmd-test name: "SteamCMD test (HLDS)" version: 0.1.0 supported_modes: - docker runtime: docker: image: alpine:3.21 # Host networking -- container shares the host net namespace, so # any port the game/mod binds is directly on the LAN. AMP-like # model. Multi-instance safety comes from env-driven per-instance # ports (panel allocator + env: mapping on each ports entry). network_mode: host command: [sleep, "86400"] browseable_root: /data volumes: - { type: volume, name: "panel-$INSTANCE_ID-data", container: "/data" } ports: - { name: p, proto: tcp, default: 14000 } resources: min_ram_mb: 64 recommended_ram_mb: 128 update_providers: - id: hlds kind: steamcmd app_id: "90" install_path: "/data" # --- Manifest-driven UI metadata (WI-07) -------------------------- # Consumed by the CONTROLLER/dashboard only (the controller loads its # own ./modules copy at startup); the agent ignores these at runtime. appearance: emoji: "⚙️" grad: "linear-gradient(135deg,#1e3a8a,#3b82f6)"