transmission.yaml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. ---
  2. apiVersion: v1
  3. kind: Secret
  4. metadata:
  5. name: pia-auth
  6. data:
  7. username: cDk1MDkyMDU=
  8. password: N2lrSjhrc0ozSw==
  9. ---
  10. kind: Deployment
  11. apiVersion: apps/v1
  12. metadata:
  13. name: transmission
  14. labels:
  15. app: transmission
  16. spec:
  17. replicas: 1
  18. selector:
  19. matchLabels:
  20. app: transmission
  21. template:
  22. metadata:
  23. labels:
  24. app: transmission
  25. spec:
  26. containers:
  27. - name: transmission
  28. image: haugene/transmission-openvpn
  29. securityContext:
  30. capabilities:
  31. add:
  32. - NET_ADMIN
  33. env:
  34. - name: LOCAL_NETWORK
  35. value: 10.42.0.0/16
  36. - name: PUID
  37. value: "1000"
  38. - name: PGID
  39. value: "1000"
  40. - name: OPENVPN_PROVIDER
  41. value: PIA
  42. - name: TRANSMISSION_DOWNLOAD_DIR
  43. value: "/downloads/transmission"
  44. - name: OPENVPN_USERNAME
  45. valueFrom:
  46. secretKeyRef:
  47. name: pia-auth
  48. key: username
  49. - name: OPENVPN_PASSWORD
  50. valueFrom:
  51. secretKeyRef:
  52. name: pia-auth
  53. key: password
  54. ports:
  55. - name: web
  56. containerPort: 9091
  57. volumeMounts:
  58. - name: media-volume
  59. mountPath: "/downloads/transmission"
  60. subPath: "downloads/transmission"
  61. - name: "transmission-settings-json"
  62. mountPath: "/config/transmission-home/settings.json"
  63. subPath: "settings.json"
  64. volumes:
  65. - name: media-volume
  66. persistentVolumeClaim:
  67. claimName: media-pvc
  68. - name: "transmission-settings-json"
  69. configMap:
  70. name: "transmission-settings-json"
  71. ---
  72. apiVersion: v1
  73. kind: Service
  74. metadata:
  75. name: transmission
  76. spec:
  77. type: ClusterIP
  78. ports:
  79. - name: web
  80. port: 9091
  81. targetPort: 9091
  82. selector:
  83. app: transmission
  84. ---
  85. apiVersion: traefik.containo.us/v1alpha1
  86. kind: IngressRoute
  87. metadata:
  88. name: transmission-ingress-route
  89. namespace: default
  90. spec:
  91. entryPoints:
  92. - web
  93. routes:
  94. - match: Host(`transmission.dezendorf.net`)
  95. kind: Rule
  96. middlewares:
  97. - name: redirecthttps
  98. services:
  99. - name: transmission
  100. port: 9091
  101. ---
  102. apiVersion: traefik.containo.us/v1alpha1
  103. kind: IngressRoute
  104. metadata:
  105. name: transmission-websecure-route
  106. namespace: default
  107. spec:
  108. entryPoints:
  109. - websecure
  110. routes:
  111. - match: Host(`transmission.dezendorf.net`)
  112. kind: Rule
  113. services:
  114. - name: transmission
  115. port: 9091
  116. tls:
  117. certResolver: myresolver
  118. ---
  119. apiVersion: v1
  120. kind: ConfigMap
  121. metadata:
  122. name: transmission-settings-json
  123. namespace: default
  124. data:
  125. settings.json: |
  126. {
  127. "alt-speed-down": 50,
  128. "alt-speed-enabled": false,
  129. "alt-speed-time-begin": 540,
  130. "alt-speed-time-day": 127,
  131. "alt-speed-time-enabled": false,
  132. "alt-speed-time-end": 1020,
  133. "alt-speed-up": 50,
  134. "announce-ip": "",
  135. "announce-ip-enabled": false,
  136. "anti-brute-force-enabled": false,
  137. "anti-brute-force-threshold": 100,
  138. "bind-address-ipv4": "10.9.112.109",
  139. "bind-address-ipv6": "::",
  140. "blocklist-enabled": false,
  141. "blocklist-url": "http://www.example.com/blocklist",
  142. "cache-size-mb": 4,
  143. "default-trackers": "",
  144. "dht-enabled": true,
  145. "download-dir": "/downloads/transmission",
  146. "download-queue-enabled": true,
  147. "download-queue-size": 5,
  148. "encryption": 1,
  149. "idle-seeding-limit": 30,
  150. "idle-seeding-limit-enabled": false,
  151. "incomplete-dir": "/data/incomplete",
  152. "incomplete-dir-enabled": true,
  153. "lpd-enabled": false,
  154. "message-level": 2,
  155. "peer-congestion-algorithm": "",
  156. "peer-id-ttl-hours": 6,
  157. "peer-limit-global": 240,
  158. "peer-limit-per-torrent": 60,
  159. "peer-port": 51413,
  160. "peer-port-random-high": 65535,
  161. "peer-port-random-low": 49152,
  162. "peer-port-random-on-start": false,
  163. "peer-socket-tos": "le",
  164. "pex-enabled": true,
  165. "port-forwarding-enabled": false,
  166. "preallocation": 1,
  167. "prefetch-enabled": true,
  168. "queue-stalled-enabled": true,
  169. "queue-stalled-minutes": 30,
  170. "ratio-limit": 2,
  171. "ratio-limit-enabled": false,
  172. "rename-partial-files": true,
  173. "rpc-authentication-required": false,
  174. "rpc-bind-address": "0.0.0.0",
  175. "rpc-enabled": true,
  176. "rpc-host-whitelist": "",
  177. "rpc-host-whitelist-enabled": false,
  178. "rpc-password": "{932ba2846f4c1b58f4ebab3870e6209c2648d924t3CWARdo",
  179. "rpc-port": 9091,
  180. "rpc-socket-mode": "0750",
  181. "rpc-url": "/transmission/",
  182. "rpc-username": "",
  183. "rpc-whitelist": "127.0.0.1,::1",
  184. "rpc-whitelist-enabled": false,
  185. "scrape-paused-torrents-enabled": true,
  186. "script-torrent-added-enabled": false,
  187. "script-torrent-added-filename": "",
  188. "script-torrent-done-enabled": false,
  189. "script-torrent-done-filename": "",
  190. "script-torrent-done-seeding-enabled": false,
  191. "script-torrent-done-seeding-filename": "",
  192. "seed-queue-enabled": false,
  193. "seed-queue-size": 10,
  194. "speed-limit-down": 100,
  195. "speed-limit-down-enabled": false,
  196. "speed-limit-up": 100,
  197. "speed-limit-up-enabled": false,
  198. "start-added-torrents": true,
  199. "tcp-enabled": true,
  200. "torrent-added-verify-mode": "fast",
  201. "trash-original-torrent-files": false,
  202. "umask": "002",
  203. "upload-slots-per-torrent": 14,
  204. "utp-enabled": false,
  205. "watch-dir": "/data/watch",
  206. "watch-dir-enabled": true,
  207. "watch-dir-force-generic": false
  208. }