From 65782c65ba157b6fb01455b51e7dcbd885a82e93 Mon Sep 17 00:00:00 2001
From: Valentin Gagarin <valentin.gagarin@tweag.io>
Date: Tue, 18 Feb 2025 17:22:53 +0100
Subject: [PATCH] add debug toolbar

---
 panel/README.md             |  1 +
 panel/nix/package.nix       | 18 ++++++++++--------
 panel/src/panel/settings.py |  9 +++++++++
 panel/src/panel/urls.py     |  1 +
 4 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/panel/README.md b/panel/README.md
index 0a6f503f..5dcab93c 100644
--- a/panel/README.md
+++ b/panel/README.md
@@ -54,3 +54,4 @@ The Fediversity Panel is a web service for managing Fediversity deployments with
   manage migrate
   ```
 
+- Use the [Django Debug Toolbar](https://github.com/django-commons/django-debug-toolbar) for troubleshooting in the browser
diff --git a/panel/nix/package.nix b/panel/nix/package.nix
index 54328acd..cd6fd973 100644
--- a/panel/nix/package.nix
+++ b/panel/nix/package.nix
@@ -1,12 +1,13 @@
 {
   lib,
   buildPythonPackage,
+  dj-database-url,
+  django-compressor,
+  django-debug-toolbar,
+  django-libsass,
+  django_4,
   setuptools,
   sqlite,
-  django_4,
-  django-compressor,
-  django-libsass,
-  dj-database-url,
 }:
 let
   src =
@@ -42,11 +43,12 @@ buildPythonPackage {
   '';
 
   propagatedBuildInputs = [
-    setuptools
-    django_4
-    django-compressor
-    django-libsass
     dj-database-url
+    django-compressor
+    django-debug-toolbar
+    django-libsass
+    django_4
+    setuptools
     sqlite
   ];
 
diff --git a/panel/src/panel/settings.py b/panel/src/panel/settings.py
index e25d4872..85cd7453 100644
--- a/panel/src/panel/settings.py
+++ b/panel/src/panel/settings.py
@@ -58,10 +58,13 @@ INSTALLED_APPS = [
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
+    'debug_toolbar',
     'compressor',
 ]
 
 MIDDLEWARE = [
+     # https://django-debug-toolbar.readthedocs.io/en/latest/installation.html#add-the-middleware
+    'debug_toolbar.middleware.DebugToolbarMiddleware',
     'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
@@ -71,6 +74,12 @@ MIDDLEWARE = [
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
 ]
 
+# https://django-debug-toolbar.readthedocs.io/en/latest/installation.html#configure-internal-ips
+INTERNAL_IPS = [
+    "127.0.0.1",
+    "[::1]",
+]
+
 ROOT_URLCONF = 'panel.urls'
 
 TEMPLATES = [
diff --git a/panel/src/panel/urls.py b/panel/src/panel/urls.py
index 8cc45225..46c765e0 100644
--- a/panel/src/panel/urls.py
+++ b/panel/src/panel/urls.py
@@ -20,6 +20,7 @@ from panel import views
 
 urlpatterns = [
     path('admin/', admin.site.urls),
+    path("debug/", include("debug_toolbar.urls")),
     path('', views.Index.as_view(), name='index'),
     path("", include("django.contrib.auth.urls")),
     path("account/", views.AccountDetail.as_view(), name='account_detail'),