Block a user
wivrn-steam-headless (latest)
Published 2026-03-04 15:03:10 +01:00 by millaguie
Installation
docker pull tea.millaguie.net/millaguie/wivrn-steam-headless:latestsha256:0cd02d5c6ef6fbbb57e2fb4064a9d626ba2afc5e0576d5dd008487ecb982cd69
Image Layers
| # debian.sh --arch 'amd64' out/ 'trixie' '@1771804800' |
| LABEL maintainer=Josh.5 <jsunnex@gmail.com> |
| ARG DEBIAN_FRONTEND=noninteractive |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && sed -i '/^Components: main/ s/$/ contrib non-free/' /etc/apt/sources.list.d/debian.sources && echo # buildkit |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install and configure locals ****" && apt-get install -y --no-install-recommends locales && echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && echo 'en_GB.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install certificates ****" && apt-get install -y --reinstall ca-certificates && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install tools ****" && apt-get install -y --no-install-recommends bash bash-completion curl git jq less man-db plocate nano net-tools p7zip-full patch pciutils pkg-config procps psmisc psutils rsync screen sudo unzip vim wget xmlstarlet xz-utils && echo "**** Install python ****" && apt-get install -y --no-install-recommends python3 python3-numpy python3-pip python3-setuptools python3-venv && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| ENV PUID=99 PGID=100 UMASK=000 USER=default USER_PASSWORD=password USER_HOME=/home/default TZ=Pacific/Auckland USER_LOCALES=en_US.UTF-8 UTF-8 |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Configure default user '${USER}' ****" && mkdir -p ${USER_HOME} && useradd -d ${USER_HOME} -s /bin/bash ${USER} && chown -R ${USER} ${USER_HOME} && echo "${USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && echo # buildkit |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install supervisor ****" && apt-get install -y supervisor && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| ENV XORG_SOCKET_DIR=/tmp/.X11-unix XDG_RUNTIME_DIR=/tmp/.X11-unix/run XDG_SESSION_TYPE=x11 FORCE_X11_DUMMY_CONFIG=false |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install X Server requirements ****" && apt-get install -y --no-install-recommends avahi-utils dbus-x11 libxcomposite-dev libxcursor1 wmctrl libfuse2 x11-utils x11-xfs-utils x11-xkb-utils x11-xserver-utils x11vnc xauth xbindkeys xclip xcvt xdotool xfonts-base xinit xorg xserver-xorg-core xserver-xorg-input-evdev xserver-xorg-input-libinput xserver-xorg-legacy xserver-xorg-video-all xserver-xorg-video-dummy && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| ENV PULSE_SOCKET_DIR=/tmp/pulse PULSE_SERVER=unix:/tmp/pulse/pulse-socket |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install pulseaudio requirements ****" && apt-get install -y --no-install-recommends pulseaudio alsa-utils libasound2 libasound2-plugins && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install desktop requirements ****" && apt-get install -y --no-install-recommends libdbus-1-3 libegl1 libgtk-3-0 libgtk2.0-0 libsdl2-2.0-0 && echo "**** Install desktop environment ****" && apt-get install -y fonts-vlgothic gedit imagemagick msttcorefonts xdg-utils xfce4 xfce4-terminal && rm -f /usr/share/applications/software-properties-drivers.desktop /usr/share/applications/xfce4-about.desktop /usr/share/applications/xfce4-session-logout.desktop && [ -f /usr/share/applications/xfce4-accessibility-settings.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/xfce4-accessibility-settings.desktop || true && [ -f /usr/share/applications/xfce4-color-settings.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/xfce4-color-settings.desktop || true && [ -f /usr/share/applications/xfce4-mail-reader.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/xfce4-mail-reader.desktop || true && [ -f /usr/share/applications/xfce4-web-browser.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/xfce4-web-browser.desktop || true && [ -f /usr/share/applications/vim.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/vim.desktop || true && [ -f /usr/share/applications/thunar-settings.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/thunar-settings.desktop || true && [ -f /usr/share/applications/thunar.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/thunar.desktop || true && [ -f /usr/share/applications/pavucontrol.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/pavucontrol.desktop || true && [ -f /usr/share/applications/x11vnc.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/x11vnc.desktop || true && [ -f /usr/share/applications/display-im6.q16.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/display-im6.q16.desktop || true && [ -f /usr/share/applications/debian-xterm.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/debian-xterm.desktop || true && [ -f /usr/share/applications/debian-uxterm.desktop ] && sed -i '/[Desktop Entry]/a\NoDisplay=true' /usr/share/applications/debian-uxterm.desktop || true && [ -f /usr/share/applications/xfce4-appfinder.desktop ] && sed -i 's/^Categories=.*$/Categories=System;/' /usr/share/applications/xfce4-appfinder.desktop || true && [ -f /usr/share/applications/thunar-bulk-rename.desktop ] && sed -i 's/^Categories=.*$/Categories=System;/' /usr/share/applications/thunar-bulk-rename.desktop || true && [ -f /usr/share/applications/org.gnome.gedit.desktop ] && sed -i 's/^Categories=.*$/Categories=System;/' /usr/share/applications/org.gnome.gedit.desktop || true && echo "**** Install WoL Manager requirements ****" && apt-get install -y tcpdump xprintidle && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| ENV XDG_DATA_DIRS=/home/default/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/ |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install D-Bus system services for desktop integration ****" && apt-get install -y --no-install-recommends accountsservice polkitd pkexec && echo "**** Install flatpak support ****" && apt-get install -y --no-install-recommends flatpak gnome-software-plugin-flatpak && echo "**** Configure flatpak ****" && flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo && dpkg-statoverride --update --add root root 0755 /usr/bin/bwrap && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| ARG NODE_VERSION=v20 |
| ARG FRONTEND_VERSION=a8eb92f |
| RUN |3 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f /bin/sh -c echo "**** Install Node ${NODE_VERSION} ****" && mkdir -p /tmp/nodejs && rm -rf /opt/nodejs && wget -qO /tmp/nodejs/nodejs.tar.xz "https://nodejs.org/dist/latest-${NODE_VERSION:?}.x/node-$(wget -qO- https://nodejs.org/dist/latest-${NODE_VERSION:?}.x/ | sed -nE 's|.*>node-(.*)-linux-x64\.tar.xz</a>.*|\1|p')-linux-x64.tar.xz" && tar -xJf /tmp/nodejs/nodejs.tar.xz -C /tmp/nodejs --strip-components=1 && mv /tmp/nodejs /opt/nodejs && ln -sf /opt/nodejs/bin/node /usr/local/bin/node && ln -sf /opt/nodejs/bin/npm /usr/local/bin/npm && ln -sf /opt/nodejs/bin/npx /usr/local/bin/npx && echo "**** Fetch Web Frontend ****" && mkdir -p /opt && cd /opt && rm -rf /opt/frontend && git clone https://github.com/Steam-Headless/frontend.git --branch master /opt/frontend && cd /opt/frontend && git checkout ${FRONTEND_VERSION} 2> /dev/null && git submodule init && git submodule update --depth 1 --recursive && rm -rf /opt/frontend/.git && echo "**** Configure Web Frontend ****" && echo '<!DOCTYPE html>' > /opt/frontend/index.html && echo '<html><head><meta http-equiv="refresh" content="0;url=./web/"></head><body><p>If you are not redirected, <a href="./web/">click here</a>.</p></body></html>' >> /opt/frontend/index.html && chmod -R 755 /opt/frontend && convert /opt/frontend/web/images/icons/novnc-ios-180.png -resize "128x128" /tmp/steam-headless.png && xdg-icon-resource install --novendor --size 128 /tmp/steam-headless.png && echo "**** Section cleanup ****" && rm -f /tmp/steam-headless.png # buildkit |
| ARG WEBSOCKETIFY_VERSION=0.11.0 |
| RUN |4 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f WEBSOCKETIFY_VERSION=0.11.0 /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install Websockify dependencies ****" && apt-get install -y python3-numpy python3-requests python3-jwcrypto python3-redis && echo "**** Fetch Websockify ****" && cd /tmp && wget -O /tmp/websockify.tar.gz https://github.com/novnc/websockify/archive/v${WEBSOCKETIFY_VERSION}.tar.gz && echo "**** Extract Websockify ****" && cd /tmp && tar -xvf /tmp/websockify.tar.gz && echo "**** Install Websockify to Web Frontend path ****" && cd /tmp && mv -v /tmp/websockify-${WEBSOCKETIFY_VERSION} /opt/frontend/utils/websockify && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /tmp/websockify-* /tmp/websockify.tar.gz # buildkit |
| RUN |4 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f WEBSOCKETIFY_VERSION=0.11.0 /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install audio streaming deps ****" && apt-get install -y --no-install-recommends bzip2 gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-libav gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio gstreamer1.0-qt5 gstreamer1.0-tools gstreamer1.0-vaapi gstreamer1.0-x libgstreamer1.0-0 libncursesw6 libopenal1 libsdl-image1.2 libsdl-ttf2.0-0 libsdl1.2debian libsndfile1 ucspi-tcp && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| RUN |4 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f WEBSOCKETIFY_VERSION=0.11.0 /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install Intel media drivers and VAAPI ****" && apt-get install -y --no-install-recommends intel-media-va-driver-non-free i965-va-driver-shaders libva2 && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| RUN |4 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f WEBSOCKETIFY_VERSION=0.11.0 /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install useful HW monitoring tools ****" && apt-get install -y --no-install-recommends cpu-x htop vainfo vdpauinfo && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| RUN |4 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f WEBSOCKETIFY_VERSION=0.11.0 /bin/sh -c echo "**** Update apt database ****" && dpkg --add-architecture i386 && apt-get update && echo "**** Install Steam ****" && apt-get install -y --no-install-recommends steam-installer && ln -sf /usr/games/steam /usr/bin/steam && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| RUN |4 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f WEBSOCKETIFY_VERSION=0.11.0 /bin/sh -c echo "**** Update apt database ****" && apt-get update && echo "**** Install Sunshine requirements ****" && apt-get install -y va-driver-all && echo "**** Download latest Sunshine release ****" && SUNSHINE_RELEASE=$(curl -sX GET "https://api.github.com/repos/LizardByte/Sunshine/releases/latest" | jq -r '.tag_name') && SUNSHINE_URL=$(curl -sX GET "https://api.github.com/repos/LizardByte/Sunshine/releases/latest" | jq -r '.assets[] | select(.name | contains("sunshine-debian-trixie-amd64.deb")) | .browser_download_url') && echo "Downloading Sunshine ${SUNSHINE_RELEASE} from ${SUNSHINE_URL}" && wget -O /usr/src/sunshine.deb "${SUNSHINE_URL}" && echo "**** Install Sunshine ****" && apt-get install -y /usr/src/sunshine.deb && echo "**** Section cleanup ****" && apt-get clean autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && echo # buildkit |
| COPY /usr/bin/neko /usr/bin/neko # buildkit |
| COPY /var/www /var/www # buildkit |
| ARG DUMB_INIT_VERSION=1.2.5 |
| ARG DUMB_UDEV_VERSION=64d1427 |
| RUN |6 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f WEBSOCKETIFY_VERSION=0.11.0 DUMB_INIT_VERSION=1.2.5 DUMB_UDEV_VERSION=64d1427 /bin/sh -c echo "**** Install dumb-init ****" && wget --no-check-certificate --no-cookies --quiet -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64 && chmod +x /usr/bin/dumb-init && echo "**** Install dumb-udev ****" && python3 -m pip install --break-system-packages --pre --upgrade --no-cache-dir git+https://github.com/Steam-Headless/dumb-udev.git@${DUMB_UDEV_VERSION} && echo # buildkit |
| COPY overlay / # buildkit |
| ENV DISPLAY_CDEPTH=24 DISPLAY_REFRESH=120 DISPLAY_SIZEH=900 DISPLAY_SIZEW=1600 DISPLAY_VIDEO_PORT=DFP DISPLAY=:55 |
| ENV NVIDIA_DRIVER_CAPABILITIES=all NVIDIA_VISIBLE_DEVICES=all |
| ENV MODE=primary WEB_UI_MODE=vnc ENABLE_VNC_AUDIO=true NEKO_PASSWORD=neko NEKO_PASSWORD_ADMIN=admin ENABLE_STEAM=true STEAM_ARGS=-silent WEBUI_USER= WEBUI_PASS= ENABLE_SUNSHINE=true ENABLE_EVDEV_INPUTS=true ENABLE_WOL_POWER_MANAGER=false ENABLE_SID=false |
| ENV PORT_NOVNC_WEB=8083 NEKO_NAT1TO1= |
| EXPOSE [8083/tcp] |
| RUN |6 DEBIAN_FRONTEND=noninteractive NODE_VERSION=v20 FRONTEND_VERSION=a8eb92f WEBSOCKETIFY_VERSION=0.11.0 DUMB_INIT_VERSION=1.2.5 DUMB_UDEV_VERSION=64d1427 /bin/sh -c chmod +x /entrypoint.sh # buildkit |
| ENTRYPOINT ["/entrypoint.sh"] |
| ARG XRIZER_VERSION=v0.4 |
| ARG DEBIAN_FRONTEND=noninteractive |
| COPY /install/usr/local/bin/ /usr/local/bin/ # buildkit |
| COPY /install/usr/local/lib/ /usr/local/lib/ # buildkit |
| COPY /install/usr/local/share/openxr/ /usr/local/share/openxr/ # buildkit |
| ADD https://github.com/Supreeeme/xrizer/releases/download/v0.4/xrizer-v0.4.zip /tmp/xrizer.zip # buildkit |
| RUN |2 XRIZER_VERSION=v0.4 DEBIAN_FRONTEND=noninteractive /bin/sh -c apt-get update && apt-get install -y --no-install-recommends unzip pipewire && unzip /tmp/xrizer.zip -d /tmp/xrizer && mkdir -p /opt/xrizer/xrizer/bin/linux64 && cp /tmp/xrizer/xrizer-${XRIZER_VERSION}/bin/linux64/vrclient.so /opt/xrizer/xrizer/bin/linux64/ && cp /tmp/xrizer/xrizer-${XRIZER_VERSION}/bin/version.txt /opt/xrizer/xrizer/bin/ && chmod +x /opt/xrizer/xrizer/bin/linux64/vrclient.so && ln -sf /opt/xrizer/xrizer/bin /opt/xrizer/bin && rm -rf /tmp/xrizer /tmp/xrizer.zip && rm -rf /var/lib/apt/lists/* # buildkit |
| COPY scripts/init-wivrn.sh /etc/cont-init.d/91-configure_wivrn.sh # buildkit |
| RUN |2 XRIZER_VERSION=v0.4 DEBIAN_FRONTEND=noninteractive /bin/sh -c chmod +x /etc/cont-init.d/91-configure_wivrn.sh # buildkit |
| EXPOSE map[9757/tcp:{}] |
| EXPOSE map[9757/udp:{}] |
Labels
| Key | Value |
|---|---|
| maintainer | Josh.5 |
| org.opencontainers.image.created | 2026-03-04T13:57:29.878Z |
| org.opencontainers.image.description | |
| org.opencontainers.image.licenses | |
| org.opencontainers.image.revision | 1439c8dffabc58929f5bea36c3fcb37e32f7e8fe |
| org.opencontainers.image.source | https://tea.millaguie.net/millaguie/wivrn-steam-headless |
| org.opencontainers.image.title | wivrn-steam-headless |
| org.opencontainers.image.url | https://tea.millaguie.net/millaguie/wivrn-steam-headless |
| org.opencontainers.image.version | latest |
| source.project | Steam Headless |
| source.service | steam-headless |
| source.version | f9836a5 |
Details
2026-03-04 15:03:10 +01:00
Versions (2)
View all
Container
17
OCI / Docker
linux/amd64
1007 MiB