docker-compose.yaml 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. {% set tpl = ix_lib.base.render.Render(values) %}
  2. {% set c1 = tpl.add_container(values.consts.unifi_protect_backup_container_name, "image") %}
  3. {% do c1.set_user(0, 0) %}
  4. {% do c1.add_caps(["CHOWN", "FOWNER", "SETGID", "SETUID"]) %}
  5. {% do c1.healthcheck.disable() %}
  6. {% do c1.environment.add_env("UFP_USERNAME", values.unifi_protect_backup.username) %}
  7. {% do c1.environment.add_env("UFP_PASSWORD", values.unifi_protect_backup.password) %}
  8. {% do c1.environment.add_env("UFP_ADDRESS", values.unifi_protect_backup.address) %}
  9. {% do c1.environment.add_env("UFP_PORT", values.unifi_protect_backup.port) %}
  10. {% do c1.environment.add_env("UFP_SSL_VERIFY", values.unifi_protect_backup.ssl_verify) %}
  11. {% do c1.environment.add_env("SQLITE_PATH", "/config/database/events.sqlite") %}
  12. {% do c1.environment.add_env("RCLONE_DESTINATION", values.unifi_protect_backup.rclone_destination) %}
  13. {% do c1.environment.add_env("SKIP_MISSING", values.unifi_protect_backup.skip_missing) %}
  14. {% if values.unifi_protect_backup.ignore_cameras %}
  15. {% do c1.environment.add_env("UFP_IGNORE_CAMERAS", values.unifi_protect_backup.ignore_cameras|join(" ")) %}
  16. {% endif %}
  17. {% if values.unifi_protect_backup.detection_types %}
  18. {% do c1.environment.add_env("UFP_DETECTION_TYPES", values.unifi_protect_backup.detection_types|join(",")) %}
  19. {% endif %}
  20. {% if values.unifi_protect_backup.rclone_args %}
  21. {% do c1.environment.add_env("RCLONE_ARGS", values.unifi_protect_backup.rclone_args|join(" ")) %}
  22. {% endif %}
  23. {% if values.unifi_protect_backup.rclone_purge_args %}
  24. {% do c1.environment.add_env("RCLONE_PURGE_ARGS", values.unifi_protect_backup.rclone_purge_args|join(" ")) %}
  25. {% endif %}
  26. {% do c1.environment.add_user_envs(values.unifi_protect_backup.additional_envs) %}
  27. {% do c1.add_storage("/data", values.storage.data) %}
  28. {% do c1.add_storage("/config", values.storage.config) %}
  29. {% for store in values.storage.additional_storage %}
  30. {% do c1.add_storage(store.mount_path, store) %}
  31. {% endfor %}
  32. {{ tpl.render() | tojson }}