Request: Steam (Headless) on CasaOS

Request: I am using Zima OS on my ZimaCube with an A2000 graphics card. It would be fantastic not only for that specific hardware to run „Steam“ headless.

I found actually two projects which seem to make this possible, although (at least for me) it is a rather complex dockerfile. The goal would be to install all games on my NAS and play the games by using SteamLink, or as with some clients directly from the Steam App (shows link automatically to the remote „server“).

An optional possibility would be „Games on Whales“ GitHub - games-on-whales/gow: A collection of Dockerized games and apps like Steam, Firefox and Retroarch - which uses Moonlight, Sunshine instead of SteamLink.

1 Like

EDIT: I am aware that a LinuxServer variant exists, although this one is not headless - it uses instead kasm, which is a nightmare for remote launching, plus it does not support currently nvidia graphics cards. (GitHub - linuxserver/docker-steamos: Vanilla Arch modified into SteamOS with web based Desktop access, useful for remote play and lower end games)

Maybe a little late to the party here, but I managed to get Steam-Headless running on ZimaOS, as a custom app (import a docker compose file) so hopefully should work on CasaOS too?
Here’s my compose file, edit to suit your system (passwords/usernames/mounts etc)
I couldn’t get inputs to work in sunshine, so I have it disabled, but I use steam link to connect to it in desktop mode instead. I should also point out I’ve set this up with an nvidia rtx 3060ti, but should pick up whatever card you have if you select it in the setup dialog after importing the file.
Hope this is of help to someone

name: steam-headless
services:
  steam-headless:
    cap_add:
      - NET_ADMIN
      - SYS_ADMIN
      - SYS_NICE
    cpu_shares: 90
    command: []
    container_name: steam
    deploy:
      resources:
        limits:
          memory: 16598376448
        reservations:
          devices:
            - count: all
              capabilities:
                - gpu
    device_cgroup_rules:
      - c 13:* rmw
    devices:
      - /dev/fuse:/dev/fuse
    environment:
      - DISPLAY=:55
      - ENABLE_EVDEV_INPUTS=true
      - ENABLE_STEAM=true
      - ENABLE_SUNSHINE=false
      - ENABLE_VNC_AUDIO=true
      - FORCE_X11_DUMMY_CONFIG=false
      - MODE=primary
      - NVIDIA_DRIVER_CAPABILITIES=all
      - NVIDIA_DRIVER_VERSION=
      - NVIDIA_VISIBLE_DEVICES=all
      - PGID=1000
      - PORT_NOVNC_WEB=6954
      - PUID=1000
      - STEAM_ARGS=silent
      - SUNSHINE_PASS=password
      - SUNSHINE_USER=admin
      - UMASK=000
      - USER_PASSWORD=password
      - WEB_UI_MODE=vnc
    image: josh5/steam-headless:latest
    ipc: host
    labels:
      icon: https://icon.casaos.io/main/all/steam-headless.png
    restart: unless-stopped
    runtime: nvidia
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    ulimits:
      nofile:
        soft: 1024
        hard: 524288
    volumes:
      - type: bind
        source: /DATA/AppData/steam
        target: /home/default
      - type: bind
        source: /DATA/AppData/steam/games
        target: /mnt/games
      - type: bind
        source: /tmp/.X11-unix/
        target: /tmp/.X11-unix
      - type: bind
        source: /tmp/pulse/
        target: /tmp/pulse
      - type: bind
        source: /media/SSD1
        target: /mnt/SSD
    ports: []
    network_mode: host
    privileged: false
x-casaos:
  author: self
  category: self
  hostname: ""
  icon: https://icon.casaos.io/main/all/steam-headless.png
  index: /
  is_uncontrolled: false
  port_map: "6954"
  scheme: http
  store_app_id: steam-headless
  title:
    custom: ""
    en_us: steam-headless