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?

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 4 months ago* (last edited 4 months ago) (3 children)

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.

  • source
  • hideshow 3 child comments
  • [–] 3 points 4 months ago (2 children)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 4 months 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.

  • source
  • parent