| 1 | amends "../../config/Service.pkl" |
| 2 | |
| 3 | import "../../config/site.pkl" as site |
| 4 | |
| 5 | meta { name = "qBittorrent" } |
| 6 | rollout = "simple" |
| 7 | healthyDeadline = "15m" |
| 8 | prepare = "prepare.py" |
| 9 | |
| 10 | requiredSecrets { |
| 11 | "vpn_user" |
| 12 | "vpn_pass" |
| 13 | } |
| 14 | |
| 15 | container { |
| 16 | image = "docker.io/binhex/arch-qbittorrentvpn@sha256:7320d195ca582b236207b88f483319cd49b08c0665b22b945c3d4cebcb601a17" |
| 17 | imageUser = true |
| 18 | cpu = 200 |
| 19 | memory = 1024 |
| 20 | capAdd { "NET_ADMIN" } |
| 21 | devices { "/dev/net/tun" } |
| 22 | |
| 23 | http { |
| 24 | containerPort = 23938 |
| 25 | subdomain = "seedbox" |
| 26 | authRole = "media-manage" |
| 27 | } |
| 28 | tcp { |
| 29 | name = "internal" |
| 30 | containerPort = 23938 |
| 31 | hostPort = 30038 |
| 32 | loopback = false |
| 33 | } |
| 34 | |
| 35 | volumes { |
| 36 | ["/config"] {} |
| 37 | ["/data/tmp"] {} |
| 38 | for (name in List("Seedbox", "torrent")) { |
| 39 | ["/data/media/\(name)"] { src = "\(site.mediaRoot)/Seedbox"; readOnly = site.mediaReadOnly } |
| 40 | } |
| 41 | for (name, folder in site.jellyfinFolders) { |
| 42 | ["/data/media/jellyfin/\(name)"] { src = "\(site.mediaRoot)/\(folder)"; readOnly = site.mediaReadOnly } |
| 43 | } |
| 44 | ["/config/openvpn/profile.ovpn"] { config = "openvpn/profile.ovpn" } |
| 45 | } |
| 46 | tmpfs { "/config/openvpn:size=1m,mode=0700" } |
| 47 | |
| 48 | env { |
| 49 | ["TZ"] = "America/Los_Angeles" |
| 50 | ["VPN_ENABLED"] = "yes" |
| 51 | ["VPN_PROV"] = "pia" |
| 52 | ["VPN_CLIENT"] = "openvpn" |
| 53 | ["VPN_USER"] = "${secret.own.vpn_user}" |
| 54 | ["VPN_PASS"] = "${secret.own.vpn_pass}" |
| 55 | ["LAN_NETWORK"] = "10.88.0.0/16" |
| 56 | ["ENABLE_STARTUP_SCRIPTS"] = "no" |
| 57 | ["ENABLE_PRIVOXY"] = "no" |
| 58 | ["ENABLE_SOCKS"] = "no" |
| 59 | ["STRICT_PORT_FORWARD"] = "no" |
| 60 | ["WEBUI_PORT"] = "23938" |
| 61 | ["PUID"] = "\(module.uid)" |
| 62 | ["PGID"] = "\(site.cloverGid)" |
| 63 | ["UMASK"] = "002" |
| 64 | } |
| 65 | } |