#
# IMPORTANT NOTE
#
# This chart inherits from our common library chart. You can check the default values/options here:
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
#

# -- Use an initContainer to delete the rtorrent.lock file when the pod starts
# this is only required if `session.use_lock.set = no` is NOT set
# @default -- See values.yaml
initContainers: {}
  # remove-session-lock:
  #   image: busybox
  #   command: ["sh", "-c", "rm -rf /config/.local/share/rtorrent/.session/rtorrent.lock"]
  #   volumeMounts:
  #   - name: config
  #     mountPath: /config

image:
  # -- image repository
  repository: jesec/rtorrent-flood
  # -- image tag
  tag: latest@sha256:f0c894ec459e52d85bc69685247ddbd8e8fcf3709b50bf8ee8b0df3bf69b7b49
  # -- image pull policy
  pullPolicy: IfNotPresent

# -- environment variables. See [image docs](https://github.com/jesec/flood#configuration) for more details.
# @default -- See below
env:
  # -- Set the container timezone
  TZ: UTC
  # -- Folder where Flood stores it's configuration
  HOME: "/config"
  # -- The host that Flood should listen for web connections on
  FLOOD_OPTION_HOST: "0.0.0.0"
  # -- The port that Flood should listen for web connections on
  FLOOD_OPTION_PORT: "3000"
  # -- ADVANCED: rTorrent daemon managed by Flood
  FLOOD_OPTION_RTORRENT: "true"
  # -- Allowed path for file operations
  FLOOD_OPTION_ALLOWEDPATH: "/downloads"

# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
  main:
    ports:
      http:
        port: 3000
  bittorrent:
    enabled: false
    type: ClusterIP
    ports:
      bittorrent:
        enabled: true
        port: 6881
        protocol: TCP
        targetPort: 6881

ingress:
  # -- Enable and configure ingress settings for the chart under this key.
  # @default -- See values.yaml
  main:
    enabled: false

# -- Configure persistence settings for the chart under this key.
# @default -- See values.yaml
persistence:
  config:
    enabled: false

  downloads:
    enabled: false

# -- Minimal configuration provided from https://github.com/jesec/rtorrent/blob/master/doc/rtorrent.rc
# @default -- string
config: |
  session.use_lock.set = no
  method.insert = cfg.basedir,  private|const|string, (cat,(fs.homedir),"/.local/share/rtorrent/")
  method.insert = cfg.download, private|const|string, (cat,"/downloads/","download/")
  method.insert = cfg.logs,     private|const|string, (cat,(cfg.download),"log/")
  method.insert = cfg.logfile,  private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log")
  method.insert = cfg.session,  private|const|string, (cat,(cfg.basedir),".session/")
  method.insert = cfg.watch,    private|const|string, (cat,(cfg.download),"watch/")
  fs.mkdir.recursive = (cat,(cfg.basedir))
  fs.mkdir = (cat,(cfg.download))
  fs.mkdir = (cat,(cfg.logs))
  fs.mkdir = (cat,(cfg.session))
  fs.mkdir = (cat,(cfg.watch))
  fs.mkdir = (cat,(cfg.watch),"/load")
  fs.mkdir = (cat,(cfg.watch),"/start")
  schedule2 = watch_load, 11, 10, ((load.verbose, (cat, (cfg.watch), "load/*.torrent")))
  schedule2 = watch_start, 10, 10, ((load.start_verbose, (cat, (cfg.watch), "start/*.torrent")))
  dht.add_bootstrap = dht.transmissionbt.com:6881
  dht.add_bootstrap = dht.libtorrent.org:25401
  throttle.max_uploads.set = 100
  throttle.max_uploads.global.set = 250
  throttle.min_peers.normal.set = 20
  throttle.max_peers.normal.set = 60
  throttle.min_peers.seed.set = 30
  throttle.max_peers.seed.set = 80
  trackers.numwant.set = 80
  network.port_range.set = 6881-6881
  network.max_open_files.set = 600
  network.max_open_sockets.set = 300
  pieces.memory.max.set = 1800M
  session.path.set = (cat, (cfg.session))
  directory.default.set = (cat, (cfg.download))
  log.execute = (cat, (cfg.logs), "execute.log")
  encoding.add = utf8
  system.daemon.set = true
  system.umask.set = 0002
  system.cwd.set = (directory.default)
  network.http.max_open.set = 50
  network.http.dns_cache_timeout.set = 25
  network.scgi.open_local = (cat,(cfg.basedir),rtorrent.sock)
  print = (cat, "Logging to ", (cfg.logfile))
  log.open_file = "log", (cfg.logfile)
  log.add_output = "info", "log"
