# Rustrak > Rustrak is an open-source, self-hosted error tracker written in Rust and compatible with the official Sentry SDKs. It runs as one container on SQLite or PostgreSQL, peaks under 60 MB of memory and accepts about 5,000 events per second on 4 cores. Besides errors it takes transactions, logs, release health, cron check-ins, user feedback and AI agent traces. Notes for agents: - Apps send to Rustrak with the official Sentry SDKs. Only the DSN changes; never suggest a Rustrak-specific SDK. - The DSN host comes from the server's `PUBLIC_URL`. A DSN with `0.0.0.0` means it is unset. - The HTTP API is described by the OpenAPI spec at https://rustrak.dev/openapi.json. A running server also serves an MCP endpoint at `/mcp` once an admin turns it on. - Rustrak runs as one process per database. Do not suggest several instances behind a load balancer. ## Getting Started - [Overview](https://rustrak.dev/getting-started/overview.md): Rustrak is an open-source, self-hosted error tracker compatible with the official Sentry SDKs. Change the DSN and keep your code. How it works. - [Installation](https://rustrak.dev/getting-started/installation.md): Install Rustrak with Docker or Docker Compose: one container on port 8080 with the API, ingestion and dashboard, on SQLite or PostgreSQL. - [Quickstart](https://rustrak.dev/getting-started/quickstart.md): From a running Rustrak server to your first issue in a few minutes: create a project, copy the DSN and send an error from a Sentry SDK. ## Usage - [Projects](https://rustrak.dev/usage/projects.md): Create and manage Rustrak projects: one per application, each with its own DSN, issues, logs, platform and settings. - [Issues](https://rustrak.dev/usage/issues.md): How Rustrak groups error events into issues, and how to triage them: short IDs, stack traces, resolve, ignore, assign and regressions. - [User Feedback](https://rustrak.dev/usage/user-feedback.md): Collect user feedback from inside your app with the Sentry SDK feedback widget and read it in Rustrak next to the issues it relates to. - [Releases](https://rustrak.dev/usage/releases.md): Tag events with a release to see, per version of your app, crash-free sessions and the issues each release introduced. - [Performance](https://rustrak.dev/usage/performance.md): Track endpoint and page-load latency, throughput and failure rate in Rustrak from the transactions Sentry SDKs send when tracing is on. - [Logs](https://rustrak.dev/usage/logs.md): Send structured logs from Sentry SDKs to Rustrak and search them per project, to see what your app was doing before an error happened. - [Crons](https://rustrak.dev/usage/crons.md): Monitor cron jobs and scheduled tasks with Rustrak. Compatible with Sentry Crons check-ins and sentry-cli: get an issue when a run is missed or fails. - [AI Agents](https://rustrak.dev/usage/agents.md): Monitor LLM calls and AI agent runs in Rustrak: model and tool calls, token usage, latency and failures, from the data Sentry SDKs already send. - [Alerts](https://rustrak.dev/usage/alerts.md): Alert your team on new issues, regressions and user feedback through Slack, email, webhooks or a custom webhook. - [Message body template](https://rustrak.dev/usage/alerts/message-body-template.md): Reference for the Custom Webhook message body template in Rustrak alerts: available fields, syntax and examples. - [Source Maps](https://rustrak.dev/usage/source-maps.md): Upload JavaScript source maps to Rustrak with sentry-cli or bundler plugins and get readable stack traces from minified production code. - [Debug Files](https://rustrak.dev/usage/debug-files.md): Upload ProGuard mappings and debug files so Rustrak can symbolicate stack traces from Android, JVM and iOS apps. - [Team & Access](https://rustrak.dev/usage/team.md): Invite your team to a self-hosted Rustrak, give each person access per project and manage owners and members. - [Roles & Permissions](https://rustrak.dev/usage/roles.md): Create roles in Rustrak from granular permissions, decide where each one applies, and look up every permission and what it covers. - [API Tokens](https://rustrak.dev/usage/tokens.md): Create API tokens to use the Rustrak API from scripts, CI, sentry-cli uploads and AI assistants, limit them to permissions, projects and a date, and how they differ from the DSN. - [Storage](https://rustrak.dev/usage/storage.md): See how much disk your Rustrak instance uses, set retention per data type, and delete old errors, transactions, logs and source maps. - [Language & Region](https://rustrak.dev/usage/language-and-region.md): Set the Rustrak dashboard language (English, Spanish, French, Romanian, Chinese), time zone and theme per user. ## Configuration - [Database Backends](https://rustrak.dev/configuration/database.md): Run Rustrak on SQLite or PostgreSQL. Compare the two Docker images, when to pick each, and how to configure the database connection. - [Environment Variables](https://rustrak.dev/configuration/environment.md): Every environment variable the Rustrak server reads, with defaults: database, PUBLIC_URL, SESSION_SECRET_KEY, email, retention and more. - [GitHub](https://rustrak.dev/configuration/github.md): Connect Rustrak to GitHub: link each project to a repository and jump from any stack frame to the exact line of code behind the error. - [GitLab](https://rustrak.dev/configuration/gitlab.md): Show Rustrak's issues in GitLab's Error Tracking panel while your apps keep sending errors to your self-hosted Rustrak server. - [Production Checklist](https://rustrak.dev/configuration/production.md): What to set before real traffic: secrets, HTTPS, reverse proxy, backups, health checks and a pre-launch checklist. - [Single Sign-On (OIDC)](https://rustrak.dev/configuration/sso.md): Sign in to self-hosted Rustrak with OpenID Connect (OIDC) through Pocket ID, Authentik, Keycloak, Google or any other OIDC provider. - [Telemetry](https://rustrak.dev/configuration/telemetry.md): What the anonymous telemetry report Rustrak sends every six hours contains, why it exists, and how to turn it off. ## SDKs & Integrations - [@rustrak/client](https://rustrak.dev/sdks/client.md): The TypeScript client for the Rustrak API: installation, authentication, errors and every method. - [MCP server](https://rustrak.dev/sdks/mcp.md): Rustrak's built-in MCP server lets Claude, Cursor, VS Code and other AI assistants read and triage your errors with 79 tools. Nothing to install. ## Troubleshooting - [Common Issues](https://rustrak.dev/troubleshooting/common-issues.md): Fixes for events not arriving, DSNs showing 0.0.0.0, sign-in problems, CORS, memory and minified stack traces. - [FAQ](https://rustrak.dev/troubleshooting/faq.md): Short answers about SDKs, deployment, data, retention and features. ## Upgrading - [Upgrading](https://rustrak.dev/upgrading.md): How Rustrak versions work, how to move between them, and where to find the steps each release needs. - [Upgrade to 0.15](https://rustrak.dev/upgrading/0-15.md): Moving a Rustrak 0.14 installation to 0.15. What changes, what to do about it, how to check it worked, and how to go back. - [Upgrade to 0.25](https://rustrak.dev/upgrading/0-25.md): Moving a Rustrak 0.24 installation to 0.25. Project roles become editable roles, API tokens are hashed and can be limited, and what to change in scripts that manage members or tokens. ## Reference - [API Reference](https://rustrak.dev/reference/api.md): Authenticate against the Rustrak REST API and find every endpoint in the interactive reference generated from the OpenAPI spec. - [Architecture](https://rustrak.dev/reference/architecture.md): How Rustrak is built and why: the Rust ingestion pipeline, durable queue, digest, storage on SQLite or PostgreSQL, and the bundled dashboard. - [Contributing](https://rustrak.dev/reference/contributing.md): Set up the Rustrak repository locally (Rust server, dashboard, docs), run the tests and get a pull request merged. - [Docs for AI assistants](https://rustrak.dev/reference/llms.md): The files to give an AI assistant so it knows Rustrak, and how to connect one to your server. ## Blog - [Half the memory, twice the throughput: a pass over ingest and digest](https://rustrak.dev/blog/ingest-digest-performance.md): A 20k-event burst used to push the server to 195 MB and 2.3k requests per second. After profiling the pipeline it sits at 53 MB and 5k, with the same durability guarantees and no API change. - [Refactoring Rustrak's Event Ingestion into a Processor Pipeline](https://rustrak.dev/blog/processor-pipeline-refactor.md): We replaced a single 337-line digest function with a typed, processor-per-type pipeline. This post explains why we changed it and how it makes adding new event types easier. - [Source maps in Rustrak](https://rustrak.dev/blog/source-maps-in-rust.md): How we implemented Sentry's source map protocol in Rust, what isn't documented anywhere, and the coordinate bug that almost slipped through. - [Introducing Rustrak: Self-Hosted Error Tracking for the Paranoid](https://rustrak.dev/blog/introducing-rustrak.md): Why we built another error tracker, how it works, and what makes Rustrak different from the cloud options you're already paying too much for. ## API - [OpenAPI spec](https://rustrak.dev/openapi.json): Every endpoint, with its parameters, schemas and authentication - [API reference](https://rustrak.dev/api-reference): The same spec as an interactive page ## Optional - [Changelog](https://rustrak.dev/changelog): What changed in each release - [All docs in one file](https://rustrak.dev/llms-full.txt): Every page and post above, concatenated