123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- {% set tpl = ix_lib.base.render.Render(values) %}
- {% set perm_container = tpl.deps.perms(values.consts.perms_container_name) %}
- {% set migrations = tpl.add_container(values.consts.migrations_container_name, "image") %}
- {% set backend = tpl.add_container(values.consts.backend_container_name, "image") %}
- {% set frontend = tpl.add_container(values.consts.frontend_container_name, "frontend_image") %}
- {% set admin = tpl.add_container(values.consts.admin_container_name, "admin_image") %}
- {% set pg_config = {
- "user": values.consts.db_user,
- "password": values.hoppscotch.db_password,
- "database": values.consts.db_name,
- "volume": values.storage.postgres_data,
- } %}
- {% set postgres = tpl.deps.postgres(values.consts.postgres_container_name, values.hoppscotch.postgres_image_selector,pg_config, perm_container) %}
- {% set containers = [migrations, backend, frontend, admin] %}
- {% for c in containers %}
- {% set auth_providers = namespace(x=[]) %}
- {% do c.environment.add_env("DATABASE_URL", postgres.get_url("postgres")) %}
- {% do c.environment.add_env("DATA_ENCRYPTION_KEY", values.hoppscotch.data_encryption_key) %}
- {% do c.environment.add_env("VITE_BACKEND_GQL_URL", "%s/graphql" | format(values.hoppscotch.urls.backend)) %}
- {% do c.environment.add_env("VITE_BACKEND_WS_URL", "ws:%s/graphql" | format(values.hoppscotch.urls.backend)) %}
- {% do c.environment.add_env("VITE_BACKEND_API_URL", "%s/v1" | format(values.hoppscotch.urls.backend)) %}
- {% do c.environment.add_env("VITE_BASE_URL", values.hoppscotch.urls.frontend) %}
- {% do c.environment.add_env("VITE_SHORTCODE_BASE_URL", values.hoppscotch.urls.frontend) %}
- {% do c.environment.add_env("VITE_ADMIN_URL", values.hoppscotch.urls.admin) %}
- {% do c.environment.add_env("WHITELISTED_ORIGINS", ",".join([
- values.hoppscotch.urls.backend,
- values.hoppscotch.urls.frontend,
- values.hoppscotch.urls.admin,
- values.hoppscotch.urls.app_bundle,
- "app://hoppscotch",
- ]) ) %}
- {% do c.environment.add_user_envs(values.hoppscotch.additional_envs) %}
- {% for store in values.storage.additional_storage %}
- {% do c.add_storage(store.mount_path, store) %}
- {% endfor %}
- {% endfor %}
- {% do migrations.healthcheck.disable() %}
- {% do migrations.restart.set_policy("on-failure", 1) %}
- {% do migrations.deploy.resources.set_profile("low") %}
- {% do migrations.remove_devices() %}
- {% do migrations.set_command(["sh", "-c", "pnpx prisma migrate deploy"]) %}
- {% do migrations.depends.add_dependency(values.consts.postgres_container_name, "service_healthy") %}
- {% do backend.healthcheck.set_test("curl", {"port": 80, "path": "/ping"}) %}
- {% do backend.depends.add_dependency(values.consts.migrations_container_name, "service_completed_successfully") %}
- {% do backend.depends.add_dependency(values.consts.postgres_container_name, "service_healthy") %}
- {% do backend.add_port(values.network.backend_web_port, {"container_port": 80}) %}
- {% do backend.add_storage("/usr/src/app/node_modules", {"type": "anonymous"}) %}
- {% do frontend.healthcheck.set_test("curl", {"port": 80, "path": "/ping"}) %}
- {% do frontend.depends.add_dependency(values.consts.backend_container_name, "service_started") %}
- {% do frontend.add_port(values.network.frontend_web_port, {"container_port": 80}) %}
- {% do frontend.add_port(values.network.app_bundle_port, {"container_port": 3200}) %}
- {% do admin.healthcheck.set_test("curl", {"port": 80, "path": "/ping"}) %}
- {% do admin.depends.add_dependency(values.consts.backend_container_name, "service_started") %}
- {% do admin.add_port(values.network.admin_web_port, {"container_port": 80}) %}
- {% if perm_container.has_actions() %}
- {% do perm_container.activate() %}
- {% do migrations.depends.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %}
- {% do backend.depends.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %}
- {% do frontend.depends.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %}
- {% do admin.depends.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %}
- {% do postgres.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %}
- {% endif %}
- {% do tpl.portals.add(values.network.frontend_web_port) %}
- {% do tpl.portals.add(values.network.admin_web_port, {"name": "Admin"}) %}
- {{ tpl.render() | tojson }}
|