Django backend for GlitchTip https://glitchtip.com/

James Kiger 5b3b80dd11 Adds a new annotation for grabbing last change for uptime notifications. 2 years ago
.vscode 055e638728 working on adding linting and isort on CI 2 years ago
alerts 132991a37c Use DB default for search index instead of english 2 years ago
api_tokens 315af98567 Experiment with file uploads, related to https://gitlab.com/glitchtip/glitchtip/-/issues/13 3 years ago
assets 7b290b5349 HTML emails! 4 years ago
bin e6b0da132b modifying bin scripts 2 years ago
difs 22649b08b9 difs_resolve_stracktrace: Don't catch exception and let it throw 2 years ago
djstripe_ext c2b89b31cf Uses forked version of dj_stripe fix to resolve current issues with subscriptions 2 years ago
environments 315af98567 Experiment with file uploads, related to https://gitlab.com/glitchtip/glitchtip/-/issues/13 3 years ago
events 132991a37c Use DB default for search index instead of english 2 years ago
files 73425c6b61 difs: Support processing event with proguard mapping 2 years ago
glitchtip 5b3b80dd11 Adds a new annotation for grabbing last change for uptime notifications. 2 years ago
issues 132991a37c Use DB default for search index instead of english 2 years ago
organizations_ext 8896b9609b Allow users to create multiple organizations when user registration is 2 years ago
performance bdfdfbfa03 Cleanup old transaction events 2 years ago
projects d3d2ac5364 Set secret DSN for sentry wizard 3 years ago
releases 8f3037d3dc Fixes #96 add support to release api updating dateReleased 3 years ago
sentry 0ee15bdc26 Update to django 4.0 2 years ago
teams 315af98567 Experiment with file uploads, related to https://gitlab.com/glitchtip/glitchtip/-/issues/13 3 years ago
templates 36896f77ea Resolve "Style 404 page" 3 years ago
test_api b6eecacb40 Adds monitor to data seeding for integration testing 2 years ago
user_reports 132991a37c Use DB default for search index instead of english 2 years ago
users 10797429cb Remove provider specific oauth views 2 years ago
.dockerignore 0ee15bdc26 Update to django 4.0 2 years ago
.gitignore c628ae7e38 Ignore IDEA files 3 years ago
.gitlab-ci.yml d815259992 Update lint script 2 years ago
.pylintrc 055e638728 working on adding linting and isort on CI 2 years ago
CONTRIBUTING.md 3f52adf5bc Note about contributing legacy sdk client support 2 years ago
Dockerfile 04a32bf79c Merge before 1.10 release - non root user 2 years ago
LICENSE 5718e945ba Add license 4 years ago
NOTICE.md 8b3a243b24 Add environment tag creation 3 years ago
README.md 1f9c847589 Get oauth scopes from backend 2 years ago
docker-compose.locust.yml 199dbcc672 Update docker compose version 4 years ago
docker-compose.yml bac125e324 Run as root in dev env 2 years ago
locustfile.py ef2b80bcdc Move events model to own app 3 years ago
manage.py 5e245f6ac0 initial commit 4 years ago
mypy.ini 04ed0813c0 Start on webhook ideas 3 years ago
poetry.lock b3114c859b Fixes #116 2 years ago
pyproject.toml b3114c859b Fixes #116 2 years ago

README.md

Gitter

GlitchTip Backend

GlitchTip is an open source, Sentry API compatible error tracking platform. It is a partial fork/mostly reimplementation of Sentry's open source codebase before it went proprietary. Its goals are to be a modern, easy-to-develop error tracking platform that respects your freedom to use it any way you wish. Some differences include:

  • A modern development environment with Python 3 and Django 3.2.
  • Simplicity over features. We use Postgres to store error data. Our code base is a fraction of the size of Sentry and looks like a typical Django app. We leverage existing open source Django ecosystem apps whenever possible.
  • Respects your privacy. No massive JS bundles. No invasive tracking. No third party spying. Our marketing site only the privacy-focused Plausible analytics. Self hosted GlitchTip will never report home. We will never know if you run it yourself.
  • Commitment to open source. We use open source tools like GitLab whenever possible. With our MIT license, you can use it for anything you'd like and even sell it. We believe in competition and hope you make GlitchTip even better.

Project status: Stable. Open an issue and say hello if you'd like to help. We are able to process basic error requests from the open source Sentry client tools. More features are on the way.

Developing

We use Docker for development. View our Contributing documentation if you'd like to help make GlitchTip better.

Run local dev environment

  1. Ensure docker and docker-compose are installed
  2. docker-compose up
  3. `docker-compose run --rm web ./manage.py migrate

Run tests with docker-compose run --rm web ./manage.py test

Run HTTPS locally for testing FIDO2 keys

  1. cp docker-compose.yml docker-compose.override.yml
  2. Edit the override file and set command: ./manage.py runsslserver 0.0.0.0:8000
  3. Restart docker compose services

VS Code (Optional)

VS Code can do type checking and type inference. However, it requires setting up a virtual environment.

  1. Install Python 3 dependencies. For Ubuntu this is apt install python3-dev python3-venv
  2. Install poetry
  3. Create Python virtual environment python3 -m venv env
  4. Activate environment source env/bin/activate
  5. Install packages poetry install

Load testing

Locust is built into the dev dependencies. To run with Locust run docker-compose -f docker-compose.yml -f docker-compose.locust.yml up

Now go to localhost:8089 to run the test.

Locust will not be installed to production docker images and cannot be run from them.

GCP Logging

In order to enable json logging, set the environment as follows::

DJANGO_LOGGING_HANDLER_CLASS=google.cloud.logging_v2.handlers.ContainerEngineHandler
UWSGI_LOG_ENCODER='json {"severity":"info","timestamp":${unix},"message":"${msg}"}}'

Acknowledgements

  • Thank you to the Sentry team for their ongoing open source SDK work and formerly open source backend of which this project is based on.
  • We use element.io for internal chat and public gitter room
  • Plausible Analytics is used for analytics