Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Install Scalekit

Deploy Scalekit on a Kubernetes cluster using Helm and the Gateway API.

Deploy Scalekit on any Kubernetes cluster using the Helm chart distributed through the Scalekit distribution portal. The chart uses the Kubernetes Gateway API for ingress.

  1. Log in to the Scalekit distribution portal. This token authenticates your cluster to pull both the Helm chart and container images from ar.scalekit.cloud.

    Scalekit distribution portal login

    After signing in you will see the portal home page.

    Scalekit distribution portal home

    Click the profile icon in the top-right corner.

    Profile icon in the top-right corner

    In the dropdown, select Personal Access Tokens.

    Profile dropdown menu with Personal Access Tokens option

    You will see the Personal Access Tokens page. Click + Create token.

    Personal Access Tokens page

    A form slides in. Enter a Label and set an Expires At date, then click + Create.

    Create a Personal Access Token form

    Your token is displayed once. Copy it immediately — it cannot be retrieved after you leave this page.

    Token displayed after creation — copy it now

  2. The setup script collects your configuration interactively and generates two files: a secrets script and a values.yaml. Copy the script from that page, then run it:

    Terminal window
    chmod +x setup-secrets.sh
    bash setup-secrets.sh

    When prompted for environment, select the option that matches your target:

    • 1 — Minikube (local, uses nginx ingress)
    • 2 — GCP / GKE (configures GKE Gateway and NEG annotations)
    • 3 — Other Kubernetes cluster (generic config, add your own ingress)
    • 4 — Evaluation (bundled PostgreSQL and Redis; minimal setup)

    The script walks you through namespace, PostgreSQL, Redis, SMTP, registry token, domain, and admin user settings. GKE-specific Gateway settings are only collected for option 2.

    When the script finishes, it prints the paths to two generated files. Before proceeding, open each file and verify the values are correct.

    values-gke-<timestamp>.yaml — confirm:

    • app.domain matches your intended domain
    • database.host, database.name, and database.user point to the right PostgreSQL instance
    • redis.host points to the right Redis instance
    • seedData.adminUser.email is the address you want for the initial admin login
    • gateway.className and gateway.annotations match your cluster’s gateway configuration

    scalekit-secrets-gke-<timestamp>.sh — confirm:

    • The namespace at the top matches your intended namespace
    • Database and Redis connection strings in db-migrations and authentication-secret are correct
    • The registry token in artifact-registry-secret is the one you just created
  3. Run the secrets script the setup script generated:

    Terminal window
    bash scalekit-secrets-gke-<timestamp>.sh

    Verify all secrets were created:

    Terminal window
    kubectl get secrets -n <namespace>

    Expected secrets: authentication-service-token, db-migrations, authentication-secret, svix-secrets, artifact-registry-secret. If you ran the script with --enable-openfga, openfga-secrets will also be present.

  4. Deployments are created through the Scalekit distribution portal.

    In the left sidebar, click Deployments, then click + New Deployment in the top-right corner.

    Deployments page

    In the Create New Deployment dialog, select Scalekit Onprem and click Continue.

    Create New Deployment — select Scalekit Onprem

    Deployment Configuration form

    • Deployment Name — any name you choose; scalekit is recommended
    • Kubernetes Namespace — must match the namespace you used in step 3
    • Leave Enable cluster-scoped permissions checked
    • Leave Set custom resource requirements for the Distr agent unchecked

    Click Continue.

    Application Configuration form

    • Version — select the latest available version from the dropdown
    • Helm release name — leave as scalekit or set your own
    • Helm values — paste the full contents of values-gke-<timestamp>.yaml generated by the setup script

    Click Create Deployment. The portal moves to the Deploy step and shows a kubectl apply command.

    The portal shows a Deployment Created Successfully screen with a kubectl apply command.

    Deployment created successfully — copy the kubectl command

    Click Copy Command and run it on your cluster:

    Terminal window
    kubectl apply -n <namespace> -f "https://repack.scalekit.cloud/api/v1/connect?targetId=<targetId>&targetSecret=<targetSecret>"
  5. Once the Gateway is up, get its external IP:

    Terminal window
    kubectl get gateway -n <namespace>

    Copy the external IP from the ADDRESS column. In your DNS provider, create a wildcard A record pointing to it:

    *.<your-domain> → <gateway-external-ip>

    DNS propagation can take a few minutes. You can verify with:

    Terminal window
    dig app.<your-domain>
  6. Terminal window
    kubectl get pods -n <namespace>

    All pods should show Running status. Open the admin dashboard at https://app.<your-domain> and sign in with the admin credentials you provided during setup.