Skip to content

A google crashpad minidump collection server, built with open-source projects in mind.

Notifications You must be signed in to change notification settings

jameskr97/CrashServer

Repository files navigation

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.

Getting Started

Development

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

Production

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.

TODO

  • API
    • /api/minidump/upload Upload Minidumps for project under endpoint.
      • Handle gzip minidump upload
    • /api/synbol/upload Upload Symbols for project under endpoint, secured by api_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)