commit 52b8f7395de00e6551139af6331ce0f1f4152bad
Author: bacalhau <bacalhau@based.pt>
Date: Fri, 13 Mar 2026 22:58:49 +0000
migrated from forgejo
Diffstat:
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
+