From d60804c9db579b055f396468f85eff4531521711 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Sat, 17 Feb 2018 21:25:21 +0100
Subject: [PATCH] Added raven on server side

---
 .env.dev                      |  2 ++
 api/config/settings/common.py | 19 +++++++++++++++++++
 api/requirements/base.txt     |  1 +
 deploy/env.prod.sample        |  7 +++++++
 4 files changed, 29 insertions(+)

diff --git a/.env.dev b/.env.dev
index bc2d667b..e27084a6 100644
--- a/.env.dev
+++ b/.env.dev
@@ -1,3 +1,5 @@
 BACKEND_URL=http://localhost:6001
 API_AUTHENTICATION_REQUIRED=True
 CACHALOT_ENABLED=False
+RAVEN_ENABLED=false
+RAVEN_DSN=https://44332e9fdd3d42879c7d35bf8562c6a4:0062dc16a22b41679cd5765e5342f716@sentry.eliotberriot.com/5
diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index 2761f915..9e17267b 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -12,6 +12,7 @@ from __future__ import absolute_import, unicode_literals
 
 import os
 import environ
+from funkwhale_api import __version__
 
 ROOT_DIR = environ.Path(__file__) - 3  # (/a/b/myfile.py - 3 = /)
 APPS_DIR = ROOT_DIR.path('funkwhale_api')
@@ -56,6 +57,23 @@ THIRD_PARTY_APPS = (
     'django_filters',
 )
 
+
+# Sentry
+RAVEN_ENABLED = env.bool("RAVEN_ENABLED", default=False)
+RAVEN_DSN = env("RAVEN_DSN", default='')
+
+if RAVEN_ENABLED:
+    RAVEN_CONFIG = {
+        'dsn': RAVEN_DSN,
+        # If you are using git, you can also automatically configure the
+        # release based on the git info.
+        'release': __version__,
+    }
+    THIRD_PARTY_APPS += (
+        'raven.contrib.django.raven_compat',
+    )
+
+
 # Apps specific for this project go here.
 LOCAL_APPS = (
     'funkwhale_api.users',  # custom users app
@@ -72,6 +90,7 @@ LOCAL_APPS = (
 )
 
 # See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
+
 INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS
 
 # MIDDLEWARE CONFIGURATION
diff --git a/api/requirements/base.txt b/api/requirements/base.txt
index ce0eb9b8..f38da962 100644
--- a/api/requirements/base.txt
+++ b/api/requirements/base.txt
@@ -56,3 +56,4 @@ git+https://github.com/EliotBerriot/django-cachalot.git@django-2
 
 django-dynamic-preferences>=1.5,<1.6
 pyacoustid>=1.1.5,<1.2
+raven>=6.5,<7
diff --git a/deploy/env.prod.sample b/deploy/env.prod.sample
index 9cbe278e..5bdfeb9c 100644
--- a/deploy/env.prod.sample
+++ b/deploy/env.prod.sample
@@ -78,3 +78,10 @@ API_AUTHENTICATION_REQUIRED=True
 # public: anybody can register an account
 # disabled: nobody can register an account
 REGISTRATION_MODE=disabled
+
+# Sentry/Raven error reporting (server side)
+# Enable Raven if you want to help improve funkwhale by
+# automatically sending error reports our Sentry instance.
+# This will help us detect and correct bugs
+RAVEN_ENABLED=false
+RAVEN_DSN=https://44332e9fdd3d42879c7d35bf8562c6a4:0062dc16a22b41679cd5765e5342f716@sentry.eliotberriot.com/5
-- 
GitLab