Skip to content
The Things Stack documentation home
Getting Started Concepts Cloud Enterprise Integrations API Hardware
Getting Started Concepts
Cloud Enterprise
Integrations API Hardware
Get The Things Stack

    Recent searches

      Popular pages

      • Getting Started
      • Adding Gateways
      • Adding Devices
      • Payload Formatters
      • Webhooks
      • Authentication

      No results for “”.

      • Check the spelling, or try fewer or more general words.
      • Ask the community on The Things Network Forum
      • Contact support
      ↑↓ to navigate ↵ to open Esc to close

      The Things Stack Enterprise

      • Overview
      • AWS
      • Kubernetes
        • Generic
          • Prerequisites
          • Preparation
          • Configuration
          • Install Charts
          • Monitoring
          • Troubleshooting
          • Database Migrations
        • Azure
      • Docker
      • The Things Join Server
      • Manage The Things Stack

      Install Charts

      Updated 4 December 2025 Edit on GitHub
      Copy page
      • View as MarkdownThis page as plain text
      • Open in ChatGPTAsk questions about this page
      • Open in ClaudeAsk questions about this page

      The Things Stack Helm charts are packaged and distributed as OCI packages and are published to Docker Hub. You can also find information about the Helm chart on artifacthub.io.

      Use the following steps to install the chart.

      1. Login to the registry. This step can be skipped if you’ve already logged in via Docker Client.
      $ helm registry login -u <username> registry-1.docker.io
      

      Note:

      registry-1 is the OCI registry of Docker Hub.
      1. Pull the OCI container.
      $ helm pull oci://registry-1.docker.io/thethingsindustries/lorawan-stack-helm-chart --version <version>
      

      This pulls a lorawan-stack-helm-chart-<version>.tgz archive to the local directory from which the command is run.

      This command also downloads the Helm provenance file lorawan-stack-helm-chart-<version>.tgz.prov. This contains the signature to verify the package.

      Use the GPG public key D10BEC9FEBCDCC8DA09A45E92FC8860DA12B4C53 to verify the integrity of the charts. See Helm’s docs on verification. If you unpack the .tgz file, you can find the values.yaml file which contains the list of all options that can be set.

      1. Install the chart.

      Switch the kubernetes namespace to the target context. Check the kubernetes documentation.

      Assuming that you created a deployment specific values file in the previous section called <deployment>.values.yaml, this chart can be installed as follows.

      $ helm install <name> oci://registry-1.docker.io/thethingsindustries/lorawan-stack-helm-chart --version <version> --values <deployment>.values.yaml
      
      1. Check if the chart is set up properly.

      Run the helm tests to see if The Things Stack is configured properly:

      $ helm test <name>
      

      If any test fails, check the logs of the test pods to troubleshoot the issue.

      1. Update the chart.

      To deploy updates to the chart.

      The repository can be updated using the following.

      $ helm upgrade <name> oci://registry-1.docker.io/thethingsindustries/lorawan-stack-helm-chart --version <version> --values <deployment>.values.yaml
      

      Note: The helm CLI pulls a chart from the repository only if it’s locally not present.

      1. Uninstall the Chart.

      Once done, you can uninstall the chart as follows.

      $ helm uninstall <name>
      

      Jobs

      The Things Stack Helm Charts contain multiple Kubernetes Jobs that setup various things for the cluster. These are triggered automatically during installation and no additional action by the operator is needed.

      Note that The Application Server Storage initialization job is triggered only if the storage integration is enabled. This is configurable via as.storage.enabled. Since this job is triggered by user action, there is currently no mechanism in Helm to automatically detect and delete this job when completed. You can manually do that if needed using kubectl.

      $ kubectl get jobs
      $ kubectl delete jobs <name>
      

      Note:

      If you want to re-run this job for some reason at a later point, the existing job has to be first deleted.
      ← Configuration Monitoring →

      On this page

      • Jobs

      Sections

      Getting Started

      Concepts

      Cloud

      Enterprise

      Integrations

      API

      Hardware

      Sitemap

      View our Sitemap

      Contributing

      GitHub

      About Us

      The Things Industries

      Privacy Policy

      Cookie settings

      Cookie Settings

      We use cookies to enhance your experience, analyze site traffic and deliver personalized content. Read our Privacy Policy.

      Cookie categories