GlitchTip (Sentry Alternative) on Ubuntu 24.04 (Docker Compose + Nginx + SSL)

GlitchTip is a fully open-source error tracking, performance monitoring, and application observability platform, serving as a modern alternative to Sentry. It supports frontend and backend SDKs, error grouping, release tracking, user feedback, and real-time alerts — all without relying on proprietary cloud services.

Running GlitchTip on Ubuntu 24.04 LTS (Noble Numbat) provides a secure, stable, and high-performance foundation for your monitoring stack. Ubuntu 24.04 ships with systemd 255, OpenSSL 3, and up-to-date Docker packages, making it ideal for deploying GlitchTip with Docker Compose, PostgreSQL, Redis, Nginx, and SSL encryption for production use.


Architecture Overview

LayerComponentRole
OSUbuntu 24.04 LTSStable, long-term supported Linux base for server environments
Container RuntimeDocker Engine + ComposeOrchestrates GlitchTip and its dependencies
ApplicationGlitchTip (Django)Core web application handling event ingestion and user dashboard
DatabasePostgreSQL 15/16Stores user data, issues, events, and metadata
Cache/QueueRedisManages background jobs and async task queues
Reverse ProxyNginxHandles HTTPS termination, compression, and routing
TLSLet’s Encrypt / PKISecures the dashboard and API endpoints with HTTPS

Why Use GlitchTip?

  • Open-source alternative to Sentry – same core functionality without cloud lock-in.
  • Privacy-friendly – fully self-hosted, with no external data sharing.
  • Compatible SDKs – supports existing Sentry client libraries.
  • Modern stack – powered by Django, PostgreSQL, and Redis.
  • Team management – invite users, assign roles, and organize multiple projects.
  • Performance tracking – measure slow transactions and frontend errors.
  • Email notifications – built-in support for SMTP alerts.

GlitchTip vs Other Error Tracking Tools

Feature/CapabilityGlitchTip (Self-hosted)Sentry (Cloud/Self-hosted)LogRocketElastic APM
HostingSelf-hosted / CloudCloud or on-premiseCloud onlySelf-hosted / Cloud
DatabasePostgreSQLPostgreSQLProprietaryElasticsearch
Source available100% open-sourcePartially openNoYes
SDK compatibilitySentry SDKs supportedNativeNoPartial
CostFree, open-sourcePaid tiersSubscriptionDepends on license
Best forSMBs / DevOps teamsEnterprisesFrontend appsLarge infra monitoring

GlitchTip offers Sentry-level observability at zero cost, making it a top choice for development teams who want error visibility and performance analytics without sacrificing data ownership.


Security & Best Practices

  • Deploy GlitchTip behind Nginx with HTTPS enabled.
  • Store database passwords and keys securely in .env files or Docker secrets.
  • Use separate PostgreSQL and Redis containers for modular scaling.
  • Configure SMTP credentials for email notifications and alerts.
  • Restrict ports using UFW or nftables, exposing only 80 and 443.
  • Keep Docker images and Ubuntu packages regularly updated.
  • Automate SSL renewal with Certbot or Traefik’s ACME integration.
  • Enable fail2ban or rate limiting on login endpoints.

Typical Use Cases

  • Error monitoring for web, mobile, and backend applications.
  • Frontend JS crash tracking using Sentry-compatible SDKs.
  • Performance analytics for slow API requests or database queries.
  • Infrastructure observability for internal microservices.
  • Private Sentry alternative for teams requiring GDPR or HIPAA compliance.

Deploying GlitchTip on Ubuntu 24.04 with Docker Compose gives you a fully self-hosted, Sentry-compatible error monitoring solution that combines the power of open-source software with modern observability — ideal for developers, startups, and DevOps teams seeking privacy, scalability, and insight.


Step 1: Create a Shape.Host Cloud VPS Instance

Go to Shape.Host and log in.

Click Create → Instance.

Shape.host Resources dashboard with Create > Instance highlighted.

Choose your preferred data center location.

Shape.host instance form with the data center location selector highlighted.

Select a plan with at least 2 CPUs, 4 GB RAM, and 20 GB SSD.

Choose Ubuntu 24.04 (64-bit) as the operating system.

Shape.host instance form with the operating system image selector highlighted.

Click Create Instance.

Shape.host instance form with the Create Instance button highlighted.

Once ready, copy your public IP address from the “Resources” tab.

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to Your Server

SSH into your instance using:

ssh root@your_server_ip

Step 3: Update the System

Keep your system packages up to date:

apt update
Terminal showing APT package management commands and output.

Step 4: Install Docker and Dependencies

Install essential tools:

apt install ca-certificates curl gnupg
Terminal showing APT package management commands and output.

Create a directory for Docker’s GPG key:

install -m 0755 -d /etc/apt/keyrings

