Overview
GlitchTip is open-source, Sentry-API-compatible error tracking — applications report crashes and exceptions with standard Sentry SDKs pointed at a GlitchTip DSN, and GlitchTip groups them into issues with alerting. It is fully MIT-licensed with nothing feature-gated; there is no paid tier. This template deploys GlitchTip backed by a highly available PostgreSQL cluster and a Redis/Sentinel queue by default. The web UI and SDK event-ingest endpoint are served on one public HTTPS endpoint, and the admin account is created automatically on first boot — so there is never an unauthenticated setup page and self-signup is closed by default.Architecture
- GlitchTip web — A stateless standard workload (default 1 replica,
replicasknob for more) serving the UI, API, and SDK event ingest on port8000. - GlitchTip worker — A single-replica standard workload running the background task worker and scheduler; it also runs database migrations and the superuser bootstrap at boot. It is a fixed singleton and is not scaled.
- PostgreSQL (HA, default) — The postgres-highly-available template as a subchart: 3× Patroni PostgreSQL, 3× etcd, and a HAProxy leader-routing endpoint GlitchTip connects through. Holds all issue and event data.
- PostgreSQL (dev/lightweight, optional) — The single-instance postgres template instead, for lighter non-HA deployments.
- Redis + Sentinel (default, optional) — The redis template in Sentinel mode: the task queue, cache, and sessions. Disable it to run those on PostgreSQL instead (a lighter dev shape).
What Gets Created
- Standard GlitchTip Web Workload — The stateless web tier serving the UI, API, and SDK event ingest on port
8000(replicascontrols its scale). - Standard GlitchTip Worker Workload — A single-replica worker + scheduler that runs migrations and the admin bootstrap at boot.
- Database Workloads — HA mode: a stateful Patroni PostgreSQL workload, a stateful etcd workload, and a standard HAProxy leader-routing workload. Single mode: one stateful PostgreSQL workload.
- Redis Workloads (default) — A master-replica Redis deployment with Sentinel for failover. Omitted when
redis.enabledisfalse. - Volume Sets — The database subchart’s persistent volumes (10 GiB per replica by default), plus Redis persistence when enabled. The GlitchTip web and worker tiers have no volumes of their own.
- Secrets — The Django
SECRET_KEY, admin bootstrap credentials, two start scripts, and the database and Redis credentials from the subcharts. - Identity & Policy — A shared identity for the web and worker workloads and a least-privilege policy granting it
revealon exactly the secrets it uses (including the optional email secret when configured).
This template does not create a GVC. You must deploy it into an existing GVC.
Prerequisites
- None for a default install.
- Optional — outbound email (member invites, alerts, password resets): create an opaque secret in your org, with encoding
plain, whose payload is a full email URL, for examplesmtp://user:password@smtp.example.com:587. Set its name inemail.secretNameand create it before installing. Leaveemail.secretNameempty to run without email. - Optional — database backups: a bucket and access setup for one of the supported providers — see Backing Up.
1
Change the generated credentials
Change
django.secretKey, admin.password, the database password (postgresHA.postgres.password or postgres.config.password), and the Redis password (redis.redis.auth.password.value) from their placeholder defaults before installing.2
(Optional) Create the email secret
If you want outbound email, create the opaque secret described above and set
email.secretName to its name before installing.UI
Browse, install, and manage templates visually
CLI
Manage templates from your terminal
Terraform
Declare templates in your Terraform configurations
Pulumi
Declare templates in your Pulumi programs
Choosing a Database Mode
Exactly one of the two database modes must be enabled — the chart enforces this at render and fails the install with a clear message otherwise.Choosing a Queue Mode
By default the redis template is deployed and GlitchTip runs its task queue, cache, and sessions through Redis Sentinel. Setredis.enabled: false to run those on PostgreSQL instead — a lighter “lean” shape with no Redis workloads, at lower throughput. Both modes are supported upstream and are proven end to end.
Configuration
The defaultvalues.yaml for this template:
GlitchTip
image— The GlitchTip container image (used by both the web and worker workloads).replicas— Web-tier replica count. The web tier is stateless (all state is in PostgreSQL and Redis), so scaling to2or more gives high availability. The default1renders the proven single-replica shape.resources— CPU and memory for the web container.worker.resources— CPU and memory for the worker container.worker.concurrency— Number of async tasks the worker processes in parallel (VTASKS_CONCURRENCY).django.secretKey— Session and token signing key. Change it before installing. Rotating it later logs out all users but corrupts nothing. It is stored as a secret reference, never in plaintext.admin.email/admin.password— The superuser account, seeded on first boot only. Changeadmin.passwordbefore installing. Log in with these, then manage users in the UI; changing the values later does not modify the existing account.registration.enabled— Open self-signup on the public endpoint. Defaultfalse(closed) — admin-created users and invites still work either way. See Onboarding Users.
email.secretName— Name of your pre-created opaque secret whose payload is anEMAIL_URL(see Prerequisites). Empty (default) turns outbound email off. Member invites, alert notifications, and password-reset mail all require this to be set.email.fromAddress— TheFromaddress used on outbound mail; applied only whenemail.secretNameis set.
Access
publicAccess.enabled— Serve the UI and SDK event ingest (the DSN endpoint) on the canonical*.cpln.appHTTPS endpoint (default). Because Sentry SDKs typically run outside the GVC, public access is on by default. Set tofalsefor an internal-only instance (external requests are blocked at the edge; in-GVC callers still reach it perinternalAccess).internalAccess.type— Internal firewall scope of the web workload:
domain— Full URL (for examplehttps://errors.example.com) embedded in DSNs and email links. Empty (default) uses the canonical*.cpln.appendpoint, derived automatically at boot.
Queue / Cache: Redis
redis.enabled— Deploy the Redis subchart in Sentinel mode for the task queue, cache, and sessions (default). Set tofalseto carry those on PostgreSQL instead — see Choosing a Queue Mode.redis.redis.replicas— Redis master-replica count.redis.redis.auth.password.value— The Redis password. Required when Redis is enabled (the chart enforces it). Change it before installing — any characters are fine, the boot script percent-encodes it into the connection URL.redis.sentinel.replicas— Number of Sentinel instances. Sentinel authentication must stay disabled — GlitchTip cannot send a Sentinel password; the same-GVC firewall is the boundary there.redis.redis.persistence.enabled/redis.sentinel.persistence.enabled— Persistent storage for Redis and Sentinel.
Database
Enable exactly one ofpostgresHA (production, default) or postgres (dev/lightweight) — see Choosing a Database Mode. In both modes, change the database password before installing (postgresHA.postgres.password / postgres.config.password). GlitchTip is wired to the active database automatically — the HAProxy leader endpoint in HA mode, or the single instance directly in dev mode.
Onboarding Users
Registration is closed by default (registration.enabled: false) — an override of GlitchTip’s upstream open-signup default. With registration closed, invites only work for accounts that already exist: create teammate accounts first through the Django admin at https://<canonical>.cpln.app/admin/ (log in with the superuser account), then invite them to your organization. Invite, alert, and password-reset emails require email.secretName to be set. To allow open self-signup instead, set registration.enabled: true.
Connecting
Reporting Errors
Point any Sentry SDK at your project’s DSN. The DSN is issued in the UI under project → Settings → DSN and embeds the public endpoint, so no extra configuration is needed. Existing@sentry/* SDK setups keep working — only the DSN changes. SDKs running inside the same GVC can send events to the internal endpoint per internalAccess.
Backing Up
Database backups are optional and disabled by default. They cover the PostgreSQL database — the issues, events, and users that make up your GlitchTip instance. Enable them withpostgresHA.backup.enabled or postgres.backup.enabled (matching your database mode), and complete the storage setup for your provider before installing. The values below are shown under backup.* — set them within the enabled database block.
- AWS S3
- Google Cloud Storage
- S3-compatible (MinIO, R2, Wasabi)
1
Create a bucket
Create an S3 bucket. Set
backup.aws.bucket and backup.aws.region to match.2
Set up a Cloud Account
If you do not have one, create a Cloud Account for your AWS account. Set
backup.aws.cloudAccountName to its name.3
Create a bucket-scoped IAM policy
Create an AWS IAM policy with the JSON below (replace
YOUR_BUCKET), then set backup.aws.policyName to the policy’s name:backup.mode selects logical (scheduled pg_dump via a cron workload) or wal-g (continuous WAL archiving). The single-instance mode takes scheduled logical dumps.
Important Notes
- Change
django.secretKey,admin.password, the database password, and the Redis password before installing. - Do not scale the worker — it is a fixed singleton (scheduler plus boot-time migrations). Web
replicasis the scaling knob; a worker outage pauses processing but ingest keeps accepting events and catches up when the worker returns. - First boot: the web tier stays not-ready until the worker finishes migrations — roughly 4–6 minutes in HA mode while the worker waits for the PostgreSQL HA proxy to open, then self-heals. If it seems stuck, check the worker logs first, not the web logs.
- With registration closed (default), invites only work for accounts that already exist — create teammate accounts first at
/admin/, then invite them. Invite and alert emails requireemail.secretName. See Onboarding Users. - DSNs embed the endpoint URL — if you add a custom domain later, set
domain, run a Helm upgrade, and update the DSNs in your apps. - Source-map / artifact uploads are ephemeral (local disk) — lost on restart and not shared across web replicas. Error ingest itself is unaffected; events go to PostgreSQL.
- Uninstall deletes the database volume sets — all issues, events, and users. Enable backups if the data matters.
- This template ships the MIT-licensed open-source image — GlitchTip is a single edition with nothing feature-gated.
External References
GlitchTip Documentation
Official GlitchTip documentation
Installation Reference
Installation and configuration reference
Sentry SDKs
Client setup for the Sentry SDKs GlitchTip is compatible with
GlitchTip 6 Release Notes
What changed in the GlitchTip 6 release line
GlitchTip Backend Source
Upstream GlitchTip backend source
GlitchTip Template
View the source files, default values, and chart definition