glitchtip

Use when deploying, configuring, integrating, or troubleshooting GlitchTip — including self-hosted installation, SDK setup, source maps, sentry-cli, uptime monitoring, alerting, environment variables, Docker Compose, Helm, social auth, and migration from Sentry

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "glitchtip" with this command: npx skills add lu1sdv/skillsmd/lu1sdv-skillsmd-glitchtip

GlitchTip

Open-source, Sentry API-compatible error tracking and uptime monitoring. Django + PostgreSQL backend, Angular frontend. Runs on 256MB RAM (all-in-one) or 512MB (standard).

When to Use

  • Deploying GlitchTip self-hosted (Docker Compose, Helm, or manual)
  • Integrating Sentry SDKs (Python, JS, Ruby, etc.) with a GlitchTip DSN
  • Configuring source maps upload via sentry-cli
  • Setting up uptime monitoring and alerting (email, webhooks)
  • Troubleshooting event ingestion, worker failures, or Celery issues
  • Migrating from Sentry to GlitchTip

When NOT to Use

  • Sentry SaaS (sentry.io) — compatible SDK-side, but different server admin
  • Application Performance Monitoring (APM) — GlitchTip is error tracking only

Quick Reference

ResourceURL
Hosted (US)app.glitchtip.com
Hosted (EU)eu.glitchtip.com
SDK docsglitchtip.com/sdkdocs
Install guideglitchtip.com/documentation/install
CLI (gtc)pip install glitchtip-cli

Deployment

Docker Compose (recommended)

# Download sample compose file
curl -sLO https://glitchtip.com/assets/docker-compose.sample.yml
mv docker-compose.sample.yml compose.yml
# Edit environment variables, then:
docker compose up -d
# Upgrade: docker compose pull && docker compose stop && docker compose up -d

Minimal variant: compose.minimal.yml — all-in-one mode, ~256MB RAM.

Kubernetes (Helm)

helm repo add glitchtip https://gitlab.com/api/v4/projects/16325141/packages/helm/stable
helm install glitchtip glitchtip/glitchtip

Externally managed PostgreSQL recommended. Supports pod disruption budgets and anti-affinity for HA.

Managed Platforms

PikaPods, Elestio, Nodion, Railway (one-click template), RepoCloud.

Configuration

All via environment variables. Set in compose.yml or Helm values.

Required

