# Quake Live LG vampiric server. Settings: .env (see .env.example). Setup: ./setup.sh # Game: UDP ${QL_PORT} on all interfaces. RCON: ZMQ TCP 127.0.0.1:${QL_RCON_PORT} only. # Started through minqlx (run_server_x64_minqlx.sh) for the plugins in home/minqlx-plugins. services: ql: build: . image: ql-lg-server:local container_name: ${QL_NAME:-ql-lg} user: "${QL_UID:-1000}:${QL_GID:-1000}" network_mode: host restart: unless-stopped init: true # tini as PID 1: if the server dies the container exits and Docker restarts it ulimits: core: 0 logging: driver: json-file options: max-size: "10m" max-file: "3" stdin_open: true tty: true env_file: .env environment: - HOME=/home/steam - TINI_KILL_PROCESS_GROUP=1 # stop/restart signals reach qzeroded through the sh pipe below volumes: - ./server:/ql/server - ./home:/ql/home - ./secrets:/ql/secrets:ro - ./tools:/ql/tools:ro - ./steamcmd-home:/home/steam # 1. mkcfg.sh turns .env into home/baseq3/local.cfg (+ secrets.cfg, mappool_lg.txt). # 2. The minqlx start script turns zmq stats on (TCP, all interfaces): +set zmq_stats_enable 0 turns it off. # 3. qzeroded's CZMQ auth logger prints the RCON password in plain text on every rcon login # ("zauth: ... password=..."): grep drops those lines before they reach docker logs. # If qzeroded dies, grep sees EOF, the container exits and Docker restarts it. command: ["/bin/sh", "-c", "/ql/tools/mkcfg.sh && /ql/server/run_server_x64_minqlx.sh +set zmq_stats_enable 0 +set fs_homepath /ql/home +set net_port $$QL_PORT +exec server.cfg 2>&1 | grep --line-buffered -v 'zauth:'"]