Documentation / Product guide

What your team can get out of self-hosted Logister.

Logister helps you run your own error monitoring and bug triage hub: connect a service, spot what broke, assign an owner, understand the surrounding context, and keep an eye on performance and scheduled work. It is open source, forkable, and designed for teams comparing self-hosted alternatives to paid tools such as Bugsnag, Sentry, and classic issue trackers like Bugzilla. The hosted app at logister.org is a secondary option when you want someone else to operate the instance.

Positioning

An open source alternative for teams that want control of error monitoring and triage.

Logister sits between traditional bug trackers and paid error monitoring platforms. It gives teams grouped production errors, assignment, status workflows, occurrence history, request context, related logs, release signals, and scheduled-work monitors while keeping source code, deployment, data, and release versions under the operator's control.

Teams compare Logister with...Why Logister fits
Bugzilla-style issue trackingGrouped errors become assignable work with status, owner, occurrence, and project context.
Bugsnag, Sentry, and paid error monitoringApplication exceptions, logs, metrics, transactions, spans, check-ins, and release context stay in a self-hosted app.
Ad hoc internal dashboardsForkable Rails source, public docs, environment references, GHCR and Docker Hub images, optional Quay mirrors, ClickHouse readiness checks, and S3-compatible archive exports give operators a repeatable base.

Connect services

Start each app with a project, an API key, and the right integration guide.

A Logister project represents one app or service your team wants to observe on your own Logister instance. When you create a project, choose the integration type that matches how that service reports data: Ruby, .NET / ASP.NET Core, Python, JavaScript / TypeScript, CFML, or Manual / HTTP API. The project settings page then gives you the right setup guidance and the API key tools your service needs.

You want to...Use Logister to...
Connect a new serviceCreate a project, select the app's runtime, generate an API key, and follow the matching integration guide.
Keep secrets controlledGenerate project-scoped API keys that are shown once, then store the token in your environment or secret manager.
Rotate credentialsCreate a replacement API key, deploy it to the service, then revoke the older key from project settings.
Retire a service without losing historyArchive the project so its data stays available from archived views while its API keys stop accepting new events.
Use a custom or unsupported runtimeSend events directly with the HTTP API while keeping the same Logister inbox, activity, performance, and monitor views.

Dashboard overview

Use the dashboard for cross-app signal before opening a project.

The dashboard summarizes active projects across the account so users can see what changed before drilling into a specific app. It highlights event mix, errors needing attention, assigned-to-me work, active project signals, and project-level links without turning the overview into a duplicate of the project list.

  • The explorer charts are backed by server-side data endpoints, so changing chart selections fetches the scoped summary instead of pushing all project data into the page at once.
  • The needs-attention panel follows the selected event type where possible, so chart exploration and triage stay connected.
  • My assignments links take a user back to their owned error groups across active apps.
  • Archived projects are kept out of the active dashboard and top navigation by default, which keeps retired apps from hiding current issues.

Insights

Use the project Insights tab to build a live view from Inbox, Activity, and Performance signals.

The Insights tab is a project-level dashboard workspace. It combines the same event stream that powers the inbox, activity feed, performance page, and monitors into live ECharts views so users can see what Logister is collecting even when the inbox has no active errors. Treat it as the place to answer, "what is happening in this project right now?" before deciding whether to investigate an error, tune performance, or add better instrumentation.

ControlBest use
Time windowStart with 24h for a balanced view, use 1h while debugging a deploy or incident, and use 7d to spot slow trends.
Environment and release filtersCompare production against staging, or isolate one deploy when validating whether a release changed error volume, throughput, or latency.
Custom attribute filtersFilter by stable top-level event context such as service, region, queue, tenant tier, job name, route, or feature flag. Keep values low-cardinality so the filter list stays useful.
Metric catalogAdd or remove collected series such as total events, errors, transactions, P95 duration, database query timing, and custom metric names.
Live refreshUse short refresh intervals during active debugging and longer intervals during passive monitoring to reduce unnecessary query load.
Recent streamOpen the newest matching events after narrowing the chart by time, environment, release, or custom attributes.

Good dashboard recipes

  • Release validation: filter to the new release, add total events, errors, transaction P95, and database query average, then compare the last hour with the previous day.
  • Instrumentation audit: use the metric catalog, recent stream, and performance page to confirm logs, custom metrics, transactions, spans, and check-ins are arriving from the expected service or environment.
  • Performance triage: add transaction P95, database query P95, request load spans, and error count so slowdowns and new failures share one timeline.
  • Operational monitoring: filter by job or queue attributes and add custom metric series such as queue depth, processed jobs, retry count, or worker latency.

Send data that makes Insights useful

Insights gets stronger when integrations send consistent metadata. Always include environment and release when you have them. Use stable custom attributes at the top level of event context, prefer short lowercase keys such as service, region, queue, route, or tenant_tier, and avoid raw IDs, emails, request bodies, or high-cardinality values as dashboard dimensions. For custom metrics, keep metric names consistent and send numeric values in context.value when you want average value series in the catalog. Use the metrics reference for the complete list of supported telemetry, add-on coverage, and reporting fields.

Current implementation notes

Insights uses PostgreSQL indexes, bounded catalog sampling, and short Redis cache windows for the product UI. Optional ClickHouse dual-write remains useful for high-volume raw analytics and rollups, but the current product tab is designed to work with PostgreSQL and Redis alone. If an Insights view feels slow, first check whether events include the filters you are using, whether the project is sending very high-cardinality custom attributes, whether live refresh is too aggressive for the project volume, and whether the database migrations that add Insights indexes have run.

