[GH-ISSUE #363] Termix + Pangolin weirdness #7570

Closed
opened 2026-06-22 00:09:38 -05:00 by GiteaMirror · 9 comments
Owner

Originally created by @stayupthetree on GitHub (May 24, 2026).
Original GitHub issue: https://github.com/fosrl/newt/issues/363

Describe the Bug

Attempting to setup Termix with pangolin. I've switched several of my compose files to blueprints and not had any issues until now.

When I attempt to load the webpage I get "Cannot GET /". I am able to connect directly using the IP:PORT

I disabled authentication and redeployed. It will work for less than a minute, but then any attempt to go to the webpage I get a JSON window and an error "Missing authentication token".

So I go look at the proxy settings page for the resource in Pangolin. I notice that any time I refresh the page, the port number in the target rotates between 30001,30002,30003,30004, and 30005 despite being assigned 8080 by the blueprint.

While yes those are ports used by the service, they are not part of the blueprint or mentioned anywhere in my compose. Why is Pangolin changing my settings set by a blueprint to those ports over and over and how do I stop that?

Environment

  • This has been an issue going back 7+ months. I give up and try again every couple of months.
  • OS Type & Version:
  • Pangolin Version: latest
  • Gerbil Version: latest
  • Traefik Version: latest
  • Newt Version: latest
  • Olm Version: (if applicable)

To Reproduce

Um I guess this?

termix:
image: ghcr.io/lukegus/termix:latest
container_name: termix
networks:
- fellowship
restart: unless-stopped
ports:
- "8680:8080"
volumes:
- /mnt/appdata/termix/:/app/data
environment:
PORT: "8080"
labels:
# Proxy Resource Configuration
- pangolin.proxy-resources.termix.name=termix
- pangolin.proxy-resources.termix.full-domain=termix.redacted.com
- pangolin.proxy-resources.termix.protocol=http
- pangolin.proxy-resources.termix.ssl=true
- pangolin.proxy-resources.termix.targets[0]hostname=termix
- pangolin.proxy-resources.termix.targets[0]port=8080
- pangolin.proxy-resources.termix.auth.sso-enabled=true
- pangolin.proxy-resources.termix.targets[0].method=http

Expected Behavior

I expect to go to termix.redacted.com and reach it.

Originally created by @stayupthetree on GitHub (May 24, 2026). Original GitHub issue: https://github.com/fosrl/newt/issues/363 ### Describe the Bug Attempting to setup Termix with pangolin. I've switched several of my compose files to blueprints and not had any issues until now. When I attempt to load the webpage I get "Cannot GET /". I am able to connect directly using the IP:PORT I disabled authentication and redeployed. It will work for less than a minute, but then any attempt to go to the webpage I get a JSON window and an error "Missing authentication token". So I go look at the proxy settings page for the resource in Pangolin. I notice that any time I refresh the page, the port number in the target rotates between 30001,30002,30003,30004, and 30005 despite being assigned 8080 by the blueprint. While yes those are ports used by the service, they are not part of the blueprint or mentioned anywhere in my compose. Why is Pangolin changing my settings set by a blueprint to those ports over and over and how do I stop that? ### Environment - This has been an issue going back 7+ months. I give up and try again every couple of months. - OS Type & Version: - Pangolin Version: latest - Gerbil Version: latest - Traefik Version: latest - Newt Version: latest - Olm Version: (if applicable) ### To Reproduce Um I guess this? termix: image: ghcr.io/lukegus/termix:latest container_name: termix networks: - fellowship restart: unless-stopped ports: - "8680:8080" volumes: - /mnt/appdata/termix/:/app/data environment: PORT: "8080" labels: # Proxy Resource Configuration - pangolin.proxy-resources.termix.name=termix - pangolin.proxy-resources.termix.full-domain=termix.redacted.com - pangolin.proxy-resources.termix.protocol=http - pangolin.proxy-resources.termix.ssl=true - pangolin.proxy-resources.termix.targets[0]hostname=termix - pangolin.proxy-resources.termix.targets[0]port=8080 - pangolin.proxy-resources.termix.auth.sso-enabled=true - pangolin.proxy-resources.termix.targets[0].method=http ### Expected Behavior I expect to go to termix.redacted.com and reach it.
Author
Owner

@LaurenceJJones commented on GitHub (May 25, 2026):

Very odd, could you set Newt into debug mode and share the logs around startup and during the observed behavior?

<!-- gh-comment-id:4533388405 --> @LaurenceJJones commented on GitHub (May 25, 2026): Very odd, could you set Newt into debug mode and share the logs around startup and during the observed behavior?
Author
Owner

@AstralDestiny commented on GitHub (May 25, 2026):

Mmm I'm not seeing those labels apply to my own deployment

<!-- gh-comment-id:4534204481 --> @AstralDestiny commented on GitHub (May 25, 2026): Mmm I'm not seeing those labels apply to my own deployment
Author
Owner

@AstralDestiny commented on GitHub (May 25, 2026):

services:
 termix:
  image: ghcr.io/lukegus/termix:latest
  container_name: termix
  networks:
   Artemis:
  restart: unless-stopped
  volumes:
   - ./termix:/app/data
  environment:
   PORT: "8080"
  labels:
    - pangolin.proxy-resources.termix.name=termix
    - pangolin.proxy-resources.termix.full-domain=termix.domain.com
    - pangolin.proxy-resources.termix.protocol=http
    - pangolin.proxy-resources.termix.auth.sso-enabled=true
    - pangolin.proxy-resources.termix.targets[0].hostname=termix
    - pangolin.proxy-resources.termix.targets[0].port=8080
    - pangolin.proxy-resources.termix.targets[0].method=http

networks:
 Artemis: # shared with the system's relative newt
  external: true

Loads fine for me.

Your initial labels my own stack refused to parse in the slightest, I shifted to match what Milo had shown me in the past.

For context you're missing [0]. (The dot's)

