cs1.6-docker

Log | Files | Refs | README

commit 52b8f7395de00e6551139af6331ce0f1f4152bad
Author: bacalhau <bacalhau@based.pt>
Date:   Fri, 13 Mar 2026 22:58:49 +0000

migrated from forgejo

Diffstat:
ADockerfile | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AREADME.md | 12++++++++++++
Adocker-compose.yml | 15+++++++++++++++
3 files changed, 94 insertions(+), 0 deletions(-)

diff --git a/Dockerfile b/Dockerfile @@ -0,0 +1,67 @@ +############################################################ +# Counter-Strike dedicated server +############################################################ +FROM debian:bookworm-slim + +LABEL maintainer="admin@based.pt" + +ARG PUID=1000 +ENV USER=steam \ + HOMEDIR=/home/steam \ + STEAMCMDDIR=/home/steam/steamcmd \ + PORT=27015 \ + DATADIR=/data \ + MAP=de_dust2 + +RUN set -x \ + && apt-get update \ + && apt-get install -y --no-install-recommends --no-install-suggests \ + lib32stdc++6=12.2.0-14+deb12u1 \ + lib32gcc-s1=12.2.0-14+deb12u1 \ + ca-certificates=20230311+deb12u1 \ + nano=7.2-1+deb12u1 \ + curl=7.88.1-10+deb12u14 \ + locales=2.36-9+deb12u13 \ + && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ + && dpkg-reconfigure --frontend=noninteractive locales \ + && useradd -u "${PUID}" -m "${USER}" \ + && mkdir -p "${STEAMCMDDIR}" "${DATADIR}" \ + && chown -R "${USER}:${USER}" "${HOMEDIR}" "${DATADIR}" \ + && su "${USER}" -c "\ + mkdir -p \"${STEAMCMDDIR}\" \ + && curl -fsSL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar xvzf - -C \"${STEAMCMDDIR}\" \ + && \"${STEAMCMDDIR}/steamcmd.sh\" +quit \ + && ln -s \"${STEAMCMDDIR}/linux32/steamclient.so\" \"${STEAMCMDDIR}/steamservice.so\" \ + && mkdir -p \"${HOMEDIR}/.steam/sdk32\" \ + && ln -s \"${STEAMCMDDIR}/linux32/steamclient.so\" \"${HOMEDIR}/.steam/sdk32/steamclient.so\" \ + && mkdir -p \"${HOMEDIR}/.steam/sdk64\" \ + && ln -s \"${STEAMCMDDIR}/linux64/steamclient.so\" \"${HOMEDIR}/.steam/sdk64/steamclient.so\" \ + && ln -s \"${STEAMCMDDIR}/steamcmd.sh\" \"${STEAMCMDDIR}/steam.sh\"" \ + && ln -s "${STEAMCMDDIR}/linux64/steamclient.so" "/usr/lib/x86_64-linux-gnu/steamclient.so" \ + && rm -rf /var/lib/apt/lists/* + +USER ${USER} +WORKDIR ${HOMEDIR} + +EXPOSE ${PORT}/udp +VOLUME ["/data"] + +ENTRYPOINT ["/bin/bash", "-c", "\ +if [ ! -f ${DATADIR}/hlds_run ]; then \ + echo 'Installing Counter-Strike server...'; \ + ${STEAMCMDDIR}/steamcmd.sh +force_install_dir ${DATADIR} +login anonymous \ + +app_set_config 90 mod cstrike \ + +app_update 90 -beta steam_legacy validate \ + +quit; \ +else \ + if [ \"$UPDATE\" = \"1\" ]; then \ + echo 'Updating Counter-Strike server...'; \ + ${STEAMCMDDIR}/steamcmd.sh +force_install_dir ${DATADIR} +login anonymous \ + +app_update 90 -beta steam_legacy validate \ + +quit; \ + else \ + echo 'Skipping update, starting server...'; \ + fi; \ +fi; \ +cd ${DATADIR} && \ +exec bash hlds_run -game cstrike -console +ip 0.0.0.0 -port ${PORT} +map ${MAP}"] diff --git a/README.md b/README.md @@ -0,0 +1,12 @@ +# cs1.6 server container +Very minimal cs1.6 server container. +It will download files to the /data directory which you can mount with a compose file to access all server files. MAKE SURE YOU HAVE PERMS OR IT WILL NOT WORK +## Cool things about it: +- access to server files +- starts super quick (because it skips updates) +- made to work with reHLDS (hlds reverse-engineered) + +## how to use +Download the repo, and start the compose. + + diff --git a/docker-compose.yml b/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.8' + +services: + counter-strike: + build: . + container_name: counter-strike + stop_signal: SIGKILL + ports: + - "27016:27016/udp" + environment: + - PORT=27016 + volumes: + - ./data:/data + restart: always +