Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

TubeArchivist with GluetunVPN

Featured Replies

Hi. I'm trying to run tubearchivist through gluetun because i don't want to get my ip flagged by youtube. I got everything up and running but couldn't access tubearchivist webui. Looking at the log it appears that both TA and gluetun are using the same internal port 8000 and i cannot remap it. If anyone has any idea how i could fix this it would be greatly appreciated.

 

Thanks

  • Community Expert
6 hours ago, rokstepic said:

Hi. I'm trying to run tubearchivist through gluetun because i don't want to get my ip flagged by youtube. I got everything up and running but couldn't access tubearchivist webui. Looking at the log it appears that both TA and gluetun are using the same internal port 8000 and i cannot remap it. If anyone has any idea how i could fix this it would be greatly appreciated.

 

Thanks


macvaln set the network to their own custom ip.  This way both ip can use port 8000 as your changing the host map access to the web pages...

you could edit gluten and change the port configuration...

Depending on how you setup the docker networks... Not enouth info...

Edited by bmartino1
Data - Typo

  • Community Expert

hmmm..... if this is the only thing running gluten vpn docker, you may be better off using compose where we can set ip in the docker network.

tubearchivist through gluetun

Requirements:

Be routed through Gluetun for external traffic.

Still have a LAN-accessible WebUI using your br0 macvlan.

 

This requires a dual-network setup:

br0 for LAN WebUI access (assigns TubeArchivist a static IP).

container:gluetun to route outbound traffic via the VPN.

I assume you are using unraids default network as you don't have any other info ipvlan should be fine as you're trying to tie 2 networks to the docker container...

Example compose file:
 

#version: "3.9"

services:
  gluetun:
    image: qmcgaw/gluetun
    container_name: gluetun
    cap_add:
      - NET_ADMIN
    networks:
      - gluetun_net
    ports:
      - 8080:8000  # Gluetun web UI or exposed port so connect to gluten at port 8080
    volumes:
      - ./gluetun:/gluetun
    environment:
      - VPN_SERVICE_PROVIDER=custom
      - OPENVPN_USER=your_user
      - OPENVPN_PASSWORD=your_pass
      # Add other required VPN config envs here

  tubearchivist:
    image: bbilly1/tubearchivist
    container_name: tubearchivist
    depends_on:
      - gluetun
    network_mode: "service:gluetun"  # Route traffic through Gluetun
    volumes:
      - ./tubearchivist:/config
    environment:
      - ELASTICSEARCH_HOST=http://<LAN-IP>:9200
      - REDIS_HOST=http://<LAN-IP>:6379
    labels:
      - "traefik.enable=false"

  tubearchivist_lan:
    image: bbilly1/tubearchivist
    container_name: tubearchivist_lan
    network_mode: "br0"
    mac_address: xx:xx:xx:xx:xx:xx  # Optional: Set static MAC if needed
    environment:
      - ELASTICSEARCH_HOST=http://<LAN-IP>:9200
      - REDIS_HOST=http://<LAN-IP>:6379
    volumes:
      - ./tubearchivist:/config
    ports:
      - "8000:8000"  # LAN web UI port using port 8000
    depends_on:
      - tubearchivist
    deploy:
      restart_policy:
        condition: any

networks:
  gluetun_net:
    driver: bridge


Compose notes:

Explanation:

tubearchivist: Runs through Gluetun via network_mode: "service:gluetun".

tubearchivist_lan: Second instance, same data/config volume, uses br0 for LAN access.

This avoids exposing the VPN-connected container while still giving you a local web interface.

 

Tips:

Use the same volume for both tubearchivist and tubearchivist_lan to prevent data/config mismatch.

Make sure br0 is created in Unraid Docker settings.

Only tubearchivist_lan should be accessible via LAN.


Otherwise, it would be easier to change the gluten web ui port...
as example using the compose above, we are mapping gluten web port 8080 to port 8000 to access gluten web ui...

would need more info to assist otherwise...

 

Edited by bmartino1
Data - Typo

  • Author

Hey thanks for responding. I'll attacha images to the problem i'm having. I have remapped the ports that are conflicting but routing the traffic of one container through another container seems to ignore the remap. I'm kinda new to all this but to me it seems i would have to change the port that nginx is using inside the container.

glu1.png

glu2.png

ta1.png

ta2.png

  • Community Expert

Correct that because the entire network doesn't go though the docker network and nat based port mapping when using "container:gluetun" to route outbound traffic via the VPN...

You will need to console into the image for tubearchivist. cat the nginx config file and use a docker variable to 1 for 1 replace that nginx config with your own to change the port.
 


So lets review docker networks first... (as this is achievable just not though easy means...)

 

https://docs.docker.com/engine/network/


and how the driver types dictate the docker networks...

Quote

image.png.4873e13828635c07bbcff5262e383338.png


to map another docker container into another container via:
 