<!-- gh-comment-id:4534267042 --> @AstralDestiny commented on GitHub (May 25, 2026): ```yml services: termix: image: ghcr.io/lukegus/termix:latest container_name: termix networks: Artemis: restart: unless-stopped volumes: - ./termix:/app/data environment: PORT: "8080" labels: - pangolin.proxy-resources.termix.name=termix - pangolin.proxy-resources.termix.full-domain=termix.domain.com - pangolin.proxy-resources.termix.protocol=http - pangolin.proxy-resources.termix.auth.sso-enabled=true - pangolin.proxy-resources.termix.targets[0].hostname=termix - pangolin.proxy-resources.termix.targets[0].port=8080 - pangolin.proxy-resources.termix.targets[0].method=http networks: Artemis: # shared with the system's relative newt external: true ``` Loads fine for me. Your initial labels my own stack refused to parse in the slightest, I shifted to match what Milo had shown me in the past. For context you're missing [0]. (The dot's)
Author
Owner

@AstralDestiny commented on GitHub (May 25, 2026):

Image
<!-- gh-comment-id:4534273950 --> @AstralDestiny commented on GitHub (May 25, 2026): <img width="1102" height="628" alt="Image" src="https://github.com/user-attachments/assets/3820f014-5986-42c3-ba9c-42761d6f2466" />
Author
Owner

@stayupthetree commented on GitHub (May 25, 2026):

services:
termix:
image: ghcr.io/lukegus/termix:latest
container_name: termix
networks:
Artemis:
restart: unless-stopped
volumes:

  • ./termix:/app/data
    environment:
    PORT: "8080"
    labels:
    - pangolin.proxy-resources.termix.name=termix
    - pangolin.proxy-resources.termix.full-domain=termix.domain.com
    - pangolin.proxy-resources.termix.protocol=http
    - pangolin.proxy-resources.termix.auth.sso-enabled=true
    - pangolin.proxy-resources.termix.targets[0].hostname=termix
    - pangolin.proxy-resources.termix.targets[0].port=8080
    - pangolin.proxy-resources.termix.targets[0].method=http

networks:
Artemis: # shared with the system's relative newt
external: true
Loads fine for me.

