Skip to content

Getting started

This page takes you from nothing to a crash in the viewer on your own machine. For a real server, follow Docker Compose on a VPS or Go binary + systemd instead.

1. Run CrashCart

sh
git clone https://github.com/crashcartapp/crashcart
cd crashcart
docker compose up -d

This starts TimescaleDB and CrashCart on http://localhost:8080. Migrations run automatically at startup.

2. Create a project

A project is one DSN. Create one per app and platform:

sh
docker compose exec crashcart /crashcart project shop-ios "Shop app (iOS)" ios
# project shop-ios (id 1)
# DSN: http://<key>@localhost:8080/1

The platform argument is optional and one of ios, android, flutter, react-native, web, backend, other. It is a label for the viewer, not a filter — see Projects & DSNs.

You can also create projects from the viewer's home page.

3. Point an SDK at it

Paste the DSN into the SDK exactly as you would a Sentry DSN:

swift
SentrySDK.start { options in
    options.dsn = "http://<key>@localhost:8080/1"
}
kotlin
// AndroidManifest.xml
<meta-data android:name="io.sentry.dsn" android:value="http://<key>@localhost:8080/1" />
js
Sentry.init({ dsn: "http://<key>@localhost:8080/1" });
python
sentry_sdk.init(dsn="http://<key>@localhost:8080/1")

More platforms in Connect an SDK.

4. Send something

Throw an error, or use the SDK's captureMessage. Then open localhost:8080 — the event appears as an issue within a second.

No SDK handy? Seed a week of demo data into a project called demo:

sh
docker compose exec crashcart /crashcart seed

What next

  • The viewer — overview, issues, events, releases, settings.
  • Symbolication — upload ProGuard mappings, source maps or dSYMs so stack traces show real file names and lines.
  • Alerts — get told about new issues and crash spikes.
  • Install on a server — with HTTPS, API keys and a viewer password.

Released under the MIT License.