1configs:
2 tailscale_serve:
3 content: |
4 {
5 "TCP": {
6 "443": {
7 "HTTPS": true
8 }
9 },
10 "Web": {
11 "$${TS_CERT_DOMAIN}:443": {
12 "Handlers": {
13 "/": {
14 "Proxy": "http://gluetun:8080"
15 }
16 }
17 }
18 },
19 "AllowFunnel": {
20 "$${TS_CERT_DOMAIN}:443": false
21 }
22 }
23
24services:
25 qbittorrent-server:
26 image: linuxserver/qbittorrent:latest
27 container_name: qbittorrent-server
28 environment:
29 ...
30 - WEBUI_PORT=8080
31 volumes:
32 ...
33 network_mode: service:gluetun # run on the vpn network
34 depends_on:
35 gluetun:
36 condition: service_healthy
37 restart: unless-stopped
38
39 gluetun:
40 image: qmcgaw/gluetun
41 cap_add:
42 - NET_ADMIN
43 devices:
44 - /dev/net/tun:/dev/net/tun
45 ports:
46 - 8080:8080
47 environment:
48 ...
49 networks:
50 - internal_net
51
52 qbittorrent-tailscale:
53 image: tailscale/tailscale:latest
54 container_name: qbittorrent-tailscale
55 user: 1000:1000
56 cap_add:
57 - NET_ADMIN
58 - NET_RAW
59 environment:
60 ...
61 - TS_SERVE_CONFIG=/stack-config/serve.json
62 configs:
63 - source: tailscale_serve
64 target: /stack-config/serve.json
65 volumes:
66 ...
67 restart: unless-stopped
68 networks:
69 - internal_net
70 depends_on:
71 - qbittorrent-server
72
73networks:
74 internal_net:
75 driver: bridge