claude-memory/graph/code-patterns/pattern-proxmox-lxc-creation-for-headless-game-servers-ccb2b5.md

1.8 KiB

id type title tags importance confidence created updated relations
ccb2b5a4-a9bb-4f8f-9367-d74713ab2415 code_pattern Pattern: Proxmox LXC Creation for Headless Game Servers
proxmox
lxc
game-server
pattern
steamcmd
claude-home
0.7 0.8 2026-03-05T03:43:01.292934+00:00 2026-03-05T03:43:01.763592+00:00
target type direction strength edge_id
62ee21e8-2b56-4d38-a73d-47e2724f08c6 BUILDS_ON outgoing 0.78 dd74a210-1868-4c5d-867a-2ab980fec077
target type direction strength edge_id
5da4468e-4a1b-481b-bbae-a32108dab33e RELATED_TO outgoing 0.77 4b15dc4c-5607-4cd1-a7ee-66971512b79c
target type direction strength edge_id
1a1281db-3886-4680-8793-2c102bb27ee1 RELATED_TO outgoing 0.75 7dd6bed1-6d2d-443b-a9b8-4f395061aa75

Proxmox LXC Game Server Pattern

Container Setup

  • Unprivileged container with nesting=1
  • No Docker needed, so no keyctl/apparmor hacks required
  • Template: Debian 12

SteamCMD Setup

dpkg --add-architecture i386
apt install lib32gcc-s1 steamcmd

User

  • Create dedicated steam user for server process
  • Run SteamCMD and server as steam, not root

SteamCMD Invocation Pattern

steamcmd +@sSteamCmdForcePlatformType linux +login anonymous \
  +force_install_dir /home/steam/server \
  +app_update <APP_ID> validate +quit

Systemd Service Pattern

[Service]
Type=simple
User=steam
Restart=on-failure
ExecStart=/home/steam/server/start.sh

DNS

  • Use local gateway/Pi-hole (e.g. 10.10.0.1) not 8.8.8.8
  • Set via: pct set <CTID> --nameserver 10.10.0.1

GPU

  • No GPU passthrough needed for headless game servers

Reference

  • Existing LXC creation script: gaming/scripts/lxc-docker-create.sh (adapt, minus Docker parts)