Steam-Headless / docker-steam-headless

A Headless Steam Docker image supporting NVIDIA GPU and accessible via Web UI
GNU General Public License v2.0
730 stars 79 forks source link

[Bug]: Uncaught TypeError: this.audio.fastSeek is not a function #146

Open Kreakdude opened 2 months ago

Kreakdude commented 2 months ago

Describe the Bug

It popped up after I first connected via web browser while I was installing steam. It happened again when I first tried to install a game (Geometry Wars) as a first test.

noVNC encountered an error:

Uncaught TypeError: this.audio.fastSeek is not a function http://192.168.86.49:58083/web/app/webaudio.js:146:75 TypeError: this.audio.fastSeek is not a function at WebAudio.syncInterval (http://192.168.86.49:58083/web/app/webaudio.js:146:75) at http://192.168.86.49:58083/web/app/webaudio.js:53:78

version: "3.9"

services:
  steam-headless:
    image: josh5/steam-headless:latest
    restart: unless-stopped
    shm_size: ${SHM_SIZE}
    ipc: host # Could also be set to 'shareable'
    ulimits:
      nofile:
        soft: 1024
        hard: 524288
    cap_add:
      - NET_ADMIN
      - SYS_ADMIN
      - SYS_NICE
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined

    # GPU PASSTHROUGH
    # deploy:
    #   resources:
    #     reservations:
    #       # Enable support for NVIDIA GPUs.
    #       # 
    #       # Ref: https://docs.docker.com/compose/gpu-support/#enabling-gpu-access-to-service-containers
    #       devices:
    #         - capabilities: [gpu]
    #           device_ids: ["${NVIDIA_VISIBLE_DEVICES}"]

    # NETWORK:
    network_mode: host
    hostname: ${NAME}
    extra_hosts:
      - "${NAME}:127.0.0.1"

    # ENVIRONMENT:
    ## Read all config variables from the .env file
    environment:
      # System
      - TZ=${TZ}
      - USER_LOCALES=${USER_LOCALES}
      - DISPLAY=${DISPLAY}
      # User
      - PUID=${PUID}
      - PGID=${PGID}
      - UMASK=${UMASK}
      - USER_PASSWORD=${USER_PASSWORD}
      # Mode
      - MODE=${MODE}
      # Web UI
      - WEB_UI_MODE=${WEB_UI_MODE}
      - ENABLE_VNC_AUDIO=${ENABLE_VNC_AUDIO}
      - PORT_NOVNC_WEB=${PORT_NOVNC_WEB}
      - NEKO_NAT1TO1=${NEKO_NAT1TO1}
      # Steam
      - ENABLE_STEAM=${ENABLE_STEAM}
      - STEAM_ARGS=${STEAM_ARGS}
      # Sunshine
      - ENABLE_SUNSHINE=${ENABLE_SUNSHINE}
      - SUNSHINE_USER=${SUNSHINE_USER}
      - SUNSHINE_PASS=${SUNSHINE_PASS}
      # Xorg
      - ENABLE_EVDEV_INPUTS=${ENABLE_EVDEV_INPUTS}
      # Nvidia specific config
      - NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES}
      - NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES}
      - NVIDIA_DRIVER_VERSION=${NVIDIA_DRIVER_VERSION}

    # DEVICES:
    # devices:
      # Use the host fuse device [REQUIRED].
      # - /dev/fuse
      # Add the host uinput device [REQUIRED].
      # - /dev/uinput
      # Add AMD/Intel HW accelerated video encoding/decoding devices [OPTIONAL].
      #- /dev/dri
      # Add NVIDIA HW accelerated devices [OPTIONAL - If you use the nvidia container toolkit, this is not needed].
      #- /dev/nvidia0
      #- /dev/nvidiactl
      #- /dev/nvidia-modeset
      #- /dev/nvidia-uvm
      #- /dev/nvidia-uvm-tools
      #- /dev/nvidia-caps/nvidia-cap1
      #- /dev/nvidia-caps/nvidia-cap2
    # Ensure container access to devices 13:*
    device_cgroup_rules:
      - 'c 13:* rmw'

    # VOLUMES:
    volumes:
      # The location of your home directory.
      - config:/home/default/:rw

      # The location where all games should be installed.
      # This path needs to be set as a library path in Steam after logging in.
      # Otherwise, Steam will store games in the home directory above.
      - games:/mnt/games/:rw

      # The Xorg socket. This will be shared with other containers so they can access the X server.
      # Select only one option or leave commented out to not share the Xorg socket with any other Docker containers.
      #   Option #1) Start a X server in the container to share with any other containers.
      #- /opt/container-data/steam-headless/.X11-unix/:/tmp/.X11-unix/:rw
      #   Option #2) Use an existing X server running on the host.
      #- /tmp/.X11-unix/:/tmp/.X11-unix/:rw

      # Pulse audio socket. This will be shared with other containers so they can access the audio sink.
      # Leave commented out to not share the pulse socket with any other Docker containers.
      #- /opt/container-data/steam-headless/pulse/:/tmp/pulse/:rw

volumes:
  config:
  games:

I used the default env files as well, just removed the host's paths for volume mounts. I'm running proxmox to an ubuntu container to docker with this compose file plugged into portainer. I have a Radeon GPU. Screenshot 2024-04-29 151816

Steps to Reproduce

No response

Expected Behavior

No response

Screenshots

No response

Relevant Settings

No response

Version

[ /etc/cont-init.d/95-setup_wol.sh: executing... ]

Platform

Distrubution: Ubuntu - 23.10 (Mantic Minotaur) Linux Kernel: 6.5.11-8-pve x86_64 x86_64 GNU/Linux GPU Driver versions: Command 'nvidia-smi' not found Docker: Docker version 24.0.5, build 24.0.5-0ubuntu1 Docker-compose: docker-compose version 1.29.2, build unknown

Relevant log output

No response

alansari commented 1 month ago

check your .env file, looks like its listening to novnc on 58083 which was a mistype in the docs a while back. Look for this line PORT_NOVNC_WEB=58083 and change it to PORT_NOVNC_WEB=8083 Also if you don't plan on using audio in your browser i would disable audio alltogether with ENABLE_VNC_AUDIO=false but thats a personal prefrence.