VariablePurpose
SECRET_KEYRandom string for Django security
DATABASE_URLPostgreSQL 14+ connection string
GLITCHTIP_DOMAINFull URL with scheme (https://glitchtip.example.com)
DEFAULT_FROM_EMAILSender address for notifications

Email

MethodConfig
SMTPEMAIL_URL=smtp://user:pass@host:port
MailgunMAILGUN_API_KEY + EMAIL_BACKEND=anymail.backends.mailgun.EmailBackend
SendGridSENDGRID_API_KEY + EMAIL_BACKEND=anymail.backends.sendgrid.EmailBackend
Console (dev)EMAIL_URL=consolemail://

Also supports Postmark, Mailjet, Mandrill, SparkPost, Brevo via Anymail.

Data Retention

VariableDefault
GLITCHTIP_MAX_EVENT_LIFE_DAYS90
GLITCHTIP_MAX_TRANSACTION_EVENT_LIFE_DAYS(inherits above)
GLITCHTIP_MAX_FILE_LIFE_DAYS(inherits above)
GLITCHTIP_MAX_UPTIME_CHECK_LIFE_DAYS(inherits above)

Cache & Workers

VariableDefaultPurpose
VALKEY_URLredis://:pass@host:port/db (Valkey/Redis 7+)
DATABASE_POOL_MAX_SIZE20psycopg connection pool
GRANIAN_WORKERS1Web server workers (async, rarely needs >1)
VTASKS_CONCURRENCY20Background task concurrency

Set VALKEY_URL to empty string to disable and use PostgreSQL as queue.

Feature Flags & Security

VariableDefaultPurpose
ENABLE_USER_REGISTRATIONtrueAllow self-signup
ENABLE_ORGANIZATION_CREATIONfalseAllow users to create orgs
GLITCHTIP_ENABLE_UPTIMEtrueUptime monitoring
GLITCHTIP_ENABLE_MCPfalseModel Context Protocol server
ENABLE_OBSERVABILITY_APIfalsePrometheus metrics
ALLOWED_HOSTS*Comma-separated allowed domains
CSRF_TRUSTED_ORIGINSReverse proxy origins
BASE_PATHSubpath hosting (/glitchtip)

File Storage

BackendDEFAULT_FILE_STORAGEKey Variables
AWS S3 / DO Spacesstorages.backends.s3boto3.S3Boto3StorageAWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_STORAGE_BUCKET_NAME
Azure Blobstorages.backends.azure_storage.AzureStorageAZURE_ACCOUNT_NAME, AZURE_ACCOUNT_KEY, AZURE_CONTAINER
GCSstorages.backends.gcloud.GoogleCloudStorageGS_BUCKET_NAME, GS_PROJECT_ID, GOOGLE_APPLICATION_CREDENTIALS

SDK Integration

GlitchTip uses Sentry SDKs — 58 implementations across 18 languages. Configure any Sentry SDK by pointing the DSN to the GlitchTip instance:

https://<SENTRY_KEY>@<GLITCHTIP_DOMAIN>/<PROJECT_ID>

Find the DSN in Project Settings > Security Endpoint.

Supported Platforms

JavaScript: Browser, React, Angular, Vue, Ember, Next.js, Backbone Node.js: Express, Koa, Connect, plain Node Python: Django, Flask, Celery, FastAPI (ASGI), AWS Lambda, WSGI, + 10 more PHP: Laravel, Symfony, Drupal, Monolog Ruby: Rails, Rack Java: Android, Log4j, Logback, App Engine Go: net/http, plain Go C#: ASP.NET Core Rust, Elixir, Flutter, React Native, Electron, Cordova, C/C++, Objective-C

Reduce Event Volume

sentry_sdk.init(
    dsn="...",
    traces_sample_rate=0.01,  # 1% of transactions
    sample_rate=0.5,          # 50% of errors
)

Source Maps (sentry-cli)

GlitchTip is Sentry API-compatible but does not support the newer artifact-bundle/debug-ID upload flow. Use legacy release-based uploads only.

Prerequisites: File storage must be configured (S3/Azure/GCS or local volume) — source maps are storage-backed, not just metadata.

Discover Org & Project Slugs

# Slugs ≠ display names. Query the API to find correct values:
curl -s https://<GLITCHTIP_DOMAIN>/api/0/projects/ \
  -H "Authorization: Bearer <AUTH_TOKEN>" | jq '.[].slug'

Legacy Upload Workflow

# 1. Set release in your SDK init: release: "<RELEASE_ID>"
# 2. Build with source maps enabled
# 3. Upload (--url is a GLOBAL flag, must precede subcommand):
sentry-cli --url https://<GLITCHTIP_DOMAIN> releases \
  --org <org-slug> --project <project-slug> \
  files "<RELEASE_ID>" upload-sourcemaps ./dist \
  --url-prefix "~/"

Bundler Plugin (Vite/Webpack/esbuild/Rollup)

// Use uploadLegacySourcemaps — the default artifact-bundle mode
// triggers 404 on GlitchTip's /artifactbundle/assemble/ endpoint
sentryPlugin({
  url: "https://<GLITCHTIP_DOMAIN>",  // REQUIRED — defaults to sentry.io
  authToken: process.env.SENTRY_AUTH_TOKEN,
  org: "<org-slug>",
  project: "<project-slug>",
  release: { uploadLegacySourcemaps: "./dist" },
})

Next.js Specifics

  • Set productionBrowserSourceMaps: true in next.config.js
  • Pass sentryUrl (not url) into withSentryConfig
  • Watch for trailing slashes in the instance URL — they can break uploads

Gotchas

GotchaDetail
.sentryclirc ignoredBundler plugin v2 no longer reads .sentryclirc — pass config via plugin options or env vars (SENTRY_URL, SENTRY_AUTH_TOKEN, SENTRY_ORG, SENTRY_PROJECT)
CLI calls sentry.io--url is a global flag — must come before the subcommand, not after
Auth token vs DSNDSN = SDK event ingestion. Auth token = CLI/API operations (Profile > Auth Tokens). Do not mix them
Upload succeeds, UI emptyCLI output can be decoupled from server persistence — always check server logs for 500s
releases finalize failsNot fully supported on GlitchTip — skip finalize, rely on release creation + artifact upload
Proxy/TLS false 401Corporate proxies cause "Invalid token" errors — enable sentry-cli --log-level debug, verify proxy env vars are full URLs

Uptime Monitoring

Four monitor types:

TypeBehavior
PingHTTP HEAD request (most common)
GETHTTP GET, validates expected status code
POSTHTTP POST, validates expected status code
HeartbeatAwaits inbound requests from your app at a generated URL

Link monitors to a project with email alerts configured for status change notifications.

Integrations

Alerting

Configure in Projects > Alert Recipients:

  • Email: Team member notifications on error frequency thresholds
  • Webhooks: POST to any URL on alert trigger

External Tools

ToolSetup
GitLabSettings > Monitor > Error Tracking > Sentry provider > GlitchTip URL + Auth Token
GrafanaData source > Sentry type > GlitchTip URL + org + Auth Token

Auth tokens: Profile > Auth Tokens (scope: read-only or full).

Social Auth (OAuth)

Configure via Django Admin (/admin/socialaccount/socialapp/):

GitHub, GitLab, Google, Microsoft, Gitea, DigitalOcean, NextCloud, Okta, OpenID Connect (Keycloak, etc.)

Callback URL: https://example.com/accounts/<provider>/login/callback/

OpenID Connect settings:

{ "server_url": "https://idp.example.com/auth/realms/realm/.well-known/openid-configuration" }

CLI Tool (gtc)

pip install glitchtip-cli
gtc list      # list organizations
gtc create    # create organization
gtc delete    # delete organization
gtc members   # show org membership

First run prompts for API token and instance URL. Config saved to .env.

Troubleshooting

IssueFix
Events not appearingVerify DSN, check SDK sampleRate, confirm GLITCHTIP_DOMAIN matches
High event volumeLower traces_sample_rate / sample_rate in SDK config
Email not sendingCheck EMAIL_URL or provider API key, try consolemail:// for debugging
401 on API/integrationRegenerate Auth Token in Profile > Auth Tokens
Worker not processingCheck VALKEY_URL, ensure worker container running, verify VTASKS_CONCURRENCY
Out of memoryUse all-in-one mode (compose.minimal.yml) or increase RAM to 512MB+
Uptime checks failingVerify monitor URL accessible from GlitchTip server, check expected status code
Social auth not workingVerify callback URL, check Django Admin socialaccount config
Search not workingCheck PostgreSQL text_search_config for non-English languages
Disk growing fastLower GLITCHTIP_MAX_EVENT_LIFE_DAYS, check source map / file retention
404 on /artifactbundle/assemble/GlitchTip doesn't support artifact-bundle flow — switch to uploadLegacySourcemaps or releases files upload-sourcemaps
"Nothing to upload" but UI emptyCheck file storage config (S3/volume), inspect server logs for 500s on assemble endpoint
debug_id_or_release_requiredUpload only .js + .map pairs, not entire dist/ — remove files without matching maps
files_fileblob_checksum_key duplicateClean release artifacts before re-uploading identical builds; upload is not idempotent
releases finalize → "version required"Skip finalize — not fully supported on GlitchTip. Use release creation + artifact upload only
CLI sends to sentry.io unexpectedly--url must precede subcommand; check .sentryclirc defaults.url; bundler plugin v2 ignores .sentryclirc
Stack traces stay minifiedVerify: (1) storage has files, (2) release value matches SDK init, (3) --url-prefix matches runtime paths

Common Mistakes

MistakeFix
Using Sentry SDK features unsupported by GlitchTipCheck GlitchTip compatibility — no performance tracing, no replays
Missing GLITCHTIP_DSN env varSDK silently drops events without a valid DSN
Source maps not matching release versionsentry-cli releases files <release> upload-sourcemaps must match release in SDK init
Running without Redis/Celery workersEvents queue but never process — always run celery-worker service
Setting DEBUG=True in productionLeaks secrets in error pages; use ENVIRONMENT=production

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

zeroclaw

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated
Coding

ai-dating

This skill enables dating and matchmaking workflows. Use it when a user asks to make friends, find a partner, run matchmaking, or provide dating preferences/profile updates. The skill should execute `dating-cli` commands to complete profile setup, task creation/update, match checking, contact reveal, and review.

Archived SourceRecently Updated