123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- {% set tpl = ix_lib.base.render.Render(values) %}
- {% set c1 = tpl.add_container(values.consts.steam_headless_container_name, "image") %}
- {% do c1.set_ipc_mode("host") %}
- {% do c1.add_device_cgroup_rule("c 13:* rwm") %}
- {% do c1.remove_security_opt("no-new-privileges") %}
- {% do c1.add_security_opt("seccomp", "unconfined") %}
- {% do c1.add_security_opt("apparmor", "unconfined") %}
- {% do c1.add_caps([
- "AUDIT_WRITE",
- "CHOWN",
- "DAC_OVERRIDE",
- "FOWNER",
- "FSETID",
- "KILL",
- "MKNOD",
- "NET_ADMIN",
- "SETGID",
- "SETUID",
- "SYS_ADMIN",
- "SYS_NICE",
- "SYS_RESOURCE",
- ]) %}
- {% do c1.set_shm_size_mb(values.steam_headless.shm_size_mb) %}
- {% do c1.set_hostname(values.steam_headless.name) %}
- {% do c1.add_extra_host(values.steam_headless.name, "127.0.0.1") %}
- {% do c1.add_port(values.network.vnc_port) %}
- {% do c1.healthcheck.set_test("curl", {"port": values.network.vnc_port.port_number}) %}
- {% do c1.environment.add_user_envs(values.steam_headless.additional_envs) %}
- {% do c1.environment.add_env("WEB_UI_MODE", "vnc") %}
- {% do c1.environment.add_env("DISPLAY", values.steam_headless.display or ":99") %}
- {% do c1.environment.add_env("USER_PASSWORD", values.steam_headless.user_password) %}
- {% do c1.environment.add_env("PORT_NOVNC_WEB", values.network.vnc_port.port_number) %}
- {% do c1.environment.add_env("HOST_DBUS", true) %}
- {% do c1.environment.add_env("ENABLE_EVDEV_INPUTS", values.steam_headless.enable_ev_dev_inputs) %}
- {% do c1.environment.add_env("MODE", values.steam_headless.mode) %}
- {% if values.steam_headless.mode == "primary" %}
- {% do c1.environment.add_env("FORCE_X11_DUMMY_CONFIG", values.steam_headless.force_x11_dummy_config) %}
- {% endif %}
- {% if values.steam_headless.steam.enable %}
- {% do c1.environment.add_env("ENABLE_STEAM", true) %}
- {% do c1.environment.add_env("STEAM_ARGS", values.steam_headless.steam.args|unique|list|join(" ")) %}
- {% endif %}
- {% if values.steam_headless.sunshine.enable %}
- {% do c1.environment.add_env("ENABLE_SUNSHINE", true) %}
- {% do c1.environment.add_env("SUNSHINE_USER", values.steam_headless.sunshine.username) %}
- {% do c1.environment.add_env("SUNSHINE_PASS", values.steam_headless.sunshine.password) %}
- {% endif %}
- {# TODO: Does one affect another?
- MODE: primary/secondary
- FORCE_X11_DUMMY_CONFIG: true/false
- WEB_UI_MODE: vnc/neko
- #}
- {% do c1.devices.add_device("/dev/fuse", "/dev/fuse") %}
- {% if values.steam_headless.enable_ev_dev_inputs %}
- {% do c1.devices.add_device("/dev/uinput", "/dev/uinput") %}
- {% endif %}
- {% do c1.add_storage("/run/dbus", {"type": "host_path", "read_only": true, "host_path_config": {"path": "/run/dbus"}}) %}
- {% do c1.add_storage("/home/default", values.storage.home) %}
- {% do c1.add_storage("/mnt/games", values.storage.games) %}
- {% do c1.add_storage("/tmp/.X11-unix", values.storage.x11_socket) %}
- {% do c1.add_storage("/tmp/pulse", values.storage.pulse_socket) %}
- {% for store in values.storage.additional_storage %}
- {% do c1.add_storage(store.mount_path, store) %}
- {% endfor %}
- {% do tpl.portals.add(values.network.vnc_port) %}
- {{ tpl.render() | tojson }}
|