Prerequisites
  • You have extensive understanding of Kubernetes
  • Installed Helm package manager version v3.11.3 or greater
  • You have kubectl installed and connected to your kubernetes cluster
  • A domain name for ingress configuration
  • A GitHub organization where you’ll install the GitHub App
1

Create Helm values

Create a values.yaml file. This will be used to configure settings for the Digger Helm chart. To explore all configurable properties for your values file, visit the values.yaml reference.
2

Select Digger version

By default, the Digger version set in your helm chart will likely be outdated. Choose the latest Digger docker image tag from the releases page.
values.yaml
digger:
  image:
    repository: registry.digger.dev/diggerhq/digger_backend
    tag: "v0.6.106" # Select tag from GitHub releases
    pullPolicy: IfNotPresent
Do not use the latest docker image tag in production deployments as they can introduce unexpected changes
3

Configure required secrets

Configure the required secrets for Digger. Note that GitHub App credentials will be filled after the initial setup.
values.yaml
digger:
  secret:
    httpBasicAuthUsername: "admin"
    httpBasicAuthPassword: "<strong-password>"
    bearerAuthToken: "<strong-token>"
    hostname: "digger.example.com"
    
    # GitHub App credentials (filled after setup)
    githubOrg: ""
    githubAppID: ""  # Note: uppercase ID
    githubAppClientID: ""
    githubAppClientSecret: ""
    githubAppKeyFile: ""  # base64 encoded private key
    githubWebhookSecret: ""
4

Configure database

Choose your database configuration based on your environment:
For production environments, use an external PostgreSQL database:
values.yaml
digger:
  postgres:
    user: "digger"
    database: "digger"
    host: "postgresql.example.com"
    password: "secure-password"
    sslmode: "require"  # or "disable"
5

Configure ingress

Configure ingress to route traffic to Digger (required for GitHub App setup):
values.yaml
digger:
  ingress:
    enabled: true
    host: "digger.example.com"  # Your domain
    annotations:
      # Add annotations based on your ingress controller
      # Example for nginx:
      # kubernetes.io/ingress.class: "nginx"
      # cert-manager.io/cluster-issuer: "letsencrypt-prod"
6

Install the Helm chart

Once you are done configuring your values.yaml file, run the command below to install Digger:
helm install digger-backend oci://ghcr.io/diggerhq/helm-charts/digger-backend \
  --namespace digger \
  --create-namespace \
  --values values.yaml
Wait for all pods to reach a running state:
kubectl get pods -n digger
7

GitHub App setup

Navigate to your Digger hostname to create and configure the GitHub App:
  1. Go to https://your-digger-hostname/github/setup
  2. Follow the web interface to create your GitHub App
  3. Install the app in your GitHub organization
  4. Collect the generated credentials:
    • GitHub App ID
    • Client ID
    • Client Secret
    • Private Key (base64 encoded)
    • Webhook Secret
8

Update configuration with GitHub App credentials

Add the GitHub App credentials to your values.yaml file:
values.yaml
digger:
  secret:
    # ... existing configuration ...
    githubOrg: "your-github-org"
    githubAppID: "123456"
    githubAppClientID: "Iv1.abc123def456"
    githubAppClientSecret: "github_app_client_secret"
    githubAppKeyFile: "LS0tLS1CRUdJTi..."  # base64 encoded private key
    githubWebhookSecret: "webhook_secret"
Then upgrade the Helm release:
helm upgrade digger-backend oci://ghcr.io/diggerhq/helm-charts/digger-backend \
  --namespace digger \
  --values values.yaml
9

Access Digger

After deployment, wait for 2-5 minutes for all pods to reach a running state. You can find the IP address/hostname by executing:
kubectl get ingress -n digger
Access Digger at your configured hostname and verify the GitHub App is properly connected.
10

Upgrade your instance

To upgrade your instance of Digger, update the docker image tag in your Helm values and rerun:
helm upgrade digger-backend oci://ghcr.io/diggerhq/helm-charts/digger-backend \
  --namespace digger \
  --values values.yaml
Always back up your database before each upgrade, especially in a production environment.

Advanced Configuration