OverviewFilesCommitsIssuesDocsReleasesPeers

P2P-Hiverelay / truenas-app / templates / docker-compose.yaml

53 lines · yaml ref:
{% set tpl = ix_lib.base.render.Render(values) %}

{% set c1 = tpl.add_container(values.consts.blindspark_container_name, "image") %}
{% set perm_container = tpl.deps.perms(values.consts.perms_container_name) %}
{% set perms_config = {"uid": values.consts.run_as_user, "gid": values.consts.run_as_group, "mode": "check"} %}

{% do c1.set_user(values.consts.run_as_user, values.consts.run_as_group) %}

{% if values.network.host_network %}
  {% set internal_port = values.network.web_port.port_number %}
{% else %}
  {% set internal_port = values.consts.default_api_port %}
{% endif %}

{% set command = namespace(args=[
  "start",
  "--storage", "/data",
  "--port", "%d" | format(internal_port)
]) %}
{% if values.blindspark.holesail %}
  {% do command.args.append("--holesail") %}
{% endif %}
{% do c1.set_command(command.args) %}

{% do c1.healthcheck.set_test("wget", {"port": internal_port, "path": "/health"}) %}
{% do c1.healthcheck.set_start_period(30) %}

{% do c1.environment.add_env("HOME", "/data") %}
{% do c1.environment.add_env("HIVERELAY_STORAGE", "/data") %}
{% do c1.environment.add_env("HIVERELAY_API_KEY", values.blindspark.api_key) %}
{% do c1.environment.add_env("HIVERELAY_ACCEPT_MODE", values.blindspark.accept_mode) %}
{% do c1.environment.add_env("HIVERELAY_MAX_STORAGE", "%dGB" | format(values.blindspark.max_storage_gb)) %}
{% do c1.environment.add_env("HIVERELAY_LOG_LEVEL", values.blindspark.log_level) %}
{% do c1.environment.add_env("HIVERELAY_UI_SIMPLE", values.blindspark.simple_dashboard) %}
{% do c1.environment.add_env("HIVERELAY_UI_EXPOSE_TOKEN", values.blindspark.expose_token) %}
{% do c1.environment.add_user_envs(values.blindspark.additional_envs) %}

{% if not values.network.host_network %}
  {% do c1.add_port(values.network.web_port, {"container_port": internal_port}) %}
{% endif %}

{% do c1.add_storage("/data", values.storage.data) %}
{% do perm_container.add_or_skip_action("data", values.storage.data, perms_config) %}

{% if perm_container.has_actions() %}
  {% do perm_container.activate() %}
  {% do c1.depends.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %}
{% endif %}

{% do tpl.portals.add(values.network.web_port, {"scheme": "http", "path": "/"}) %}

{{ tpl.render() | tojson }}