Steam upload baseSteamCMD Ubuntu
An Ubuntu 24.04 Docker base image with steamcmd preinstalled, used for local config.vdf capture and the CI Steam build upload step — no credentials baked in.
No credentials baked in
Each consumer brings its own config.vdf — a volume mount locally, or the STEAM_CONFIG_VDF secret restored in CI. Steam Guard mobile auth runs once; the resulting machine token blob authenticates Linux runners on subsequent runs.
- Local — interactive docker run to capture the vdf.
- CI — ci-unity.yml deploy_steam runs run_app_build.
What it gives you
Features
steamcmd preinstalled
steamcmd lives at /opt/steamcmd/ with a /usr/local/bin/steamcmd shim for direct invocation.
No credentials baked in
Each consumer supplies its own config.vdf — a volume mount locally or the STEAM_CONFIG_VDF secret in CI.
Build-time self-update
Self-update runs at image build time so the first invocation isn't paying the steamcmd bootstrap cost.
32-bit runtime dep
lib32gcc-s1 is the one non-obvious runtime dependency — steamcmd is a 32-bit Linux binary.
What it is
Overview & image hygiene
Ubuntu 24.04 base with steamcmd preinstalled at /opt/steamcmd/, plus a /usr/local/bin/steamcmd shim for direct invocation.
Two consumers:
- Local — interactive
docker run -it --rm -v ~/steam-export:/export ghcr.io/kbve/steamcmd-ubuntu:24.04 bashto capture a Linux-flavoredconfig.vdffor theSTEAM_CONFIG_VDFGitHub secret. Steam Guard mobile auth runs once; the resulting machine token blob authenticates Linux runners on subsequent CI runs. - CI —
ci-unity.yml’sdeploy_steamjob uses this image to runsteamcmd +run_app_buildagainst the demo / mainapp_build_<label>.vdfconfigs.
Image hygiene
Section titled “Image hygiene”- No credentials baked in. Each consumer brings its own
config.vdf(volume mount locally, secret restore in CI). - Self-update runs at image build time so first invocation isn’t paying the steamcmd bootstrap cost.
lib32gcc-s1is the only non-obvious runtime dep — steamcmd is a 32-bit Linux binary.
Capture config.vdf
Local capture flow
mkdir -p ~/steam-exportdocker run -it --rm -v ~/steam-export:/export ghcr.io/kbve/steamcmd-ubuntu:24.04 bash# inside:# steamcmd +login h0lybyte → password + Steam Guard mobile confirm# quit# cp /root/Steam/config/config.vdf /export/# exit
base64 -i ~/steam-export/config.vdf -o /tmp/steam_config.b64gh secret set STEAM_CONFIG_VDF --repo kbve/kbve < /tmp/steam_config.b64rm -rf /tmp/steam_config.b64 ~/steam-exportPublish
Pipeline
pipeline: docker → manifest fan-out builds + pushes to ghcr.io/kbve/steamcmd-ubuntu:24.04 whenever version here outpaces version.toml.
Questions
Frequently asked
What is the steamcmd-ubuntu image for?
It is an Ubuntu 24.04 base image with steamcmd preinstalled, used for local config.vdf capture and the CI Steam build upload step in ci-unity.yml.
Are Steam credentials baked into the image?
No. Each consumer brings its own config.vdf — a volume mount locally, or the STEAM_CONFIG_VDF secret restored in CI.
Why is lib32gcc-s1 installed?
steamcmd is a 32-bit Linux binary, so lib32gcc-s1 is the one non-obvious runtime dependency the image needs.
