diff --git a/README.md b/README.md index 4b8a0b2..9c0e490 100644 --- a/README.md +++ b/README.md @@ -1,146 +1,40 @@ # SteamCMD Docker Image -[](https://developer.valvesoftware.com/wiki/SteamCMD) +
-[](https://hub.docker.com/r/gameservermanagers/steamcmd) -[](https://github.com/GameServerManagers/docker-steamcmd/actions) -[](https://www.codacy.com/gh/GameServerManagers/docker-steamcmd/dashboard) -[](https://developer.valvesoftware.com/wiki/SteamCMD) -[](https://github.com/GameServerManagers/docker-steamcmd/blob/main/LICENSE) +## About -> Lightweight, daily-built SteamCMD base image for game server automation. +SteamCMD is a command-line version of the Steam client. It allows you to download and install games on a headless server. This container image builds daily and is available on [Docker Hub](https://hub.docker.com/r/gameservermanagers/steamcmd) as well as [GitHub Container Registry](https://github.com/GameServerManagers/docker-steamcmd/pkgs/container/steamcmd). -## Quick Start +## Tags -Pull the latest image and open SteamCMD interactive prompt: +- `latest`, `ubuntu` - Latest Ubuntu LTS release +- `ubuntu-24.04` - Ubuntu 24.04 LTS 'Noble Numbat' +- `ubuntu-22.04` - Ubuntu 22.04 LTS 'Jammy Jackalope' +- `ubuntu-20.04` - Ubuntu 20.04 LTS 'Focal Fossa' +- `ubuntu-18.04` - Ubuntu 18.04 LTS 'Bionic Beaver' -```bash -docker pull gameservermanagers/steamcmd:latest -docker run -it --rm gameservermanagers/steamcmd:latest -``` +## Usage -Download (update) a dedicated server into the current host directory (example: CS2 / app 730): +docker cli ```bash -docker run -it --rm \ - -v "$PWD:/data" \ - gameservermanagers/steamcmd:latest \ - +force_install_dir /data +login anonymous +app_update 730 validate +quit +docker run -it gameservermanagers/steamcmd:latest ``` -Persist Steam content in a named volume: - -```bash -docker volume create steamcmd-data -docker run -it --rm -v steamcmd-data:/home/steam/Steam gameservermanagers/steamcmd:latest +login anonymous +quit -``` - -## Tags & Platforms - -| Tag(s) | Ubuntu Release | Notes | -| ------ | -------------- | ----- | -| `latest`, `ubuntu` | 24.04 LTS (Noble) | Alias to most recent LTS | -| `ubuntu-24.04` | 24.04 LTS | Current LTS | -| `ubuntu-22.04` | 22.04 LTS | Previous LTS | -| `ubuntu-20.04` | 20.04 LTS | Legacy (receives security updates) | -| `ubuntu-18.04` | 18.04 LTS | Legacy / nearing EOL upstream | - -Currently built for: `linux/amd64`. - -## Features - -- Daily scheduled build + build on Dockerfile changes -- Non-root `steam` user (security best practice) -- Minimal packages; apt caches cleaned -- HEALTHCHECK (lightweight SteamCMD invocation) -- Multi-version tag set for pinning - -## Usage Examples - -Anonymous login and quit (cache initialization): - -```bash -docker run --rm gameservermanagers/steamcmd:latest +login anonymous +quit -``` - -Install/Update Valheim dedicated server (app 896660) into a local folder: - -```bash -mkdir -p valheim && \ -docker run --rm -v "$PWD/valheim:/data" gameservermanagers/steamcmd:latest \ - +force_install_dir /data +login anonymous +app_update 896660 validate +quit -``` - -Run with a different timezone: - -```bash -docker run --rm -e TZ=UTC gameservermanagers/steamcmd:latest +login anonymous +quit -``` - -## Data Persistence - -Steam content is stored under `/home/steam/Steam` (owned by the non-root `steam` user). Mount a volume there to persist downloads across runs. +Download Counter Strike: Global Offensive Dedicated Server to current host directory. ```bash -docker run -v steamcmd-data:/home/steam/Steam gameservermanagers/steamcmd:latest +login anonymous +quit +docker run -it -v $PWD:/data gameservermanagers/steamcmd:latest +force_install_dir /data +login anonymous +app_update 740 +quit ``` -## Configuration - -Common tunables (all optional): - -| Option | How | Purpose | -| ------ | --- | ------- | -| Timezone | `-e TZ=Europe/London` | Control tzdata (if installed) | -| Working dir | `-w /home/steam` | Override working directory | -| User mapping | `--user $(id -u):$(id -g)` | Run with host UID/GID (if perms needed) | - -Steam credentials (if you need a non-anonymous app): - -```bash -docker run -it --rm gameservermanagers/steamcmd:latest +login