I’ve got jellyfin and nginx proxy manager running in two separate containers. What do I need to specify in known proxies? The ip is changing frequently which means I can’t use it.

I try setting the ip in the compose file but something is wrong. nginx proxy manager:

22     networks:
23	 npm:
24         ipv_address: 172.20.0.2
25
26 networks:
27   npm:
28     driver: bridge
29     ipam:
30	 config:
31         - subnet: 172.20.0.0/24
32           gateway: 172.20.0.1
33

and

jellyfin:

32     networks:
33	 npm:
34         ipv_address: 172.20.0.3
35
36 networks:
37   npm:
38     driver: bridge
39     ipam:
40	 config:
41         - subnet: 172.20.0.0/24
42           gateway: 172.20.0.1

jellyfin log: [16:08:01] [INF] [16] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 172.20.3.11 request

can someone point me into the right direction?

  • chiisana@lemmy.chiisana.net
    link
    fedilink
    English
    arrow-up
    14
    ·
    3 months ago

    Last time this was asked, I’ve voiced the concern that tying fixed IP address to container definitions is an anti-pattern, and I’ll voice that again. You shouldn’t be defining a fixed IP address to individual services as that prevents future scaling.

    Instead, you should leverage service discover mechanisms to help your services identify each other and wire up that way.

    It seemed like in NPM, there is no fitting mechanisms out of the box. Which may suggest your use case is out growing what it may be able to service you for in the future. However, docker compose stacks may rescue the current implementation with DNS resolution. Try simplifying your npm’s docker compose to just this:

       networks:
          - npm
    
    networks:
      npm:
        name: npm_default
        external: true
    

    And your jellyfin compose with something like:

       networks:
          - npm
          - jellyfin_net
    
    networks:
      npm:
        name: npm_default
        external: true
      jellyfin_net:
        name: jellyfin_net
        internal: true
    

    Have your other services in Jellyfin stack stay only on jellyfin_net or whatever you define it to be, so they’re not exposed to npm/other services. Then in the configs, have your npm talk direct to the name of your jellyfin service using hostname, maybe something like jellyfin or whatever you’ve set as the service name. You may need to include the compose stack as prefix, too. This should then allow your npm to talk to your jellyfin via the docker compose networks’ DNS directly.

    Good luck!

  • JASN_DE@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    3 months ago

    That setting also takes host names. As long as both containers share at least one network, put in the service name (not the container_name!), e.g. “npm” or whatever yours is called and you should be fine.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 months ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    DNS Domain Name Service/System
    IP Internet Protocol
    Plex Brand of media server package
    VPN Virtual Private Network

    [Thread #674 for this sub, first seen 11th Apr 2024, 20:55] [FAQ] [Full list] [Contact] [Source code]