docker-compose.yaml 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. {% set tpl = ix_lib.base.render.Render(values) %}
  2. {% set c1 = tpl.add_container(values.consts.unpackerr_container_name, "image") %}
  3. {% set perm_container = tpl.deps.perms(values.consts.perms_container_name) %}
  4. {% set perms_config = {"uid": values.run_as.user, "gid": values.run_as.group, "mode": "check"} %}
  5. {% do c1.set_user(values.run_as.user, values.run_as.group) %}
  6. {% do c1.healthcheck.disable() %}
  7. {% set sonarr_count = namespace(x=0) %}
  8. {% set radarr_count = namespace(x=0) %}
  9. {% set lidarr_count = namespace(x=0) %}
  10. {% set readarr_count = namespace(x=0) %}
  11. {% set whisparr_count = namespace(x=0) %}
  12. {% for cfg in values.unpackerr.settings %}
  13. {% set var_name = namespace(x="") %}
  14. {% if cfg.type == "sonarr" %}
  15. {% set var_name.x = "UN_SONARR_%d"|format(sonarr_count.x) %}
  16. {% set sonarr_count.x = sonarr_count.x + 1 %}
  17. {% elif cfg.type == "radarr" %}
  18. {% set var_name.x = "UN_RADARR_%d"|format(radarr_count.x) %}
  19. {% set radarr_count.x = radarr_count.x + 1 %}
  20. {% elif cfg.type == "lidarr" %}
  21. {% set var_name.x = "UN_LIDARR_%d"|format(lidarr_count.x) %}
  22. {% set lidarr_count.x = lidarr_count.x + 1 %}
  23. {% elif cfg.type == "readarr" %}
  24. {% set var_name.x = "UN_READARR_%d"|format(readarr_count.x) %}
  25. {% set readarr_count.x = readarr_count.x + 1 %}
  26. {% elif cfg.type == "whisparr" %}
  27. {% set var_name.x = "UN_WHISPARR_%d"|format(whisparr_count.x) %}
  28. {% set whisparr_count.x = whisparr_count.x + 1 %}
  29. {% else %}
  30. {% do tpl.funcs.fail("Unsupported type: %s" | format(cfg.type)) %}
  31. {% endif %}
  32. {% do c1.environment.add_env("%s_URL"|format(var_name.x), cfg.url) %}
  33. {% do c1.environment.add_env("%s_API_KEY"|format(var_name.x), cfg.api_key) %}
  34. {% do c1.environment.add_env("%s_PATHS_0"|format(var_name.x), cfg.paths | tojson) %}
  35. {% do c1.environment.add_env("%s_PROTOCOLS"|format(var_name.x), cfg.protocols|join(",")) %}
  36. {% do c1.environment.add_env("%s_TIMEOUT"|format(var_name.x), "%ds"|format(cfg.timeout)) %}
  37. {% do c1.environment.add_env("%s_DELETE_DELAY"|format(var_name.x), "%ds"|format(cfg.delete_delay)) %}
  38. {% do c1.environment.add_env("%s_DELETE_ORIG"|format(var_name.x), cfg.delete_orig) %}
  39. {% do c1.environment.add_env("%s_SYNCTHING"|format(var_name.x), cfg.syncthing) %}
  40. {% endfor %}
  41. {% do c1.environment.add_user_envs(values.unpackerr.additional_envs) %}
  42. {% for store in values.storage.additional_storage %}
  43. {% do c1.add_storage(store.mount_path, store) %}
  44. {% do perm_container.add_or_skip_action(store.mount_path, store, perms_config) %}
  45. {% endfor %}
  46. {% if perm_container.has_actions() %}
  47. {% do perm_container.activate() %}
  48. {% do c1.depends.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %}
  49. {% endif %}
  50. {% do tpl.portals.add(values.network.web_port) %}
  51. {{ tpl.render() | tojson }}