# 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)"