Download and store Docker’s official GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

Set permissions for the key file:

chmod a+r /etc/apt/keyrings/docker.asc

Add Docker’s official repository:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu noble stable" > /etc/apt/sources.list.d/docker.list

Update repositories:

apt update
Terminal showing APT package management commands and output.

Install Docker Engine, CLI, and Compose plugin:

apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Terminal showing APT package management commands and output.

Check Docker versions:

docker --version
docker compose version

Step 5: Create a Directory for GlitchTip

Create the installation directory and navigate into it:

mkdir -p /opt/glitchtip
cd /opt/glitchtip
Terminal showing the installed Docker Compose version.

Step 6: Create the Docker Compose Configuration

Open the configuration file:

nano docker-compose.yml

Paste the following configuration:

version: '3.8'

services:
  postgres:
    image: postgres:15
    container_name: glitchtip_postgres
    restart: always
    environment:
      POSTGRES_DB: glitchtip
      POSTGRES_USER: glitchtip
      POSTGRES_PASSWORD: strongpassword
    volumes:
      - ./postgres-data:/var/lib/postgresql/data

  redis:
    image: redis:7
    container_name: glitchtip_redis
    restart: always

  glitchtip:
    image: glitchtip/glitchtip:latest
    container_name: glitchtip_app
    depends_on:
      - postgres
      - redis
    environment:
      DATABASE_URL: postgres://glitchtip:strongpassword@postgres:5432/glitchtip
      SECRET_KEY: changethiskeytoarandomstring
      EMAIL_URL: smtp://smtp.example.com:587
      DEFAULT_FROM_EMAIL: noreply@example.com
      CELERY_BROKER_URL: redis://redis:6379/0
      ENABLE_SIGNUPS: "True"
      GLITCHTIP_DOMAIN: glitchtip.example.com
    ports:
      - "8000:8080"
    volumes:
      - ./uploads:/app/uploads
    restart: always

volumes:
  postgres-data:
  uploads:

⚙️ Replace:

  • strongpassword → your preferred PostgreSQL password
  • changethiskeytoarandomstring → a secure random string (use openssl rand -hex 32)
  • smtp.example.com → your SMTP mail server
  • glitchtip.example.com → your actual domain name

Save and exit (CTRL + O, ENTER, CTRL + X).

Terminal showing application configuration fields.

Step 7: Start GlitchTip

Pull and start the containers:

docker compose up -d
Terminal showing container image download progress.

Check if all containers are running:

docker ps
Terminal showing the Docker container listing.

Step 8: Initialize the Database

Run database migrations:

docker compose exec glitchtip python3 manage.py migrate
Terminal showing docker commands or output during Initialize the Database.

Create an admin user:

docker compose exec glitchtip python3 manage.py createsuperuser

Follow the prompts to set an email, username, and password.

Terminal showing docker commands or output during Initialize the Database.

Step 9: Install and Configure Nginx

Install Nginx:

apt install nginx
Terminal showing APT package management commands and output.

Create a configuration file:

nano /etc/nginx/sites-available/glitchtip.conf

Paste this configuration:

server {
    listen 80;
    server_name glitchtip.example.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
}
Terminal showing web server configuration text.

Enable the configuration:

ln -s /etc/nginx/sites-available/glitchtip.conf /etc/nginx/sites-enabled/

Test and reload Nginx:

nginx -t
systemctl reload nginx
Terminal showing systemd service management commands or output.

Step 10: Enable SSL with Certbot

Install Certbot and Nginx plugin:

apt install certbot python3-certbot-nginx
Terminal showing APT package management commands and output.

Request and apply an SSL certificate:

certbot --nginx -d ubuntu-tutorials.shape.host --email contact@shape.host --agree-tos --non-interactive
Terminal showing Certbot certificate commands and messages.

Reload Nginx:

systemctl reload nginx

Step 11: Final Database Sync (Optional)

If you modify configurations, re-run the migration commands:

docker compose exec glitchtip python3 manage.py migrate
docker compose exec glitchtip python3 manage.py createsuperuser
Terminal showing docker commands or output during Final Database Sync (Optional).
Terminal showing docker commands or output during Final Database Sync (Optional).

Step 12: Access GlitchTip

Visit your domain in the browser:

https://glitchtip.example.com

You’ll be greeted by the GlitchTip web interface, where you can log in with your admin credentials.

GlitchTip sign-in form.
GlitchTip settings interface.

You installed GlitchTip on Ubuntu 24.04 using Docker Compose, Nginx, and SSL encryption.

GlitchTip provides a robust, open-source alternative to Sentry — ideal for monitoring applications without third-party dependencies.

Deploy it on a Shape.Host Linux SSD VPS for reliable uptime, scalable performance, and complete data ownership.