-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathreadme-vars.yml
More file actions
114 lines (113 loc) · 6.93 KB
/
readme-vars.yml
File metadata and controls
114 lines (113 loc) · 6.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---
# project information
project_name: steam
project_url: "https://store.steampowered.com/"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/steam-logo.png"
project_blurb: "[Steam]({{ project_url }}) is the ultimate destination for playing, discussing, and creating games."
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_blurb_optional_extras_enabled: false
project_categories: "Games"
# supported architectures
available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "latest"}
# development version
development_versions: false
# container parameters
common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- {vol_path: "/config", vol_host_path: "/path/to/config", desc: "Users home directory in the container, stores all files and games."}
param_usage_include_ports: true
param_ports:
- {external_port: "3000", internal_port: "3000", port_desc: "Steam desktop gui HTTP must be proxied."}
- {external_port: "3001", internal_port: "3001", port_desc: "Steam desktop gui HTTPS."}
security_opt_param: true
security_opt_param_vars:
- {run_var: "seccomp=unconfined", compose_var: "seccomp:unconfined", desc: "This is needed to allow bwrap to use namespacing for games."}
opt_security_opt_param: true
opt_security_opt_param_vars:
- {run_var: "apparmor=unconfined", compose_var: "apparmor:unconfined", desc: "For Debian/Ubuntu hosts Steam needs elevated perms that AppArmor blocks."}
custom_params:
- {name: "shm-size", name_compose: "shm_size", value: "1gb", desc: "Recommended for all desktop images."}
# Selkies blurb settings
selkies_blurb: true
show_nvidia: true
# application setup block
app_setup_block_enabled: true
app_setup_block: "The application can be accessed at:\n\n* https://yourhost:3001/\n\n>[!NOTE]\n>This image is for a web accessible version of Steam to be played through a web browser it is in development and has oddities, if you want a fully flushed out Moonlight couch solution please consider [Wolf](https://games-on-whales.github.io/wolf/stable/user/quickstart.html) or another non Docker solution. Moonlight clients have major advantages over using a web browser.\n\n## GPU Support\n\nUsing an Intel/AMD GPU is usually as easy as just passing `--device /dev/dri:/dev/dri`.\nIf you have multiple GPUs you need to pass both the setting for the render node and the encoder IE for the second GPU:\n\n```\n-e DRINODE=/dev/dri/renderD129 \\\n-e DRI_NODE=/dev/dri/renderD129\n```\n\nNvidia support only works on 580 and up full proprietary drivers (no MIT/GPL) with `nvidia-drm.modeset=1` kernel parameter set. You must ensure the card is initialized before running a container so on headless systems run `nvidia-modprobe --modeset` from the host even with this kernel parameter set, this only needs to be run once per boot.\n\nThese modifications for NVIDIA are for Wayland to function properly and have nothing to do with the Docker runtime. If you are using compose it is important to run `sudo nvidia-ctk runtime configure --runtime=docker` this is a persistent setting and only needs to run once.\n\n## Gamepad support\n\nThis container leverages a userspace gamepad interposer to provide gamepad support. To use a gamepad always force Proton in \"Properties>Compatibility\" even for Linux native games, \"Proton Hotfix\" is a good default selection. You cannot use the \"Steam Input\" feature on any game as the uinput socket and HID do not exist.\n\n## Gaming mode\n\nAn absolute must for mouse and keyboard input is sending relative mouse input from the browser, you will need to use the \"Gaming Mode\" which is a small crosshair in the top right of the sidebar. This runs in fullscreen and traps you in the window, to exit this mode hold down escape for 3 seconds.\n\n## Game Launching\n\nIncluded in this image are tools for managing [Proton versions](https://davidotek.github.io/protonup-qt/) and a [command line launcher](https://github.com/Open-Wine-Components/umu-launcher). This means once a game or application is installed via Steam it can be directly launched on init by creating a config file and modifying `/config/.config/labwc/autostart` to run `umu-run` instead of Steam.: \n\n```\numu-run --config /config/game.toml\n```\n\n```toml\n[umu]\nprefix = \"/config/game\"\nexe = \"/config/Desktop/game/game.exe\"\nproton = \"/config/.local/share/Steam/compatibilitytools.d/GE-Proton-version\"\ngame_id = \"0\"\n```\n\nThis facilitates custom home directories with pre-configured runtimes and gamefiles for baking images outside of using the Steam launcher. \n"
# init diagram
init_diagram: |
"steam:latest": {
docker-mods
base {
fix-attr +\nlegacy cont-init
}
docker-mods -> base
legacy-services
custom services
init-services -> legacy-services
init-services -> custom services
custom services -> legacy-services
legacy-services -> ci-service-check
init-migrations -> init-adduser
init-os-end -> init-config
init-selkies-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-selkies -> init-nginx
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-os-end -> init-selkies
init-nginx -> init-selkies-config
init-video -> init-selkies-end
init-custom-files -> init-services
init-selkies-config -> init-video
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-dbus
svc-xorg -> svc-dbus
svc-dbus -> legacy-services
init-services -> svc-de
svc-nginx -> svc-de
svc-xorg -> svc-de
svc-de -> legacy-services
init-services -> svc-docker
svc-docker -> legacy-services
init-services -> svc-nginx
svc-nginx -> legacy-services
init-services -> svc-pulseaudio
svc-pulseaudio -> legacy-services
init-services -> svc-selkies
svc-dbus -> svc-selkies
svc-nginx -> svc-selkies
svc-pulseaudio -> svc-selkies
svc-xorg -> svc-selkies
svc-selkies -> legacy-services
init-services -> svc-watchdog
svc-watchdog -> legacy-services
init-services -> svc-xorg
svc-xorg -> legacy-services
init-services -> svc-xsettingsd
svc-nginx -> svc-xsettingsd
svc-xorg -> svc-xsettingsd
svc-xsettingsd -> legacy-services
}
Base Images: {
"baseimage-selkies:debiantrixie" <- "baseimage-debian:trixie"
}
"steam:latest" <- Base Images
# changelog
changelogs:
- {date: "04.02.26:", desc: "Add ProtonUp Qt for runtime management and umu-run for custom auto game launching."}
- {date: "17.01.26:", desc: "Document Nvidia support."}
- {date: "09.01.26:", desc: "Initial Version."}