From abb9f3319baddd99f62992c49c289978118517ec Mon Sep 17 00:00:00 2001 From: Joachim Friberg Date: Wed, 18 Mar 2026 20:06:21 +0100 Subject: [PATCH] Untrack steam-headless from caddy-autogen branch --- Apps/steam-headless/README.md | 72 ---------------------- Apps/steam-headless/docker-compose.yaml | 81 ------------------------- 2 files changed, 153 deletions(-) delete mode 100644 Apps/steam-headless/README.md delete mode 100644 Apps/steam-headless/docker-compose.yaml diff --git a/Apps/steam-headless/README.md b/Apps/steam-headless/README.md deleted file mode 100644 index 057abd0..0000000 --- a/Apps/steam-headless/README.md +++ /dev/null @@ -1,72 +0,0 @@ -# Steam Headless - -Steam Headless kör en webbaserad Linux-desktop med Steam i container, baserat på LinuxServer image `lscr.io/linuxserver/steam`. - -## Syfte - -- Ge enkel Steam-access via webbläsare i ZimaOS. -- Hålla v1 med minsta möjliga privilegier. -- Förbereda en separat senare fas för Moonlight-fokuserad streaming. - -## Portar - -- `3000/tcp` (HTTP desktop): `${STEAM_HTTP_PORT:-3000}` -- `3001/tcp` (HTTPS desktop): `${STEAM_HTTPS_PORT:-3001}` - -## Volymer - -- `/DATA/AppData/$AppID/config -> /config` - -All Steam-data (profil, cache, installerade spel) lagras under appens egna AppData-sökväg. - -## Privilegier och säkerhet - -Aktiva säkerhetsinställningar i denna app: - -- `security_opt: ["seccomp:unconfined", "no-new-privileges:true"]` -- `cap_drop: ["ALL"]` -- Ingen `privileged: true` -- Ingen `network_mode: host` -- Ingen mount av `/var/run/docker.sock` - -Motivering: - -- LinuxServer Steam använder sandbox/bubblewrap-mönster som normalt kräver `seccomp:unconfined` för att spel/launcher ska fungera stabilt. -- `no-new-privileges:true` och `cap_drop: ["ALL"]` används för att kompensera med lägsta möjliga capability-yta i övrigt. - -Kända tradeoffs: - -- På vissa Debian/Ubuntu-hostar kan även `apparmor:unconfined` behövas. Detta är inte default här av least-privilege-skäl. -- Browser-vägen (KasmVNC) är enkel men ger inte samma latens/gamepad-egenskaper som Moonlight. - -## Säkerhetsavvikelser - -Denna app använder en avvikelse från strikt seccomp-default: - -- `seccomp:unconfined` - -Varför det behövs: - -- För kompatibilitet med LinuxServer Steam runtime och dess sandboxade processer. - -Alternativ som utvärderats: - -- Standard seccomp-profil: blockar delar av förväntad processmodell för Steam/spel. -- Full `privileged: true`: avvisat på grund av större attackyta. - -Risker: - -- Minskad syscall-filtrering jämfört med default seccomp-profil. -- Om container komprometteras finns större möjlighet att anropa kernel-funktioner än med strikt seccomp. - -Riskreducering: - -- Inga host-network eller docker-socket mounts. -- Capability-surface minimerad med `cap_drop: ["ALL"]`. -- Isolerad data-path under `/DATA/AppData/$AppID/...`. - -## Driftnoteringar - -- För GPU-acceleration kan extra device-mounts krävas beroende på host och drivrutiner. -- Om HTTPS används på `3001` kan webbläsaren visa certifikatvarning vid första anslutning. -- Rekommenderad nästa fas: separat Moonlight/Sunshine-spår som opt-in, med egen riskprofil. diff --git a/Apps/steam-headless/docker-compose.yaml b/Apps/steam-headless/docker-compose.yaml deleted file mode 100644 index 6b41490..0000000 --- a/Apps/steam-headless/docker-compose.yaml +++ /dev/null @@ -1,81 +0,0 @@ -name: steam-headless - -services: - steam: - image: lscr.io/linuxserver/steam:version-04.02.26 - container_name: steam-headless - restart: unless-stopped - shm_size: "1gb" - - environment: - TZ: ${TZ} - PUID: ${PUID} - PGID: ${PGID} - STEAM_HTTP_PORT: ${STEAM_HTTP_PORT:-3000} - STEAM_HTTPS_PORT: ${STEAM_HTTPS_PORT:-3001} - - ports: - - target: 3000 - published: ${STEAM_HTTP_PORT:-3000} - protocol: tcp - - target: 3001 - published: ${STEAM_HTTPS_PORT:-3001} - protocol: tcp - - volumes: - - type: bind - source: /DATA/AppData/$AppID/config - target: /config - - # Required by LinuxServer Steam for bubblewrap/game namespaces. - security_opt: - - seccomp:unconfined - - no-new-privileges:true - - # Keep capability surface minimal unless a specific game requires otherwise. - cap_drop: - - ALL - - x-casaos: - envs: - - container: TZ - description: - en_us: Timezone, for example Europe/Stockholm - - container: PUID - description: - en_us: User ID for filesystem permissions - - container: PGID - description: - en_us: Group ID for filesystem permissions - ports: - - container: "3000" - description: - en_us: Steam desktop GUI over HTTP - - container: "3001" - description: - en_us: Steam desktop GUI over HTTPS - volumes: - - container: /config - description: - en_us: Steam home, configuration, and game files - -x-casaos: - architectures: - - amd64 - main: steam - category: Games - author: Zima Apps Team - developer: linuxserver.io - icon: https://cdn.simpleicons.org/steam - tagline: - en_us: Browser-based Steam desktop container for ZimaOS - description: - en_us: >- - Runs LinuxServer Steam as a web-accessible desktop session. - Optimized for amd64 and least-privilege defaults, with optional future - Moonlight-focused expansion in a later phase. - title: - en_us: Steam Headless - index: / - port_map: ${STEAM_HTTPS_PORT:-3001} - scheme: https