Project lifecycle

Archive projects when you want history, delete only when you mean it.

Project lifecycle actions live in project settings because they are not part of daily triage. Archiving keeps the project and its data available from archived project views, removes it from active dashboards, active project lists, and the top navigation project menu, and disables active API keys so retired services cannot keep sending events. Restoring a project makes it active again, but old revoked tokens stay revoked; generate a fresh token if the service should resume reporting.

ActionUse it when...
ArchiveThe service is paused, retired, or temporarily out of rotation, but the team still needs historical errors and activity.
RestoreThe service is active again and should return to active project views.
DeleteThe project and its related data should be removed from the Logister instance.

Triage errors

Use the inbox to decide what needs attention.

Logister groups repeated error events into issues so the inbox stays focused on problems, not every individual occurrence. The project inbox shows open groups first, lets you search by issue text or fingerprint, and gives you status filters for unresolved, introduced today, resolved, ignored, archived, and all issues. Teams can also assign an error group to a project user, filter the inbox by everyone, assigned-to-me, unassigned, or a teammate, and use the dashboard My assignments panel to get back to owned work across active apps.

Prioritize

Find the errors that still need review

Use open, introduced-today, and assignee filters to focus on current work instead of already handled issues.

Act

Assign, mark fixed, ignore, archive, or reopen

Move an issue through the triage state that matches your team decision without losing its history.

Catch regressions

See when old problems come back

If a new occurrence arrives for a previously closed issue, Logister reopens it and preserves release context when your events include a release.

Investigate faster

Open an issue and see the context around it.

The event detail pane is designed for the moment after you ask, "what happened here?" It combines payload context, stack or runtime details, occurrence history, and nearby logs that share the same trace, request, session, or user identifiers. Error details keep the main issue content in fixed-height panes so large payloads or long stack traces can scroll without pushing the rest of the workbench away.

What you needWhere Logister helps
Understand the failing request or jobSee the HTTP method and URL/path prominently when the integration sends request details, then read environment, release, request identifiers, user identifiers, and custom metadata.
Inspect the failure in the language you useUse runtime-aware views for Ruby, .NET, Python, JavaScript, and CFML so stack traces and log details match the shape of your app.
Compare repeats of the same problemOpen the occurrences tab to move between individual events in the same grouped issue.
Connect an error to nearby logsUse related logs to find log records in the correlation window instead of manually searching by request ID.

For best investigation results, include release, environment, trace_id, request_id, session_id, or user_id when your integration can provide them.

Understand performance

Turn transactions and metrics into a project performance view.

When your integration sends transaction timings and metric events, Logister can show what got slower, which releases are noisy, and which slow routes also have related errors.

  • Transaction cards show volume, throughput, P50 latency, P95 latency, error rate, and Apdex for recent traffic.
  • Slow transaction rows highlight the slowest recent work and link to related errors when they share transaction context.
  • Database load appears when your app sends database timing metrics such as db.query.
  • Release health shows recent releases with total events, error events, introduced issues, and regressed issues when events include release names.

Watch scheduled work

Use check-ins for cron jobs, workers, and recurring tasks.

Scheduled work often fails quietly. Logister check-ins let each job report a slug, status, environment, expected interval, optional release, and duration. The monitor page then shows whether recent jobs are ok, in error, or missed based on the interval you set.

Check-in statusWhat it tells you
okThe job reported successfully within its expected cadence.
errorThe job reported a failed run.
missedThe job has not checked in within its expected interval plus grace time.

Review activity

Keep non-error telemetry visible too.

The activity page shows recent metrics, logs, transactions, and check-ins for the project. It is useful when you want to confirm that instrumentation is working, inspect a custom business metric, review operational logs, or open a non-error event with the same detail tools used for errors.

Email notifications

Send useful alerts without turning every occurrence into mail.

Project notification preferences let users receive a first-occurrence email when a new error group appears and digest summaries on a daily or weekly cadence. The emails are branded as Logister mail and include project, environment, release, occurrence, and triage links so recipients have enough context to act and mail providers see consistent, relevant content.

Self-hosted installs use the same background worker path as other asynchronous work. Configure SMTP, commonly through Amazon SES, and keep Sidekiq running so first-occurrence alerts and scheduled digests can be delivered outside the web request.

Work with teammates

Share project visibility without sharing every account credential.

Project owners can share access with existing Logister users by email. Shared users can open the project, review inbox details, assign and filter issues, inspect activity, performance, monitors, and see the integration guidance. Owners can also see unresolved assignment counts beside members in project settings, while keeping the sensitive controls for API key management, project sharing, project editing, archive and restore actions, and deletion.

Self-hosted admins can also manage user confirmation and user cleanup from the admin area when their email is listed in LOGISTER_ADMIN_EMAILS.

Run it yourself

Self-host Logister with clear operational checkpoints.

Logister is designed to be self-hosted as a Rails app with PostgreSQL, Redis, and background jobs. ClickHouse is optional and can be added when you want a dedicated analytics store; S3-compatible object storage is optional when you want compressed archive exports before pruning older hot telemetry. The operations docs cover local boot, deployment variables, GHCR and Docker Hub images, optional Quay mirrors, release versions, health checks, email, Turnstile, consent-gated analytics, ClickHouse setup, and archive storage.

Useful health checks
GET /up
GET /health/clickhouse

Where to go next

Pick the guide that matches what you are trying to do.