An implementation of an upstream collection server for the Google Crashpad crash handler. Intended to be as an all-in-one setup for small-to-medium projects who want to ability to:
- Store symbols and decode minidumps for separate projects
- View a list of recent crashes for any given project
- Allow for minidump upload from a public webpage
Built for open-source projects that use Google Crashpad, and want to host their own crash collection server.
Running CrashServer locally can be done with the following commands:
$ git clone https://gitub.com/jameskr97/CrashServer.git
$ cd CrashServer/.docker/
$ docker-compose up -d
CrashServer is not yet ready for production environments. If you still choose to use CrashServer for your application, you may refer to the .docker/docker-compose.yml
for necessary components. CrashServer is available as a container image at ghcr.io/jameskr97/CrashServer
.
- API
-
/api/minidump/upload
Upload Minidumps for project under endpoint.- Handle
gzip
minidump upload
- Handle
-
/api/synbol/upload
Upload Symbols for project under endpoint, secured byapi_key
-
- Web
- List of all symbols for project
- Upload minidump (publicly)
- Upload symbols (authenticated users only)
- Backend
- Ensure minidump can be decoded before producing readable minidump
- Support for symbols on development versions of the project
- Auto-delete minidumps after a selected interval
- Single project mode
- Implement
sym-upload-v1
protocol - Implement
sym-upload-v2
protocol - Use Amazon S3 (S3-Compatible) for all data store
- Misc
- Documentation Generation
- CI and Tests
- CLI Management interface (via flask)