Your initial labels my own stack refused to parse in the slightest, I shifted to match what Milo had shown me in the past.

For context you're missing [0]. (The dot's)

Doh! That was it! It's interesting because I have several others the exact same way and no issues whatsoever. It was only Termix that has given me issues.

<!-- gh-comment-id:4534750985 --> @stayupthetree commented on GitHub (May 25, 2026): > services: > termix: > image: ghcr.io/lukegus/termix:latest > container_name: termix > networks: > Artemis: > restart: unless-stopped > volumes: > - ./termix:/app/data > environment: > PORT: "8080" > labels: > - pangolin.proxy-resources.termix.name=termix > - pangolin.proxy-resources.termix.full-domain=termix.domain.com > - pangolin.proxy-resources.termix.protocol=http > - pangolin.proxy-resources.termix.auth.sso-enabled=true > - pangolin.proxy-resources.termix.targets[0].hostname=termix > - pangolin.proxy-resources.termix.targets[0].port=8080 > - pangolin.proxy-resources.termix.targets[0].method=http > > networks: > Artemis: # shared with the system's relative newt > external: true > Loads fine for me. > > Your initial labels my own stack refused to parse in the slightest, I shifted to match what Milo had shown me in the past. > > For context you're missing [0]. (The dot's) Doh! That was it! It's interesting because I have several others the exact same way and no issues whatsoever. It was only Termix that has given me issues.
Author
Owner

@AstralDestiny commented on GitHub (May 25, 2026):

Curious was it showing in settings>blueprints properly for the non dot's?

<!-- gh-comment-id:4534781762 --> @AstralDestiny commented on GitHub (May 25, 2026): Curious was it showing in settings>blueprints properly for the non dot's?
Author
Owner

@LaurenceJJones commented on GitHub (May 25, 2026):

Doh! That was it! It's interesting because I have several others the exact same way and no issues whatsoever. It was only Termix that has given me issues.

It was probably because if we dont parse the "target" we assume you want us to use the "expose" ports and I guess for some reason our logic might be cycling the ones defined in the Dockerfile as if you dont define it inside the compose it defaults to these. Or we might be setting up multiple targets based on the "expose" since there multiple ports and routing between them 🤷🏻

b30ed8eabe/docker/Dockerfile (L77)

It was only Termix that has given me issues.

Probably other apps only have a single port and/or dont have multiple ports defined in the "expose" definition or even use it.

<!-- gh-comment-id:4535474767 --> @LaurenceJJones commented on GitHub (May 25, 2026): > Doh! That was it! It's interesting because I have several others the exact same way and no issues whatsoever. It was only Termix that has given me issues. It was probably because if we dont parse the "target" we assume you want us to use the "expose" ports and I guess for some reason our logic might be cycling the ones defined in the Dockerfile as if you dont define it inside the compose it defaults to these. Or we might be setting up multiple targets based on the "expose" since there multiple ports and routing between them 🤷🏻 https://github.com/Termix-SSH/Termix/blob/b30ed8eabea35107522b14452e7adc8e29b7ec52/docker/Dockerfile#L77 > It was only Termix that has given me issues. Probably other apps only have a single port and/or dont have multiple ports defined in the "expose" definition or even use it.
Author
Owner

@AstralDestiny commented on GitHub (May 25, 2026):

Eh it was more like the dot was missing so pangolin will try to use the expose functions to rotate around the ports.

Effectively if the dot is removed it doesn't parse them as a blueprint and starts to guess

<!-- gh-comment-id:4536371273 --> @AstralDestiny commented on GitHub (May 25, 2026): Eh it was more like the dot was missing so pangolin will try to use the expose functions to rotate around the ports. Effectively if the dot is removed it doesn't parse them as a blueprint and starts to guess
Author
Owner

@LaurenceJJones commented on GitHub (May 29, 2026):

Classing as resolved, let me know if there anything else that comes up

<!-- gh-comment-id:4576219471 --> @LaurenceJJones commented on GitHub (May 29, 2026): Classing as resolved, let me know if there anything else that comes up
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/newt#7570