I’ve bounced around running my server on many different OS options, I used proxmox with Ubuntu VMs and containers for a long time and did really like it but decided that for my tiny operation basically just trying to run Jellyfin and maybe a few other things like a Minecraft server, a simple one click deployment OS works good enough for me. Most of the time.

I’ve really been loving ZimaOS, management is so easy when you’re only running a couple basic services like I am. But I decided I wanted to set up an arr stack to build up my media library easier and let others request things. I actually had this set up before on proxmox so it’s not my first time.

The only problem is I can’t for the life of me get qBittorrent to use my gluetun VPN with Mullvad, the fact that I can’t directly edit the compose yml is killing me, because the options that I need to change should hypothetically be simple, but they just don’t appear to even exist in the ZimaOS app settings gui. Has anyone gotten this to work?

  • BakedCatboy@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    3 hours ago

    If it helps, here’s how I had my gluetun / transmission set up with mullvad (I’ve since moved to proton for port forwarding but I saved the mullvad config in case I needed to switch back):

    services:
      gluetun:
        image: qmcgaw/gluetun:v3
        container_name: gluetun
        restart: always
        cap_add:
          - NET_ADMIN
        devices:
          - /dev/net/tun:/dev/net/tun
        volumes:
          - ./volumes/gluetun:/gluetun
        environment:
          - TZ=America/New_York
    #      Mullvad
          - VPN_SERVICE_PROVIDER=mullvad
          - VPN_TYPE=wireguard
          - SERVER_COUNTRIES=USA
          - SERVER_CITIES=New York NY
          - WIREGUARD_PRIVATE_KEY=
          - WIREGUARD_ADDRESSES=x.x.x.x/32
          - UPDATER_PERIOD=24h
          - UPDATER_MIN_RATIO=0.1
          - UPDATER_VPN_SERVICE_PROVIDERS=mullvad,privado,protonvpn
        networks:
          - default
          - ingress
    
      transmission:
        image: linuxserver/transmission:latest
        container_name: transmission
        restart: always
        network_mode: "service:gluetun"
        environment:
          - PUID=0
          - PGID=0
          - TZ=America/New_York
        volumes:
          - ./volumes/transmission:/config
          - /volume1/Media:/media
    
      flood:
        image: jesec/flood:latest
        container_name: flood-sidecar
        restart: always
        command: --port 3000
        user: "0:0"
        network_mode: "service:gluetun"
        volumes:
          - ./volumes/transmission:/config
          - /volume1/Media:/media:ro
        environment:
          - TZ=America/New_York
          - HOME=/config
        labels:
          - com.centurylinklabs.watchtower.enable=true
          - "traefik.enable=true"
          - "traefik.http.routers.flood.rule=Host(`flood.example.com`)"
          - "traefik.http.services.flood.loadbalancer.server.port=3000"
          - "traefik.http.routers.flood.entrypoints=websecure"
          - "traefik.http.routers.flood.tls.certresolver=mytlschallenge"
          # This example uses "Selective Authentication"
          - "traefik.http.routers.flood.middlewares=oauth-middleware"
    
    

    Idk how zimaos works, but the way to attach containers like this is with network_mode: "service:othercontainer" which might need them to be in the same compose file (the docs aren’t clear).

    Also note that you can’t put any port mappings on a container using network_mode service, you have to put them on the other container that is handling networking since the first container is piggybacking off of the other and doesn’t have its own networking.

    • theorychapter@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 hours ago

      Idk how zimaos works, but the way to attach containers like this is with network_mode: "service:othercontainer" which might need them to be in the same compose file (the docs aren’t clear).

      network_mode: “container:gluetun”
      

      Is how you can do it with separate compose files. And yes you’d need to map the ports in the gluetun compose file for any container you route through gluetun.

      • BakedCatboy@lemmy.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 hours ago

        Ah cool, the docs made it sound like container: uses the container ID hash instead of the name so I wasn’t sure how that works. I just put stuff like this in the same compose file since they’re all closely related.