{"id":27972053,"url":"https://github.com/hyperdxio/helm-charts","last_synced_at":"2025-08-14T21:13:57.687Z","repository":{"id":273009204,"uuid":"918454243","full_name":"hyperdxio/helm-charts","owner":"hyperdxio","description":"Helm Charts for HyperDX OSS V2","archived":false,"fork":false,"pushed_at":"2025-08-12T20:31:40.000Z","size":221,"stargazers_count":24,"open_issues_count":13,"forks_count":20,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-12T22:24:07.216Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperdxio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-18T01:17:02.000Z","updated_at":"2025-08-12T20:29:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"71e41b9d-0e7e-4c8c-8979-064f628bb1f8","html_url":"https://github.com/hyperdxio/helm-charts","commit_stats":null,"previous_names":["hyperdxio/helm-charts"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/hyperdxio/helm-charts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperdxio%2Fhelm-charts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperdxio%2Fhelm-charts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperdxio%2Fhelm-charts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperdxio%2Fhelm-charts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperdxio","download_url":"https://codeload.github.com/hyperdxio/helm-charts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperdxio%2Fhelm-charts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270482378,"owners_count":24591342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-07T22:37:21.643Z","updated_at":"2025-08-14T21:13:57.679Z","avatar_url":"https://github.com/hyperdxio.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HyperDX V2 Helm Charts\n\nWelcome to the official HyperDX Helm charts repository. This guide provides instructions on how to install, configure, and manage your HyperDX V2 deployment using Helm.\n\n## Table of Contents\n\n- [Quick Start](#quick-start)\n- [Deployment Options](#deployment-options)\n  - [Full Stack (Default)](#full-stack-default)\n  - [External ClickHouse](#external-clickhouse)\n  - [External OTEL Collector](#external-otel-collector)\n  - [Minimal Deployment](#minimal-deployment)\n- [Cloud Deployment](#cloud-deployment)\n  - [Google Kubernetes Engine (GKE)](#google-kubernetes-engine-gke)\n  - [Amazon EKS](#amazon-eks)\n  - [Azure AKS](#azure-aks)\n- [Configuration](#configuration)\n  - [API Key Setup](#api-key-setup)\n  - [Task Configuration](#task-configuration)\n  - [Using Secrets](#using-secrets)\n  - [Ingress Setup](#ingress-setup)\n- [Operations](#operations)\n  - [Upgrading](#upgrading-the-chart)\n  - [Uninstalling](#uninstalling-hyperdx)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n\n## Quick Start\n\n### Prerequisites\n\n- [Helm](https://helm.sh/) v3+\n- Kubernetes cluster (v1.20+ recommended)\n- `kubectl` configured to interact with your cluster\n\n### Install HyperDX (Full Stack)\n\n```sh\n# Add the HyperDX Helm repository\nhelm repo add hyperdx https://hyperdxio.github.io/helm-charts\nhelm repo update\n\n# Install with default values (includes ClickHouse, OTEL collector, MongoDB)\nhelm install my-hyperdx hyperdx/hdx-oss-v2\n\n# Get the external IP (for cloud deployments)\nkubectl get services\n\n# Access the UI at http://\u003cEXTERNAL-IP\u003e:3000\n```\n\n**That's it!** HyperDX is now running with all components included.\n\n## Deployment Options\n\n### Full Stack (Default)\n\nBy default, this Helm chart deploys the complete HyperDX stack including:\n- **HyperDX Application** (API, UI, and OpAMP server)\n- **ClickHouse** (for storing logs, traces, and metrics)\n- **OTEL Collector** (for receiving and processing telemetry data)\n- **MongoDB** (for application metadata)\n\nTo install the full stack with default values:\n\n```sh\nhelm install my-hyperdx hyperdx/hdx-oss-v2\n```\n\n### External ClickHouse\n\nIf you have an existing ClickHouse cluster, you have two options for configuring connections:\n\n#### Option 1: Inline Configuration (Simple)\n\n```yaml\n# values-external-clickhouse.yaml\nclickhouse:\n  enabled: false  # Disable the built-in ClickHouse\n\notel:\n  clickhouseEndpoint: \"tcp://your-clickhouse-server:9000\"\n  clickhousePrometheusEndpoint: \"http://your-clickhouse-server:9363\"  # Optional\n\nhyperdx:\n  defaultConnections: |\n    [\n      {\n        \"name\": \"External ClickHouse\",\n        \"host\": \"http://your-clickhouse-server:8123\",\n        \"port\": 8123,\n        \"username\": \"your-username\",\n        \"password\": \"your-password\"\n      }\n    ]\n```\n\n#### Option 2: External Secret (Recommended for Production)\n\nFor production deployments where you want to keep credentials separate from your Helm configuration:\n\n```yaml\n# values-external-clickhouse-secret.yaml\nclickhouse:\n  enabled: false  # Disable the built-in ClickHouse\n\notel:\n  clickhouseEndpoint: \"tcp://your-clickhouse-server:9000\"\n  clickhousePrometheusEndpoint: \"http://your-clickhouse-server:9363\"  # Optional\n\nhyperdx:\n  # Use an existing secret for complete configuration (connections + sources)\n  useExistingConfigSecret: true\n  existingConfigSecret: \"hyperdx-external-config\"\n  existingConfigConnectionsKey: \"connections.json\"\n  existingConfigSourcesKey: \"sources.json\"\n```\n\nCreate your configuration secret:\n\n```bash\n# Create the connections JSON\ncat \u003c\u003cEOF \u003e connections.json\n[\n  {\n    \"name\": \"Production ClickHouse\",\n    \"host\": \"https://your-production-clickhouse.com:8123\",\n    \"port\": 8123,\n    \"username\": \"hyperdx_user\",\n    \"password\": \"your-secure-password\"\n  }\n]\nEOF\n\n# Create the sources JSON\ncat \u003c\u003cEOF \u003e sources.json\n[\n  {\n    \"from\": {\n      \"databaseName\": \"default\",\n      \"tableName\": \"otel_logs\"\n    },\n    \"kind\": \"log\",\n    \"name\": \"Logs\",\n    \"connection\": \"Production ClickHouse\",\n    \"timestampValueExpression\": \"TimestampTime\",\n    \"displayedTimestampValueExpression\": \"Timestamp\",\n    \"implicitColumnExpression\": \"Body\",\n    \"serviceNameExpression\": \"ServiceName\",\n    \"bodyExpression\": \"Body\",\n    \"eventAttributesExpression\": \"LogAttributes\",\n    \"resourceAttributesExpression\": \"ResourceAttributes\",\n    \"severityTextExpression\": \"SeverityText\",\n    \"traceIdExpression\": \"TraceId\",\n    \"spanIdExpression\": \"SpanId\"\n  },\n  {\n    \"from\": {\n      \"databaseName\": \"default\",\n      \"tableName\": \"otel_traces\"\n    },\n    \"kind\": \"trace\",\n    \"name\": \"Traces\",\n    \"connection\": \"Production ClickHouse\",\n    \"timestampValueExpression\": \"Timestamp\",\n    \"displayedTimestampValueExpression\": \"Timestamp\",\n    \"implicitColumnExpression\": \"SpanName\",\n    \"serviceNameExpression\": \"ServiceName\",\n    \"traceIdExpression\": \"TraceId\",\n    \"spanIdExpression\": \"SpanId\",\n    \"durationExpression\": \"Duration\"\n  }\n]\nEOF\n\n# Create the Kubernetes secret\nkubectl create secret generic hyperdx-external-config \\\n  --from-file=connections.json=connections.json \\\n  --from-file=sources.json=sources.json\n\n# Clean up the local files\nrm connections.json sources.json\n```\n\n### External OTEL Collector\n\nIf you have an existing OTEL collector setup:\n\n```yaml\n# values-external-otel.yaml\notel:\n  enabled: false  # Disable the built-in OTEL collector\n\nhyperdx:\n  # Point to your external OTEL collector endpoint\n  otelExporterEndpoint: \"http://your-otel-collector:4318\"\n```\n\n#### Configuring Ingress for OTEL Collector\n\nFor instructions on exposing your OTEL collector endpoints via ingress (including example configuration and best practices), see the [OTEL Collector Ingress](#otel-collector-ingress) section in the [Ingress Setup](#ingress-setup) chapter above.\n\n### Minimal Deployment\n\nFor organizations with existing infrastructure:\n\n```yaml\n# values-minimal.yaml\nclickhouse:\n  enabled: false\n\notel:\n  enabled: false\n\nhyperdx:\n  otelExporterEndpoint: \"http://your-otel-collector:4318\"\n  # Option 1: Inline configuration (for testing/development)\n  defaultConnections: |\n    [\n      {\n        \"name\": \"External ClickHouse\",\n        \"host\": \"http://your-clickhouse-server:8123\",\n        \"port\": 8123,\n        \"username\": \"your-username\",\n        \"password\": \"your-password\"\n      }\n    ]\n  \n  # Option 2: External secret (recommended for production)\n  # useExistingConfigSecret: true\n  # existingConfigSecret: \"my-external-config\"\n  # existingConfigConnectionsKey: \"connections.json\"\n  # existingConfigSourcesKey: \"sources.json\"\n```\n\n## Configuration\n\n### API Key Setup\n\nAfter successfully deploying HyperDX, you'll need to configure the API key to enable the app's telemetry data collection:\n\n1. **Access your HyperDX instance** via the configured ingress or service endpoint\n2. **Log into the HyperDX dashboard** and navigate to Team settings to generate or retrieve your API key\n3. **Update your deployment** with the API key using one of the following methods:\n\n#### Method 1: Update via Helm upgrade with values file\n\nAdd the API key to your `values.yaml`:\n\n```yaml\nhyperdx:\n  apiKey: \"your-api-key-here\"\n```\n\nThen upgrade your deployment:\n\n```sh\nhelm upgrade my-hyperdx hyperdx/hdx-oss-v2 -f values.yaml\n```\n\n#### Method 2: Update via Helm upgrade with --set flag\n\n```sh\nhelm upgrade my-hyperdx hyperdx/hdx-oss-v2 --set hyperdx.apiKey=\"your-api-key-here\"\n```\n\n**Important:** After updating the API key, you need to restart the pods to pick up the new configuration:\n\n```sh\nkubectl rollout restart deployment my-hyperdx-hdx-oss-v2-app my-hyperdx-hdx-oss-v2-otel-collector\n```\n\n**Note:** The chart automatically creates a Kubernetes secret (`\u003crelease-name\u003e-app-secrets`) with your API key. No additional secret configuration is needed unless you want to use an external secret.\n\n## Using Secrets\n\nFor handling sensitive data such as API keys or database credentials, use Kubernetes secrets. The HyperDX Helm charts provide default secret files that you can modify and apply to your cluster.\n\n### Using Pre-Configured Secrets\n\nThe Helm chart includes a default secret template located at [`charts/hdx-oss-v2/templates/secrets.yaml`](https://github.com/hyperdxio/helm-charts/blob/main/charts/hdx-oss-v2/templates/secrets.yaml). This file provides a base structure for managing secrets.\n\n\nIf you need to manually apply a secret, modify and apply the provided `secrets.yaml` template:\n\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: hyperdx-secret\n  annotations:\n    \"helm.sh/resource-policy\": keep\ntype: Opaque\ndata:\n  API_KEY: \u003cbase64-encoded-api-key\u003e\n```\n\nApply the secret to your cluster:\n\n```sh\nkubectl apply -f secrets.yaml\n```\n\n### Creating a Custom Secret\n\nIf you prefer, you can create a custom Kubernetes secret manually:\n\n```sh\nkubectl create secret generic hyperdx-secret \\\n  --from-literal=API_KEY=my-secret-api-key\n```\n\n### Referencing a Secret in `values.yaml`\n\n```yaml\nhyperdx:\n  apiKey:\n    valueFrom:\n      secretKeyRef:\n        name: hyperdx-secret\n        key: API_KEY\n```\n\n## Task Configuration\n\nBy default, there is one task in the chart setup as a cronjob, responsible for checking whether alerts should fire. Here are its configuration options:\n\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `tasks.enabled` | Enable/Disable cron tasks in the cluster. By default, the HyperDX image will run cron tasks intra process. Change to true if you'd rather use a separate cron task in the cluster. | `false` |\n| `tasks.checkAlerts.schedule` | Cron schedule for the check-alerts task | `*/1 * * * *` |\n| `tasks.checkAlerts.resources` | Resource requests and limits for the check-alerts task | See `values.yaml` |\n\n## Ingress Setup\n\n- [General Ingress Setup](#general-ingress-setup)\n- [OTEL Collector Ingress](#otel-collector-ingress)\n- [Troubleshooting Ingress](#troubleshooting-ingress)\n\n### General Ingress Setup\n\nTo expose the HyperDX UI and API via a domain name, enable ingress in your `values.yaml`:\n\n```yaml\nhyperdx:\n  ingress:\n    enabled: true\n    host: \"hyperdx.yourdomain.com\"  # Set this to your desired domain\n```\n\n#### Configuring `ingress.host` and `hyperdx.frontendUrl`\n\n- **`hyperdx.ingress.host`**: Set to the domain you want to use for accessing HyperDX (e.g., `hyperdx.yourdomain.com`).\n- **`hyperdx.frontendUrl`**: Should match the ingress host and include the protocol (e.g., `https://hyperdx.yourdomain.com`).\n\n**Example:**\n```yaml\nhyperdx:\n  frontendUrl: \"https://hyperdx.yourdomain.com\"\n  ingress:\n    enabled: true\n    host: \"hyperdx.yourdomain.com\"\n```\n\nThis ensures that all generated links, cookies, and redirects work correctly.\n\n#### Enabling TLS (HTTPS)\n\nTo secure your deployment with HTTPS, enable TLS in your ingress configuration:\n\n```yaml\nhyperdx:\n  ingress:\n    enabled: true\n    host: \"hyperdx.yourdomain.com\"\n    tls:\n      enabled: true\n      tlsSecretName: \"hyperdx-tls\"  # Name of the Kubernetes TLS secret\n```\n\n- Create a Kubernetes TLS secret with your certificate and key:\n  ```sh\n  kubectl create secret tls hyperdx-tls \\\n    --cert=path/to/tls.crt \\\n    --key=path/to/tls.key\n  ```\n- The ingress will reference this secret to terminate HTTPS connections.\n\n#### Example Minimal Ingress YAML\n\n```yaml\napiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n  name: hyperdx-app-ingress\n  annotations:\n    nginx.ingress.kubernetes.io/rewrite-target: /$1\n    nginx.ingress.kubernetes.io/use-regex: \"true\"\nspec:\n  ingressClassName: nginx\n  rules:\n    - host: hyperdx.yourdomain.com\n      http:\n        paths:\n          - path: /(.*)\n            pathType: ImplementationSpecific\n            backend:\n              service:\n                name: \u003cservice-name\u003e\n                port:\n                  number: 3000\n  tls:\n    - hosts:\n        - hyperdx.yourdomain.com\n      secretName: hyperdx-tls\n```\n\n#### Common Pitfalls\n\n- **Path and Rewrite Configuration:**\n  - For Next.js and other SPAs, always use a regex path and rewrite annotation as shown above. Do not use just `path: /` without a rewrite, as this will break static asset serving.\n- **Mismatched `frontendUrl` and `ingress.host`:**\n  - If these do not match, you may experience issues with cookies, redirects, and asset loading.\n- **TLS Misconfiguration:**\n  - Ensure your TLS secret is valid and referenced correctly in the ingress.\n  - Browsers may block insecure content if you access the app over HTTP when TLS is enabled.\n- **Ingress Controller Version:**\n  - Some features (like regex paths and rewrites) require recent versions of nginx ingress controller. Check your version with:\n    ```sh\n    kubectl -n ingress-nginx get pods -l app.kubernetes.io/name=ingress-nginx -o jsonpath=\"{.items[0].spec.containers[0].image}\"\n    ```\n\n---\n\n### OTEL Collector Ingress\n\nIf you need to expose your OTEL collector endpoints (for traces, metrics, logs) through ingress, you can use the `additionalIngresses` configuration. This is useful for organizations that want to send telemetry data from outside the cluster or use a custom domain for the collector.\n\n**Example configuration:**\n\n```yaml\nhyperdx:\n  ingress:\n    enabled: true\n    additionalIngresses:\n      - name: otel-collector\n        annotations:\n          nginx.ingress.kubernetes.io/ssl-redirect: \"false\"\n          nginx.ingress.kubernetes.io/force-ssl-redirect: \"false\"\n          nginx.ingress.kubernetes.io/use-regex: \"true\"\n        ingressClassName: nginx\n        hosts:\n          - host: collector.yourdomain.com\n            paths:\n              - path: /v1/(traces|metrics|logs)\n                pathType: Prefix\n                port: 4318\n                name: otel-collector\n        tls:\n          - hosts:\n              - collector.yourdomain.com\n            secretName: collector-tls\n```\n\n- This creates a separate ingress resource for the OTEL collector endpoints.\n- You can use a different domain, configure specific TLS settings, and apply custom annotations for the collector ingress.\n- The regex path rule allows you to route all OTLP signals (traces, metrics, logs) through a single rule.\n\n**Note:**\n- If you do not need to expose the OTEL collector externally, you can skip this section.\n- For most users, the general ingress setup is sufficient.\n\n---\n\n### Troubleshooting Ingress\n\n- **Check Ingress Resource:**\n  ```sh\n  kubectl get ingress -A\n  kubectl describe ingress \u003cingress-name\u003e\n  ```\n- **Check Pod Logs:**\n  ```sh\n  kubectl logs -l app.kubernetes.io/name=ingress-nginx -n ingress-nginx\n  ```\n- **Test Asset URLs:**\n  Use `curl` to verify static assets are served as JS, not HTML:\n  ```sh\n  curl -I https://hyperdx.yourdomain.com/_next/static/chunks/main-xxxx.js\n  # Should return Content-Type: application/javascript\n  ```\n- **Browser DevTools:**\n  - Check the Network tab for 404s or assets returning HTML instead of JS.\n  - Look for errors like \"Unexpected token \u003c\" in the console (indicates HTML returned for JS).\n- **Check for Path Rewrites:**\n  - Ensure the ingress is not stripping or incorrectly rewriting asset paths.\n- **Clear Browser and CDN Cache:**\n  - After changes, clear your browser cache and any CDN/proxy cache to avoid stale assets.\n\n---\n\n## Operations\n\n### Upgrading the Chart\n\nTo upgrade to a newer version:\n\n```sh\nhelm upgrade my-hyperdx hyperdx/hdx-oss-v2 -f values.yaml\n```\n\nTo check available chart versions:\n\n```sh\nhelm search repo hyperdx\n```\n\n### Uninstalling HyperDX\n\nTo remove the deployment:\n\n```sh\nhelm uninstall my-hyperdx\n```\n\nThis will remove all resources associated with the release, but persistent data (if any) may remain.\n\n## Cloud Deployment\n\n### Google Kubernetes Engine (GKE)\n\nWhen deploying to GKE, you may need to override certain values due to cloud-specific networking behavior:\n\n#### LoadBalancer DNS Resolution Issue\n\nGKE's LoadBalancer service can cause internal DNS resolution issues where pod-to-pod communication resolves to external IPs instead of staying within the cluster network. This specifically affects the OTEL collector's connection to the OpAMP server.\n\n**Symptoms:**\n- OTEL collector logs showing \"connection refused\" errors with cluster IP addresses\n- OpAMP connection failures like: `dial tcp 34.118.227.30:4320: connect: connection refused`\n\n**Solution:**\nUse the fully qualified domain name (FQDN) for the OpAMP server URL:\n\n```bash\nhelm install my-hyperdx hyperdx/hdx-oss-v2 \\\n  --set hyperdx.frontendUrl=\"http://your-external-ip-or-domain.com\" \\\n  --set otel.opampServerUrl=\"http://my-hyperdx-hdx-oss-v2-app.default.svc.cluster.local:4320\"\n```\n\n#### Other GKE Considerations\n\n```yaml\n# values-gke.yaml\nhyperdx:\n  frontendUrl: \"http://34.123.61.99\"  # Use your LoadBalancer external IP\n\notel:\n  opampServerUrl: \"http://my-hyperdx-hdx-oss-v2-app.default.svc.cluster.local:4320\"\n\n# Adjust for GKE pod networking if needed\nclickhouse:\n  config:\n    clusterCidrs:\n      - \"10.8.0.0/16\"  # GKE commonly uses this range\n      - \"10.0.0.0/8\"   # Fallback for other configurations\n```\n\n### Amazon EKS\n\nFor EKS deployments, consider these common configurations:\n\n```yaml\n# values-eks.yaml\nhyperdx:\n  frontendUrl: \"http://your-alb-domain.com\"\n\n# EKS typically uses these pod CIDRs\nclickhouse:\n  config:\n    clusterCidrs:\n      - \"192.168.0.0/16\"\n      - \"10.0.0.0/8\"\n\n# Enable ingress for production\nhyperdx:\n  ingress:\n    enabled: true\n    host: \"hyperdx.yourdomain.com\"\n    tls:\n      enabled: true\n```\n\n### Azure AKS\n\nFor AKS deployments:\n\n```yaml\n# values-aks.yaml\nhyperdx:\n  frontendUrl: \"http://your-azure-lb.com\"\n\n# AKS pod networking\nclickhouse:\n  config:\n    clusterCidrs:\n      - \"10.244.0.0/16\"  # Common AKS pod CIDR\n      - \"10.0.0.0/8\"\n```\n\n### Production Cloud Deployment Checklist\n\n- [ ] Configure proper `frontendUrl` with your external domain/IP\n- [ ] Set up ingress with TLS for HTTPS access\n- [ ] Override `otel.opampServerUrl` with FQDN if experiencing connection issues\n- [ ] Adjust `clickhouse.config.clusterCidrs` for your pod network CIDR\n- [ ] Configure persistent storage for production workloads\n- [ ] Set appropriate resource requests and limits\n- [ ] Enable monitoring and alerting\n\n### Browser Compatibility Notes\n\nFor HTTP-only deployments (development/testing), some browsers may show crypto API errors due to secure context requirements. For production deployments, use HTTPS with proper TLS certificates through ingress configuration.\n\n## Troubleshooting\n\n### Checking Logs\n\n```sh\nkubectl logs -l app.kubernetes.io/name=hdx-oss-v2\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperdxio%2Fhelm-charts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperdxio%2Fhelm-charts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperdxio%2Fhelm-charts/lists"}