example: --network=container:CONTAINERID IMAGE

 

Unraid v7 per the docker template support theses docker network types:

image.png.4551ab18aeed272f96829a905c4851df.png

lets break it down:

 

1. Bridge

Default Docker network mode.

Ports are explicitly mapped (HostPort:ContainerPort) in the template.

 

Example:
If the app listens on port 8000 in the container, you can map it to 8050 on the host.

Min docker compose yaml example...
 

HTTP_CONTROL_SERVER_PORT: 8050 (host)
Container port: 8000

as the unraid template constructs a docker run file... Which results in something like:

 

-p 8050:8000

where we tell nat that going to port 8050 need to point to port 8000. This doesn't stop the serve using port 8000 from still broadcasting and using the port...

NAT rule apply here to dockers default network type as you traverse to the unriad host ip to port to connect to this service...

2. Host

-The container shares the host’s network stack.

-No port mapping is needed or allowed. All ports used by the container must be free on the host.
Example docker run call:
 

docker run --network=host ...

Whatever port the app listens on in the container (say 8000), that port must be free on the host.

Use this only when an app needs to auto-discover services or work with broadcast/multicast.

 

Normally used for databases... They will replace unraids host level ports so if you run a web server on port 80 or 443 it will block and prevent the unraid web ui from working...

 

3. Container (aka --network=container:<container_id_or_name>)

-Shares network with another running container.

-Use case: VPN containers (like Gluetun).

-The secondary container inherits the network namespace of the VPN container.
so setting:
 

--network=container:gluetun

 

Then TubeArchivist won’t have its own ports, it’s using Gluetun’s network stack.

 

This means:

No port mappings in the template will be used.

Only ports exposed by Gluetun can be used to reach the app.

You cannot bind the same port twice across containers using the same network.

 

This is why the remapping failed!


-So even though the template says:
Container Port: 8000
Host Port: 8050
--That only works in Bridge mode. In --network=container:gluetun, the app must be accessed via the VPN container's IP/interface and exposed ports.

4. None

The container has no network access at all.

Generally used for isolated or CLI-only tools.

*Similar to host... Rarely used dockers applications like Vim for example a application not found natively on unraid you can install vim with network none and use the consol of the docker to vim access files to path you add to the docker...

5.Custom: br0 / Veth
In my case per the picture it is using my Proxmox Veth... This is the ipvlan/macvlan depending on your docker settings....
image.thumb.png.9f222973d3dabc055479cb914372305d.png

in my case macvlan

*This allows the docker to talk to the same dhcp server and get a lan assigned IP.... this removes the nat port mapping so 8000 would be set to the custom ip you chose...
-I would recommend you use macvlan as well with vpn dockers, so each docker that get a custum ip also gets a randm mac address. ipvlan will share its mac address..
 

-This gives the container its own IP on the LAN (like a VM).

-It appears as a separate device on your network.

-Useful for apps that require unique LAN identity (e.g., mDNS, DLNA).
*It is recommended when running web servers with a web page to use a macvlan/ipvlan in this case using unraids premade docker netwrok for custom (br0, bond0, eth0) depending on your settings and unraid network configurations....

image.png.9b8cdbb4110e6b0ca2c8214ccd8f3f0c.png

 

This said. We can create additional custom docker networks ...

Though they can't be on the same subnet do to internal ip router and host networking configurations...
In example I have 2 nic interfaces. br0 or eth0 the one giving unraid internet will be the custom ipvaln by default.

I can make a docker network that uses the other interface....
and without geting into crazy "forbiden routers" that are vm router sytems and advances unraid netwroking. and moving where gluten cononects to and from...
 it be easeier and faster to grab the necessary data path and make a config change to move the port...

Comes down to how you want to interact with it...



 

  • Community Expert

since your usig 
image.png.509019bc666b74aa931508f37f0f2a72.png

this may be better asked and linked on the forum support page:


so the question is how do you change the nginx container port configuration in the docker image...
to do this we first need a copy of the nginx configuration file...

also review the install notes...

https://docs.tubearchivist.com/installation/unraid/

https://docs.tubearchivist.com/installation/env-vars/


 

Quote

TA_PORT#

Optional Type: Number
This changes the actual port Nginx is listening on. That is the public port exposed through the docker container. If you have a port collision on default port 8000, see bellow.

so you will need to add a docker variable TA_PORT and set that to 8080 per teh docs, this will change the port nginx is using...

if not we will need to make a docker 1 for 1 file replacing eh nginx config...

Edited by bmartino1
Data

  • Author

Hey thank you so much for helping, I got it working with another vpn container.

Thanks again for your time.

  • 9 months later...

Which VPN did you use? I am having the same issue. Tried adding the variable NO_PROXY to the TA container after directing it through the GluetunVPN containere but no matter what I tried to capture the local network addresses, the container would not communicate with the ES and Redis containers.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.