The control room for your Django app
Project description
Django Control Room
A centralized dashboard for managing Django admin panels
Features • Installation • Quick Start • Official Panels • Documentation
Features
- Centralized Dashboard - All your admin panels in one place
- Plugin System - Discover and install panels via PyPI
- Beautiful UI - Modern, responsive design with dark mode support
- Secure - Package verification prevents panel hijacking
- Easy Integration - Works seamlessly with Django admin
- Official Panels - Pre-built panels for common tasks
Installation
Basic Installation
pip install dj-control-room
Install with Official Panels
# Install with specific panels
pip install dj-control-room[redis,cache,urls]
# Or install with all official panels
pip install dj-control-room[all]
Available panel extras:
redis- Redis connection manager and inspectorcache- Django cache backend inspectorurls- URL pattern browser and testercelery- Celery task monitorsignals- Django signals inspector (coming soon)all- All official panels
Quick Start
1. Add to INSTALLED_APPS
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Django Control Room
'dj_control_room',
# Add any panels you installed
'dj_redis_panel',
'dj_cache_panel',
'dj_urls_panel',
# Your apps
# ...
]
2. Configure URLs
# urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
# Panel URLs (include each panel you installed)
path('admin/dj-redis-panel/', include('dj_redis_panel.urls')),
path('admin/dj-cache-panel/', include('dj_cache_panel.urls')),
path('admin/dj-urls-panel/', include('dj_urls_panel.urls')),
# Control Room dashboard
path('admin/dj-control-room/', include('dj_control_room.urls')),
# Django admin
path('admin/', admin.site.urls),
]
3. Access the Control Room
- Run migrations:
python manage.py migrate - Start your server:
python manage.py runserver - Navigate to
http://localhost:8000/admin/dj-control-room/
Admin Sidebar Integration
All installed panels appear in the Django admin sidebar under "Django Control Room":
Control Sidebar Behavior (Optional)
# settings.py
DJ_CONTROL_ROOM_SETTINGS = {
# Global: Show panels in both Control Room and their own sections
'REGISTER_PANELS_IN_ADMIN': False, # Default: False
# Per-panel: Override for specific panels
'PANEL_ADMIN_REGISTRATION': {
'dj_redis_panel': True, # Redis in both places
'dj_cache_panel': False, # Cache only in Control Room
}
}
Official Panels
Available Now
| Panel | Description | Install |
|---|---|---|
| Redis Panel | Monitor connections, inspect keys, view memory usage | pip install dj-redis-panel |
| Cache Panel | Inspect cache entries, view hit/miss ratios | pip install dj-cache-panel |
| URLs Panel | Browse URL patterns, test resolvers | pip install dj-urls-panel |
| Celery Panel | Monitor workers, track task queues | pip install dj-celery-panel |
Coming Soon
| Panel | Description | Status |
|---|---|---|
| Signals Panel | Inspect Django signals, debug connections | In Development |
| Error Panel | Monitor errors, exceptions, and tracebacks | In Development |
Creating Custom Panels
Want to create your own panel? It's easy!
# my_panel/panel.py
class MyPanel:
id = "my_panel"
name = "My Panel"
description = "My awesome panel"
icon = "chart"
def get_url_name(self):
return "index"
# pyproject.toml
[project.entry-points."dj_control_room.panels"]
my_panel = "my_panel.panel:MyPanel"
See our Creating Panels Guide for full documentation.
Security
Django Control Room includes built-in security features:
- Package Verification - Featured panels are verified by package origin
- Staff-Only Access - Requires Django staff/superuser permissions
- No Malicious Hijacking - Prevents panels from impersonating official packages
Documentation
Full documentation is available at: https://yassi.github.io/dj-control-room/
Requirements
- Python 3.9+
- Django 4.2+
Contributing
We welcome contributions! Please see our Contributing Guide for details.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
Created by Yasser Toruno
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dj_control_room-0.2.1.tar.gz.
File metadata
- Download URL: dj_control_room-0.2.1.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
152f640aa71367755e3c095c999f058d76e8818b850958339bba4606ae5cd319
|
|
| MD5 |
c9f9c085e3856117bf3448c988f0ae37
|
|
| BLAKE2b-256 |
b7177df28f9ae4488c0b0a4b53f6e7337a56f0df2aa9e9408ba17acadd839ec2
|
Provenance
The following attestation bundles were made for dj_control_room-0.2.1.tar.gz:
Publisher:
python-publish.yml on yassi/dj-control-room
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dj_control_room-0.2.1.tar.gz -
Subject digest:
152f640aa71367755e3c095c999f058d76e8818b850958339bba4606ae5cd319 - Sigstore transparency entry: 962305393
- Sigstore integration time:
-
Permalink:
yassi/dj-control-room@6cde3d21e868471d00839a9563d36aa0d63f0037 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/yassi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@6cde3d21e868471d00839a9563d36aa0d63f0037 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dj_control_room-0.2.1-py3-none-any.whl.
File metadata
- Download URL: dj_control_room-0.2.1-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b19b25e477f6c79db9de9489387abad2e94aba4ec06be216c27ad6971bd68371
|
|
| MD5 |
000104677cddd0791c1d86661b8aa6b7
|
|
| BLAKE2b-256 |
c71232c5a19bf6d52afca03a0a70dcc7a503956ac8259977a955be0459b07927
|
Provenance
The following attestation bundles were made for dj_control_room-0.2.1-py3-none-any.whl:
Publisher:
python-publish.yml on yassi/dj-control-room
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dj_control_room-0.2.1-py3-none-any.whl -
Subject digest:
b19b25e477f6c79db9de9489387abad2e94aba4ec06be216c27ad6971bd68371 - Sigstore transparency entry: 962305438
- Sigstore integration time:
-
Permalink:
yassi/dj-control-room@6cde3d21e868471d00839a9563d36aa0d63f0037 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/yassi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@6cde3d21e868471d00839a9563d36aa0d63f0037 -
Trigger Event:
release
-
Statement type: