CS2 Mapveto als ein Container (Dockerfile, compose.yml, Anleitung)

Ein Image mit Webseite, Backend, SQLite und Docker-Client; startet
Match-Container über /var/run/docker.sock auf demselben Host. Tests
laufen beim Bauen mit. Auf amp-cluster gebaut (301 MB) und geprüft.

Dazu: Testbefehl für Node 22 angepasst, beim Beenden werden ausstehende
Live-Updates verworfen und laufende Server-Aktionen abgewartet, damit nach
dem Schließen der Datenbank nichts mehr darauf zugreift.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
SPP UserandClaude Opus 5.5 committed 2026-10-25 22:40:52 +01:00
1 parent 6ee2de5a46
commit d78f399612
9 files changed
+236 -1

No files matched your search

+41
View File
@@ -0,0 +1,41 @@
# CS2 Mapveto auf einem Docker-Host (z. B. als Portainer-Stack).
# Die App startet pro Match einen CS2-Container auf demselben Host (Docker-Adapter).
#
# Vorher einmalig: Image bauen (siehe docs/container.md) und das Volume
# "cs2-mapveto-gamefiles" mit den CS2-Spieldateien befüllen (docs/portainer-cs2.md).
services:
cs2-mapveto:
image: cs2-mapveto:latest
build: .
container_name: cs2-mapveto
restart: unless-stopped
ports:
- "3000:3000"
environment:
# Adresse dieses Docker-Hosts im LAN – für Einladungslinks, Spieler-Verbindungen und Live-Logs
- PUBLIC_URL=http://${HOST_IP:-192.168.178.111}:3000
- LOG_RECEIVER_URL=http://${HOST_IP:-192.168.178.111}:3000
- SERVER_ADAPTER=docker
- CS2_PUBLIC_HOST=${HOST_IP:-192.168.178.111}
# RCON zu den Match-Containern über die veröffentlichten Ports des Hosts
- CS2_RCON_HOST=${HOST_IP:-192.168.178.111}
# leer = LAN-Modus (sv_lan 1)
- CS2_GSLT=${CS2_GSLT:-}
- CS2_DOCKER_VOLUME=cs2-mapveto-gamefiles
- CS2_DOCKER_IMAGE=joedwards32/cs2:latest
- CS2_PORT_RANGE_START=27100
- CS2_PORT_RANGE_END=27139
- CREATE_MATCH_PASSWORD=${CREATE_MATCH_PASSWORD:-}
- STREAM_KEY=${STREAM_KEY:-}
- SERIES_AUTO_ADVANCE_SECONDS=30
- SERVER_IDLE_TIMEOUT_MINUTES=30
volumes:
# Datenbank (Matches, Ergebnisse) überdauert Updates des Containers
- cs2-mapveto-data:/data
# Zugriff auf Docker, um Match-Container zu starten und zu entfernen
- /var/run/docker.sock:/var/run/docker.sock
volumes:
cs2-mapveto-data:
name: cs2-mapveto-data