Self Service Licensing & Credentials

Learn how to deploy Deepgram self-hosted using self service. Deepgram’s self-serve self-hosted solution is available through both the Deepgram Console and the Deepgram API.

Deepgram gives you the ability to self-manage your self-hosted API keys and container image distribution credentials. This offers you flexibility and control over your Deepgram self-hosted deployments using Deepgram Console and Quay. For example, you can rotate and expire your keys and credentials according to your access control policies.

This guide focuses on using Deepgram Console. If you would like to use the Deepgram API, see our API documentation on creating API keys and creating distribution credentials.

Verifying Access to Self-Hosted Products

This guide only applies to Console projects which have been granted access to self-hosted products. If you have access, your Console menu should have an "Self-Hosted" tab, as shown below.

If you do not have this tab in Console, your project has either:

  1. Never received access to self-hosted products
    1. To take advantage of our self-hosted product offering, you will need to enroll in a Deepgram Enterprise Plan. If you're interested, please contact us!
  2. Received access to managed self-hosted products, but has not yet been granted access to self-service for these products.
    1. Please contact your Deepgram Account Representative to enable access.

With that out of the way, we can begin!

Create a Self-Hosted API Key

You can use the Deepgram Console or the Deepgram API to create a self-hosted API key for licensing Deepgram products. Follow the Creating API Keys guide to create a key, and record it securely.

After receiving your key, you can dismiss the pop-up and return to the API Keys page. You should see your new self-hosted API key, and if you expand the details, you can view the self-hosted products which can be licensed by that key.

Depending on your self-hosted agreement with Deepgram, you may have access to different products. All self-hosted customers have access to API and Engine. For access to the License Proxy, please contact Support.

Create Container Image Distribution Credentials

Distribution credentials are used to authenticate with a container image repository when pulling Deepgram container images into your deployment environment.

📘

Distribution credentials are not the same as self-hosted API keys. In our documentation, when we refer to an self-hosted API key (DEEPGRAM_API_KEY), this is referring to the key made in the previous section.


  1. Back on the Console page, use the menu on the left and click on the "Self-Hosted" tab, then click "Create New Distribution Credentials".

  1. Provide a name for your distribution credentials and click "Create Credentials".

  2. Your new credentials will be shown, which include:

    1. A username, which looks like deepgram+6ba7b810-9dad-11d1-80b4-00c04fd430c8.
    2. A secret, which looks like R2CTHDZ27R360V8H5LOWGBQ871HE9RP5YGWZA9JXWM3V98ST4VE3NYX72BK86Z7J.
    3. An example shell command that demonstrates how to authenticate with your credentials

    You can use the secret as your password for the shell command. Again, take note of the displayed values, as they can't be accessed again. Once you've copied it, check the box affirming you understand this and click "Got it".

Distribution credentials limited secret access
  1. The pop-up will be dismissed and you will be back on the "Self-Hosted" page. You should see your new distribution credentials and the container images which can be accessed with those credentials.

Migration for Legacy Licensing and Container Distribution

👍

If you are deploying Deepgram to your environment for the first time, you may skip this section and proceed to the next guide, linked at the bottom of the page.

If your self-hosted Deepgram environment uses a static legacy license key, or you previously used DockerHub to access container images, you will need to modify your environment to use your newly generated credentials.

📘

Checking if you need to migrate from DockerHub

To check if you are currently pulling images from DockerHub and need to migrate to Quay, check your deployment files. Depending on your container orchestrator, this may be a Docker Compose file, a Podman Compose file, Kubernetes manifest files, or a Helm chart.

A container image path and tag will be listed within those files. If it looks like any of the following, you are pulling from DockerHub and must migrate to Quay.

  • deepgram/onprem-api:xxxx
  • deepgram/onprem-engine:xxxx
  • deepgram/onprem-license-proxy:xxxx

If your image tags have the prefix quay.io, such as some of the examples below, you are already using Quay and do not need to migrate.

  • quay.io/deepgram/onprem-api:xxxx
  • quay.io/deepgram/self-hosted-api:xxxx
  • quay.io/deepgram/onprem-engine:xxxx
  • quay.io/deepgram/self-hosted-engine:xxxx
  • quay.io/deepgram/onprem-license-proxy:xxxx
  • quay.io/deepgram/self-hosted-license-proxy:xxxx
  1. Upgrade your Deepgram container images to the most recent release provided by Quay.
    1. Login on the command line using the newly generated credentials from Create Container Image Distribution Credentials.
    2. Follow the instructions here to pull the latest Deepgram images.
    3. Edit your docker-compose.yml file (or other orchestration platform files, like Kubernetes manifest files) to use the new container image you just pulled from Quay.
  2. Replace your static legacy license key with your newly generated self-hosted API key from the Create a Self-Hosted API Key section.
    1. Edit any custom api.toml and engine.toml configuration files. Replace the value at [license.key] with your API key secret.
    2. If needed, edit the docker-compose.yml file (or other orchestration platform files) to replace the key used by the License Proxy or other add-on products. Replace the value at --license-key with your API key secret.

What’s Next

Whether you are spinning up a new deployment environment, or modifying an existing environment to use your new self-service credentials, the next step is to deploy Deepgram services with your container orchestration tool of choice.