Skip to content

Unable to Access web frontend` #507

@NodokaHanamura

Description

@NodokaHanamura

Important

Have you searched existing issues (both open and closed) for the issue you are having? If not, please consider doing so - your issue may already be fixed or in discussion!

Bug Information

Bug Description

I cannot access HBWeb via my web browser. I deployed it, and a worker as part of a stack deployed with Cosmos-Cloud (azukaar/cosmos-server). As is standard procedure, I pointed Cosmos' integrated reverse proxy at my container and assigned it an address, matching its' sole port and docker container.

Bug Steps

  1. Deploy HBWeb stack with Cosmos.
  2. Define reverse proxy for Cosmos with the following configuration:
    host domain: scyphozoa.{personal domain}
    Mode: ServApp (Direct Docker proxy)
    Destination: scyphozoa-frontend:9999
    Additional configuration: SSL provided by reverse proxy
  3. Connect to HBWeb via browser.
  4. Recieve HTTP 502 error.

Additional Information

My worker on the same system is able to connect just fine as seen in the log:
2025-10-19 06:59:13 [server] [socket] Worker 'lakanal' has connected with ID 'bj6YSEIKDIom9HWyAAAB'.

Application Information

HandBrake Web Version

  • latest (as of 10-19-25)

Docker Compose

{
  "services": {
    "scyphozoa-frontend": {
      "container_name": "scyphozoa-frontend",
      "image": "ghcr.io/thenickoftime/handbrake-web-server:latest",
      "environment": [
        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
        "NODE_VERSION=23.3.0",
        "YARN_VERSION=1.22.22",
        "NODE_ENV=production",
        "HANDBRAKE_MODE=server",
        "DATA_PATH=/data",
        "VIDEO_PATH=/video"
      ],
      "labels": {
        "cosmos.stack": "default-service",
        "cosmos.stack.main": "true",
        "org.opencontainers.image.created": "2024-11-27T01:56:04.986Z",
        "org.opencontainers.image.description": "A self-hosted platform to use HandBrake on your headless devices via a bespoke web interface. Harness the processing power of multiple devices to work on a single queue.",
        "org.opencontainers.image.licenses": "AGPL-3.0",
        "org.opencontainers.image.revision": "6abe69e5ce5072e28d747282145717c99066f993",
        "org.opencontainers.image.source": "https://github.com/TheNickOfTime/handbrake-web",
        "org.opencontainers.image.title": "handbrake-web",
        "org.opencontainers.image.url": "https://github.com/TheNickOfTime/handbrake-web",
        "org.opencontainers.image.version": "0.7.3"
      },
      "ports": [
        "0.0.0.0:9999:9999/tcp",
        ":::9999:9999/tcp"
      ],
      "volumes": [
        {
          "Type": "bind",
          "Source": "/var/docker/hbweb",
          "Target": "/data"
        },
        {
          "Type": "bind",
          "Source": "/media/mediashares",
          "Target": "/video"
        }
      ],
      "networks": {
        "cosmos-default-service-default": {}
      },
      "routes": null,
      "restart": "no",
      "devices": null,
      "expose": [],
      "command": "npm run prod",
      "entrypoint": "/usr/bin/dumb-init --",
      "runtime": "runc",
      "working_dir": "/handbrake-web/server",
      "user": "1000:1000",
      "hostname": "scyphozoa-frontend",
      "network_mode": "cosmos-default-service-default",
      "healthcheck": {
        "test": null,
        "interval": 0,
        "timeout": 0,
        "retries": 0,
        "start_period": 0
      }
    }
  }
}

Host Machine

  • OS: Debian Bookworm-derived distro
  • CPU: AMD FX-8350
  • GPU: NVIDIA GTX 1060 3GB

Log Information

    cyphozoa-frontend

scyphozoa-frontend

Limit
2025-10-19 06:35:05
 (node:7) ExperimentalWarning: CommonJS module /usr/local/lib/node_modules/npm/node_modules/debug/src/node.js is loading ES Module /usr/local/lib/node_modules/npm/node_modules/supports-color/index.js using require().
2025-10-19 06:35:05
 Support for loading ES Module in require() is an experimental feature and might change at any time
2025-10-19 06:35:05
 (Use `node --trace-warnings ...` to show where the warning was created)
2025-10-19 06:35:05
 
2025-10-19 06:35:05
 > handbrake-web@0.7.3 prod
2025-10-19 06:35:05
 > tsx src/server.ts
2025-10-19 06:35:05
 
2025-10-19 06:35:07
 06:35:07 [server] [config] No config file exists, copying the template config.yaml
2025-10-19 06:35:07
 06:35:07 [server] [config] [validation] The config data has passed validation.
2025-10-19 06:35:07
 06:35:07 [server] [config] The config file at '/data/config.yaml' has been loaded.
2025-10-19 06:35:07
 06:35:07 [server] [presets] Default presets have been loaded from '/handbrake-web/server/src/template/default-presets.json'.
2025-10-19 06:35:07
 06:35:07 [server] [presets] The directory for preset storage at the path '/data/presets' does not exist, making the directory.
2025-10-19 06:35:07
 06:35:07 [server] [presets] 0 presets have been loaded from '/data/presets'.
2025-10-19 06:35:07
 06:35:07 [server] [database] The database connection has been initalized!
2025-10-19 06:35:07
 06:35:07 [server] [queue] The queue status does not exist in the database, initializing to the state 'stopped'.
2025-10-19 06:35:07
 06:35:07 [server] Available at 'http://localhost:9999'.
2025-10-19 06:35:07
 06:35:07 [server] [version] Checking if there is an application update...
2025-10-19 06:35:07
 06:35:07 [server] [version] The application is up to date.
2025-10-19 06:50:18
 06:50:18 [server] [socket] Worker 'lakanal' has connected with ID '7Mr7YQrNeYOUfx-nAAAB'.
2025-10-19 06:59:01
 06:59:01 [server] [shutdown] The process has been terminated, HandBrake Web will now begin to shutdown...
2025-10-19 06:59:01
 06:59:01 [server] [socket] Worker 'lakanal' with ID '7Mr7YQrNeYOUfx-nAAAB' has disconnected.
2025-10-19 06:59:01
 npm notice
2025-10-19 06:59:01
 npm notice New major version of npm available! 10.9.0 -> 11.6.2
2025-10-19 06:59:01
 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.6.2
2025-10-19 06:59:01
 npm notice To update run: npm install -g npm@11.6.2
2025-10-19 06:59:01
 npm notice
2025-10-19 06:59:07
 
2025-10-19 06:59:07
 > handbrake-web@0.7.3 prod
2025-10-19 06:59:07
 > tsx src/server.ts
2025-10-19 06:59:07
 
2025-10-19 06:59:08
 06:59:08 [server] [config] [validation] The config data has passed validation.
2025-10-19 06:59:08
 06:59:08 [server] [config] The config file at '/data/config.yaml' has been loaded.
2025-10-19 06:59:08
 06:59:08 [server] [presets] Default presets have been loaded from '/handbrake-web/server/src/template/default-presets.json'.
2025-10-19 06:59:08
 06:59:08 [server] [presets] 0 presets have been loaded from '/data/presets'.
2025-10-19 06:59:08
 06:59:08 [server] [database] The database connection has been initalized!
2025-10-19 06:59:08
 06:59:08 [server] [queue] Existing queue status 'Stopped' retreived from the database.
2025-10-19 06:59:08
 06:59:08 [server] Available at 'http://localhost:9999'.
2025-10-19 06:59:08
 06:59:08 [server] [version] It has been less than the configured 12 hours since the last version check, update query.
2025-10-19 06:59:13
 06:59:13 [server] [socket] Worker 'lakanal' has connected with ID 'bj6YSEIKDIom9HWyAAAB'.

Tip

Please ensure all sections have been filled out with the requested information and the information is properly formatted. Issues with missing/poorly formatted information make giving help more difficult!

Metadata

Metadata

Assignees

No one assigned

    Labels

    requesttriageAn issue that needs attention for planning/triagetype/bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions