cobalt icon indicating copy to clipboard operation
cobalt copied to clipboard

Yt session generator is not connecting

Open linuxfight opened this issue 9 months ago • 8 comments

problem description

Default settings, can send requests to yt-session-generator and it is working, but cobalt has connection refused error:

cobalt                | 
cobalt                | cobalt API ^ω^
cobalt                | ~~~~~~
cobalt                | version: 11.0.2
cobalt                | commit: a7bf5c525dee5f6c6b273d4834823c792c37ff4d
cobalt                | branch: main
cobalt                | remote: imputnet/cobalt
cobalt                | start time: Sun, 01 Jun 2025 22:59:07 GMT
cobalt                | ~~~~~~
cobalt                | url: https://api.url.example/
cobalt                | port: 9000
cobalt                | 
cobalt                | [✓] internal tunnel handler running on 127.0.0.1:41267
cobalt                | [!] Failed loading poToken & visitor_data at 2025-06-01T22:59:08.017Z.
cobalt                | Error: TypeError: fetch failed
cobalt                |     at node:internal/deps/undici/undici:13510:13
cobalt                |     at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
cobalt                |     at async loadSession (file:///app/src/processing/helpers/youtube-session.js:38:24) {
cobalt                |   [cause]: Error: connect ECONNREFUSED 172.19.0.3:8080
cobalt                |       at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1636:16) {
cobalt                |     errno: -111,
cobalt                |     code: 'ECONNREFUSED',
cobalt                |     syscall: 'connect',
cobalt                |     address: '172.19.0.3',
cobalt                |     port: 8080
cobalt                |   }
cobalt                | }

There's also a problem with session generator, where if you start it again (not dry run) it wil crash with an error:

yt-session-generator  | [INFO] launching chromium instance
yt-session-generator  | 2025/06/01 23:05:18.308 [extractor] [INFO] update started
yt-session-generator  | Traceback (most recent call last):
yt-session-generator  |   File "/app/potoken-generator.py", line 4, in <module>
yt-session-generator  |     potoken_generator.main.main()
yt-session-generator  |   File "/app/potoken_generator/main.py", line 98, in main
yt-session-generator  |     loop.run_until_complete(main_task)
yt-session-generator  |   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 686, in run_until_complete
yt-session-generator  |     return future.result()
yt-session-generator  |            ^^^^^^^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/main.py", line 35, in run
yt-session-generator  |     token = await potoken_extractor.run_once()
yt-session-generator  |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 46, in run_once
yt-session-generator  |     await self._update()
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 91, in _update
yt-session-generator  |     await asyncio.wait_for(self._perform_update(), timeout=600)
yt-session-generator  |   File "/usr/local/lib/python3.12/asyncio/tasks.py", line 520, in wait_for
yt-session-generator  |     return await fut
yt-session-generator  |            ^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 104, in _perform_update
yt-session-generator  |     browser = await nodriver.start(headless=False,
yt-session-generator  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/util.py", line 74, in start
yt-session-generator  |     return await Browser.create(config)
yt-session-generator  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/browser.py", line 87, in create
yt-session-generator  |     await instance.start()
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/browser.py", line 343, in start
yt-session-generator  |     raise Exception(
yt-session-generator  | Exception: 
yt-session-generator  |                 ---------------------
yt-session-generator  |                 Failed to connect to browser
yt-session-generator  |                 ---------------------
yt-session-generator  |                 One of the causes could be when you are running as root.
yt-session-generator  |                 In that case you need to pass no_sandbox=True 
yt-session-generator  |                 
yt-session-generator  | successfully removed temp profile /tmp/tmpro75r_2f
yt-session-generator exited with code 1

your instance configuration

compose:

services:
    cobalt:
        image: ghcr.io/imputnet/cobalt:11

        init: true
        read_only: true
        restart: unless-stopped
        container_name: cobalt

        ports:
            - 127.0.0.1:9000:9000

        environment:
            API_URL: "https://api.url.example/"
            YOUTUBE_SESSION_SERVER: "http://yt-session-generator:8080/"

        labels:
          - com.centurylinklabs.watchtower.scope=cobalt

    watchtower:
        image: ghcr.io/containrrr/watchtower
        restart: unless-stopped
        command: --cleanup --scope cobalt --interval 900 --include-restarting
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock

    yt-session-generator:
        image: ghcr.io/imputnet/yt-session-generator:webserver
        ports:
          - 127.0.0.1:8080:8080
        init: true
        restart: unless-stopped
        container_name: yt-session-generator
        labels:
          - com.centurylinklabs.watchtower.scope=cobalt

linuxfight avatar Jun 01 '25 23:06 linuxfight

@linuxfight did you manage to fix it?

acrossoffwest avatar Jun 02 '25 10:06 acrossoffwest

Haven't managed to fix it

linuxfight avatar Jun 02 '25 11:06 linuxfight

https://github.com/imputnet/yt-session-generator/issues/1

The problem with the session generator is this exact issue, but the issue with cobalt instance is different

linuxfight avatar Jun 02 '25 11:06 linuxfight

I am facing same issue too

services:
    cobalt-api:
        image: ghcr.io/imputnet/cobalt:11

        init: true
        read_only: true
        restart: unless-stopped
        container_name: cobalt

        ports:
            - 8088:9000/tcp
        environment:
            API_URL: "https://cobalt.website.com/"
            API_AUTH_REQUIRED: 1
            API_KEY_URL: "file:///keys.json"
            TURNSTILE_SITEKEY: "0xxxxxxxxxxxxxxxxxxxxxxP" # use your key
            TURNSTILE_SECRET: "0xxxxxxxxxxxxxxxxxxxxxx4" # use your key
            JWT_SECRET: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
            YOUTUBE_SESSION_SERVER: "http://host.docker.internal:8089/token"
            COOKIE_PATH: "/cookies.json"
        labels:
            - com.centurylinklabs.watchtower.scope=cobalt
        volumes:
            - ./cookies.json:/cookies.json
            - ./keys.json:/keys.json:ro
        extra_hosts:
            - "host.docker.internal:host-gateway"
        depends_on:
          yt-session-generator:
            condition: service_started

    watchtower:
        image: ghcr.io/containrrr/watchtower
        restart: unless-stopped
        command: --cleanup --scope cobalt --interval 900 --include-restarting
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock

    yt-session-generator:
        image: ghcr.io/imputnet/yt-session-generator:webserver
        init: true
        restart: unless-stopped
        container_name: yt-session-generator
        ports:
          - 8089:8080/tcp

With the above setup i keep getting this error

yt-session-generator  | 2025/05/29 21:48:30.487 [extractor] [INFO] update was succeessful
yt-session-generator  | 2025/05/29 21:53:30.543 [extractor] [INFO] update started
yt-session-generator  | 2025/05/29 21:53:34.606 [extractor] [INFO] new token: {"updated": 1748555614, "potoken": "MnSgFL75bMJwSqAsz5vDWEk6ePgSajdHGZguip0H1kHbhFoYsq9aoG0oDTdzQE_7A-Ib23nMKhX7x_3zfqzVeo6kN2Og76TI2cqx2qhqR15W4rHwpBmx4o9EsHYdnD7z_sEfazrQRSUjtcnHrBxrV2myHPrkYA==", "visitor_data": "CgtjeVcyTERsYmRTUSjcruPBBjIKCgJHQhIEGgAgMQ%3D%3D"}
yt-session-generator  | 2025/05/29 21:53:34.607 [extractor] [INFO] update was succeessful
cobalt                |
cobalt                | cobalt API ^ω^
cobalt                | ~~~~~~
cobalt                | version: 11.0.1
cobalt                | commit: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
cobalt                | branch: main
cobalt                | remote: imputnet/cobalt
cobalt                | start time: Thu, 29 May 2025 21:33:08 GMT
cobalt                | ~~~~~~
cobalt                | url: https://website.com/
cobalt                | port: 9000
cobalt                |
cobalt                | [✓] internal tunnel handler running on 127.0.0.1:46297
cobalt                | [✓] api keys loaded successfully!
cobalt                | [✓] cookies loaded successfully!
cobalt                | [!] Failed loading poToken & visitor_data at 2025-05-29T21:33:18.557Z.
cobalt                | Error: TypeError: fetch failed
cobalt                |     at node:internal/deps/undici/undici:13510:13
cobalt                |     at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
cobalt                |     at async loadSession (file:///app/src/processing/helpers/youtube-session.js:38:24) {
cobalt                |   [cause]: ConnectTimeoutError: Connect Timeout Error
cobalt                |       at onConnectTimeout (/app/node_modules/.pnpm/[email protected]/node_modules/undici/lib/core/connect.js:186:24)
cobalt                |       at /app/node_modules/.pnpm/[email protected]/node_modules/undici/lib/core/connect.js:133:46
cobalt                |       at Immediate._onImmediate (/app/node_modules/.pnpm/[email protected]/node_modules/undici/lib/core/connect.js:174:9)
cobalt                |       at process.processImmediate (node:internal/timers:505:21) {
cobalt                |     code: 'UND_ERR_CONNECT_TIMEOUT'
cobalt                |   }
cobalt                | }
cobalt                | [!] Failed loading poToken & visitor_data at 2025-05-29T21:38:18.596Z.
c

Gareryer avatar Jun 02 '25 11:06 Gareryer

I've kinda fixed error with connecting to poToken extractor, but now remains the error with poToken extractor crashing if it is running not for the 1st time:

yt-session-generator  | [INFO] launching chromium instance
yt-session-generator  | 2025/06/02 12:52:11.722 [extractor] [INFO] update started
yt-session-generator  | Traceback (most recent call last):
yt-session-generator  |   File "/app/potoken-generator.py", line 4, in <module>
yt-session-generator  |     potoken_generator.main.main()
yt-session-generator  |   File "/app/potoken_generator/main.py", line 98, in main
yt-session-generator  |     loop.run_until_complete(main_task)
yt-session-generator  |   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 686, in run_until_complete
yt-session-generator  |     return future.result()
yt-session-generator  |            ^^^^^^^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/main.py", line 35, in run
yt-session-generator  |     token = await potoken_extractor.run_once()
yt-session-generator  |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 46, in run_once
yt-session-generator  |     await self._update()
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 91, in _update
yt-session-generator  |     await asyncio.wait_for(self._perform_update(), timeout=600)
yt-session-generator  |   File "/usr/local/lib/python3.12/asyncio/tasks.py", line 520, in wait_for
yt-session-generator  |     return await fut
yt-session-generator  |            ^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 104, in _perform_update
yt-session-generator  |     browser = await nodriver.start(headless=False,
yt-session-generator  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/util.py", line 74, in start
yt-session-generator  |     return await Browser.create(config)
yt-session-generator  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/browser.py", line 87, in create
yt-session-generator  |     await instance.start()
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/browser.py", line 343, in start
yt-session-generator  |     raise Exception(
yt-session-generator  | Exception: 
yt-session-generator  |                 ---------------------
yt-session-generator  |                 Failed to connect to browser
yt-session-generator  |                 ---------------------
yt-session-generator  |                 One of the causes could be when you are running as root.
yt-session-generator  |                 In that case you need to pass no_sandbox=True 
yt-session-generator  |                 
yt-session-generator  | successfully removed temp profile /tmp/tmp2w0kbl5d

Here's the updated compose file, that has a fix:

services:
    cobalt:
        image: ghcr.io/imputnet/cobalt:11
        init: true
          # read_only: true
        restart: unless-stopped
        container_name: cobalt
        ports:
            - 127.0.0.1:9000:9000
        environment:
            API_URL: "https://api.url.example/"
            YOUTUBE_SESSION_SERVER: "http://yt-session-generator:8080"
        depends_on:
          yt-session-generator:
            condition: service_healthy
        labels:
          - com.centurylinklabs.watchtower.scope=cobalt

    watchtower:
        image: ghcr.io/containrrr/watchtower
        restart: unless-stopped
        command: --cleanup --scope cobalt --interval 900 --include-restarting
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
    
    yt-session-generator:
        image: ghcr.io/imputnet/yt-session-generator:webserver
        command: sh -c "./startup-webserver.sh 2>&1 | tee /app.log"
        ports:
          - 127.0.0.1:8080:8080
        init: true
        restart: unless-stopped
        container_name: yt-session-generator
        healthcheck:
          test: ["CMD-SHELL", "grep -Fq '[server] [INFO] Starting web-server at 0.0.0.0:8080' /app.log"]
          interval: 2s
          timeout: 3s
          retries: 15
          start_period: 10s
        labels:
          - com.centurylinklabs.watchtower.scope=cobalt

linuxfight avatar Jun 02 '25 12:06 linuxfight

I've kinda fixed error with connecting to poToken extractor, but now remains the error with poToken extractor crashing if it is running not for the 1st time:

yt-session-generator  | [INFO] launching chromium instance
yt-session-generator  | 2025/06/02 12:52:11.722 [extractor] [INFO] update started
yt-session-generator  | Traceback (most recent call last):
yt-session-generator  |   File "/app/potoken-generator.py", line 4, in <module>
yt-session-generator  |     potoken_generator.main.main()
yt-session-generator  |   File "/app/potoken_generator/main.py", line 98, in main
yt-session-generator  |     loop.run_until_complete(main_task)
yt-session-generator  |   File "/usr/local/lib/python3.12/asyncio/base_events.py", line 686, in run_until_complete
yt-session-generator  |     return future.result()
yt-session-generator  |            ^^^^^^^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/main.py", line 35, in run
yt-session-generator  |     token = await potoken_extractor.run_once()
yt-session-generator  |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 46, in run_once
yt-session-generator  |     await self._update()
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 91, in _update
yt-session-generator  |     await asyncio.wait_for(self._perform_update(), timeout=600)
yt-session-generator  |   File "/usr/local/lib/python3.12/asyncio/tasks.py", line 520, in wait_for
yt-session-generator  |     return await fut
yt-session-generator  |            ^^^^^^^^^
yt-session-generator  |   File "/app/potoken_generator/extractor.py", line 104, in _perform_update
yt-session-generator  |     browser = await nodriver.start(headless=False,
yt-session-generator  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/util.py", line 74, in start
yt-session-generator  |     return await Browser.create(config)
yt-session-generator  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/browser.py", line 87, in create
yt-session-generator  |     await instance.start()
yt-session-generator  |   File "/usr/local/lib/python3.12/site-packages/nodriver/core/browser.py", line 343, in start
yt-session-generator  |     raise Exception(
yt-session-generator  | Exception: 
yt-session-generator  |                 ---------------------
yt-session-generator  |                 Failed to connect to browser
yt-session-generator  |                 ---------------------
yt-session-generator  |                 One of the causes could be when you are running as root.
yt-session-generator  |                 In that case you need to pass no_sandbox=True 
yt-session-generator  |                 
yt-session-generator  | successfully removed temp profile /tmp/tmp2w0kbl5d

Here's the updated compose file, that has a fix:

services:
    cobalt:
        image: ghcr.io/imputnet/cobalt:11
        init: true
          # read_only: true
        restart: unless-stopped
        container_name: cobalt
        ports:
            - 127.0.0.1:9000:9000
        environment:
            API_URL: "https://api.url.example/"
            YOUTUBE_SESSION_SERVER: "http://yt-session-generator:8080"
        depends_on:
          yt-session-generator:
            condition: service_healthy
        labels:
          - com.centurylinklabs.watchtower.scope=cobalt

    watchtower:
        image: ghcr.io/containrrr/watchtower
        restart: unless-stopped
        command: --cleanup --scope cobalt --interval 900 --include-restarting
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
    
    yt-session-generator:
        image: ghcr.io/imputnet/yt-session-generator:webserver
        command: sh -c "./startup-webserver.sh 2>&1 | tee /app.log"
        ports:
          - 127.0.0.1:8080:8080
        init: true
        restart: unless-stopped
        container_name: yt-session-generator
        healthcheck:
          test: ["CMD-SHELL", "grep -Fq '[server] [INFO] Starting web-server at 0.0.0.0:8080' /app.log"]
          interval: 2s
          timeout: 3s
          retries: 15
          start_period: 10s
        labels:
          - com.centurylinklabs.watchtower.scope=cobalt

I am still getting this error even after using your yt-session-generator

cobalt                | cobalt API ^ω^
cobalt                | ~~~~~~
cobalt                | version: 11.0.2
cobalt                | commit: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
cobalt                | branch: main
cobalt                | remote: imputnet/cobalt
cobalt                | start time: Wed, 04 Jun 2025 15:04:46 GMT
cobalt                | ~~~~~~
cobalt                | url: https://cobalt.website.com/
cobalt                | port: 9000
cobalt                |
cobalt                | [✓] internal tunnel handler running on 127.0.0.1:37035
cobalt                | [✓] api keys loaded successfully!
cobalt                | [✓] cookies loaded successfully!
cobalt                | [!] Failed loading poToken & visitor_data at 2025-06-04T16:04:56.503Z.
cobalt                | Error: TypeError: fetch failed
cobalt                |     at node:internal/deps/undici/undici:13510:13
cobalt                |     at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
cobalt                |     at async loadSession (file:///app/src/processing/helpers/youtube-session.js:38:24) {
cobalt                |   [cause]: ConnectTimeoutError: Connect Timeout Error
cobalt                |       at onConnectTimeout (/app/node_modules/.pnpm/[email protected]/node_modules/undici/lib/core/connect.js:186:24)
cobalt                |       at /app/node_modules/.pnpm/[email protected]/node_modules/undici/lib/core/connect.js:133:46
cobalt                |       at Immediate._onImmediate (/app/node_modules/.pnpm/[email protected]/node_modules/undici/lib/core/connect.js:174:9)
cobalt                |       at process.processImmediate (node:internal/timers:505:21) {
cobalt                |     code: 'UND_ERR_CONNECT_TIMEOUT'
cobalt                |   }
cobalt                | }
yt-session-generator  | 2025/06/04 16:04:59.082 [extractor] [INFO] new token: {"updated": 1749053099, "potoken": "MnSdMNkFKeufmZ0IFJvFet4vbUuWfX6RHNfK5_t6BJ8Cb6bryvcazjeNbw1d3hOsR2qQz1-FT3qXTyUGmhGw4AdOOY0P9vzmRC-fHJrBgtneFIEsxVNAV3-eGjnJdig6Lgww_hI5-r_7CWsIHZO-AockBo8Pjw==", "visitor_data": "CgtLaG1EUWl2M05zVSin3YHCBjIKCgJHQhIEGgAgGg%3D%3D"}
yt-session-generator  | 2025/06/04 16:04:59.112 [extractor] [INFO] update was succeessful
yt-session-generator  | 2025/06/04 16:09:59.234 [extractor] [INFO] update started
yt-session-generator  | 2025/06/04 16:10:10.081 [extractor] [INFO] new token: {"updated": 1749053410, "potoken": "MnQa-Ydh29f-WRrBo3vIvupHPHAGLvXfTYScB8mmJEWDoCMkiQRu3teFiIcr9b1ZW-7_2EFsIPKPVXSyw0_

Gareryer avatar Jun 04 '25 16:06 Gareryer

i've kinda fixed yt session generator for me, but fix is just a rewrite of session generator to a different chrome driver.

@Gareryer, sorry I can't help with your issue, on my side everything works fine. can you provide more information?

linuxfight avatar Jun 05 '25 18:06 linuxfight

here's my compose, that uses custom session generator:

services:
    cobalt:
        image: ghcr.io/imputnet/cobalt:11
        init: true
          # read_only: true
        restart: unless-stopped
        container_name: cobalt
        ports:
            - 127.0.0.1:9000:9000
        environment:
            API_URL: "https://api.url.example/"
            YOUTUBE_SESSION_SERVER: "http://yt-session-generator:8080"
        depends_on:
          yt-session-generator:
            condition: service_healthy
        labels:
          - com.centurylinklabs.watchtower.scope=cobalt

    watchtower:
        image: ghcr.io/containrrr/watchtower
        restart: unless-stopped
        command: --cleanup --scope cobalt --interval 900 --include-restarting
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
    
    yt-session-generator:
        image: linuxfight/yt-session-generator:main
        ports:
          - 127.0.0.1:8080:8080
        volumes:
          - swayvnc-wayvnc-certs:/certs
        environment:
          - SWAY_UNSUPPORTED_GPU=true
          - SWAY_RESOLUTION=1280x720
          - WAYVNC_PORT=5910
          - WAYVNC_ENABLE_AUTH=true
          - WAYVNC_USERNAME=wayvnc
          - WAYVNC_PASSWORD=wayvnc
          - VIRTUAL_GPU=true
        devices:
          - /dev/dri
        security_opt:
          - seccomp:unconfined
        init: true
        restart: unless-stopped
        container_name: yt-session-generator
        healthcheck:
          test: ["CMD", "curl", "--fail", "http://localhost:8080/token"]
          interval: 2s
          timeout: 3s
          retries: 15
          start_period: 10s
        labels:
          - com.centurylinklabs.watchtower.scope=cobalt

volumes:
  swayvnc-wayvnc-certs:

https://github.com/linuxfight/yt-session-generator

can you try it and respond if it works for you? @acrossoffwest @Gareryer

linuxfight avatar Jun 05 '25 18:06 linuxfight

here's my compose, that uses custom session generator:

services: cobalt: image: ghcr.io/imputnet/cobalt:11 init: true # read_only: true restart: unless-stopped container_name: cobalt ports: - 127.0.0.1:9000:9000 environment: API_URL: "https://api.url.example/" YOUTUBE_SESSION_SERVER: "http://yt-session-generator:8080" depends_on: yt-session-generator: condition: service_healthy labels: - com.centurylinklabs.watchtower.scope=cobalt

watchtower:
    image: ghcr.io/containrrr/watchtower
    restart: unless-stopped
    command: --cleanup --scope cobalt --interval 900 --include-restarting
    volumes:
        - /var/run/docker.sock:/var/run/docker.sock

yt-session-generator:
    image: linuxfight/yt-session-generator:main
    ports:
      - 127.0.0.1:8080:8080
    volumes:
      - swayvnc-wayvnc-certs:/certs
    environment:
      - SWAY_UNSUPPORTED_GPU=true
      - SWAY_RESOLUTION=1280x720
      - WAYVNC_PORT=5910
      - WAYVNC_ENABLE_AUTH=true
      - WAYVNC_USERNAME=wayvnc
      - WAYVNC_PASSWORD=wayvnc
      - VIRTUAL_GPU=true
    devices:
      - /dev/dri
    security_opt:
      - seccomp:unconfined
    init: true
    restart: unless-stopped
    container_name: yt-session-generator
    healthcheck:
      test: ["CMD", "curl", "--fail", "http://localhost:8080/token"]
      interval: 2s
      timeout: 3s
      retries: 15
      start_period: 10s
    labels:
      - com.centurylinklabs.watchtower.scope=cobalt

volumes: swayvnc-wayvnc-certs: https://github.com/linuxfight/yt-session-generator

can you try it and respond if it works for you? @acrossoffwest @Gareryer

Hi, I've recently ran into the same issue with your fork

BurAndBY avatar Oct 09 '25 18:10 BurAndBY