Deploy GitLab on TurboStack

Run a self-hosted GitLab on TurboStack - the Kubernetes deployment Hosted Power sets up for you, its configuration keys, and what comes with it.

GitLab is a self-hosted DevOps platform: Git repositories, issues, CI/CD pipelines and a container registry in one application. TurboStack runs it as an application on a Kubernetes cluster (app_type: gitlab), together with the services it depends on.

What you get

TurboStack deploys GitLab from the official Helm chart and runs everything it needs on the cluster:

  • GitLab itself - repositories, issues, merge requests and CI/CD.
  • PostgreSQL and Redis - the database and cache GitLab requires.
  • MinIO - S3-compatible object storage for artifacts, uploads, backups and the registry.
  • A container registry - on its own hostname.
  • cert-manager and an ingress controller - Transport Layer Security (TLS) certificates and routing into the cluster, handled for you.

Each part gets its own hostname under your domain: gitlab, registry, kas, pages, minio and minio-console. So a deployment on example.com publishes GitLab at gitlab.example.com and the registry at registry.example.com.

Configuration

The settings live under a gitlab key on the application. Hosted Power applies them, but these are the values worth deciding before the deployment:

app_type: gitlab
gitlab:
  major_version: 18
  edition: ce                    # Community Edition
  domain: example.com
  persistent_data_size: 60Gi     # repositories, artifacts and registry images
  pages_enabled: false           # GitLab Pages, off by default
Key What it controls
major_version The GitLab major version to run.
edition ce for Community Edition.
domain The domain the component hostnames are built on.
persistent_data_size Disk for the deployment. Repositories, CI artifacts and registry images all grow into it, so size it for the projects you expect.
pages_enabled Publishes GitLab Pages on its own hostname.

Outgoing email is configured for you, and Microsoft Entra ID single sign-on can be enabled if you want your team to log in with their existing accounts. Ask Support for either.

After it is running

Open GitLab at your gitlab. hostname and sign in. From there it behaves like any GitLab: create groups and projects, add runners, and push repositories.

For the cluster underneath, see What is Kubernetes?. For backups of the data behind it, see Backups.