No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-26 06:33:04 -04:00
.env.example Add Coolify steam-headless stack for Moonlight play. 2026-07-26 06:20:09 -04:00
.gitignore Add Coolify steam-headless stack for Moonlight play. 2026-07-26 06:20:09 -04:00
docker-compose.yml Drop /dev/fuse and /dev/uinput mounts for Coolify LXC. 2026-07-26 06:32:59 -04:00
README.md Align README with no host device mounts for Coolify LXC. 2026-07-26 06:33:04 -04:00

Headless gameserver

Coolify Compose stack: Steam + Sunshine + noVNC (josh5/steam-headless) on the hserver GT 1030.

Friends play with Netbird + Moonlight. No Netbird/SSO in this compose.

Architecture

Path How
Play Moonlight → Sunshine ports on the Coolify host Netbird IP
Setup Coolify domain → noVNC (8083) → Steam login / install games
GPU runtime: nvidia, shared with host Ollama (~650 MiB VRAM)

Do not put Moonlight through Cloudflare Tunnel or the Coolify HTTPS domain. Stream stays on Netbird.

Prerequisites (Coolify host / LXC)

Before first deploy:

  1. nvidia-smi works inside the Coolify Docker host (LXC must see the GT 1030).
  2. nvidia-container-toolkit installed (runtime: nvidia works).
  3. Host /dev/fuse / /dev/uinput are not mounted — Coolify LXCs often lack them and that aborts deploy. Moonlight handles remote input.
  4. Netbird client on the same host that publishes Sunshine ports.
  5. Leave host Ollama running. Prefer 720p / low, H.264, one Moonlight client on this card.

If GPU is only on the Proxmox host and not in the Coolify LXC, bind/pass NVIDIA devices into that LXC first.

Coolify deploy

  1. Create a Docker Compose resource from this Git repo.
  2. Assign a domain to service steam-headless, port 8083.
  3. Configure env fully, then trigger one deploy.
  4. Do not add empty DOMAIN / PUBLIC_URL / password overrides that blank Coolify magic vars.
  5. Open the Coolify domain (noVNC) → log into Steam → add /mnt/games as a Steam library → install games.
  6. Pair Moonlight (Sunshine user/pass from Coolify SERVICE_PASSWORD_SUNSHINE, or PIN from Sunshine UI on https://<Netbird-IP>:47990).

Friend join (play)

  1. Connect to your Netbird network.
  2. Install Moonlight.
  3. Add host = hserver Netbird IP (not the Coolify web domain).
  4. Pair once, then connect and launch the game from the streamed desktop / Sunshine apps.

Published Sunshine ports

Proto Ports
TCP 47984, 47989, 47990, 48010
UDP 4799848000, 48010

Port 8083 is not published; Coolify proxies it via SERVICE_URL_STEAM_HEADLESS_8083.

GT 1030 + Ollama

~2 GiB VRAM total; Ollama holds ~650 MiB. Remaining ~1.3 GiB is enough for light / party games at low settings. Heavy 3D titles will not be comfortable on this card.

Volumes

Volume Mount Purpose
steam-home /home/default Desktop user + Steam config
steam-games /mnt/games Game library (add in Steam)