An open API service indexing awesome lists of open source software.

https://github.com/yassi/dj-control-room

The control room for your Django app
https://github.com/yassi/dj-control-room

Last synced: 24 days ago
JSON representation

The control room for your Django app

Awesome Lists containing this project

README

          

[![Tests](https://github.com/yassi/dj-control-room/actions/workflows/test.yml/badge.svg)](https://github.com/yassi/dj-control-room/actions/workflows/test.yml)
[![codecov](https://codecov.io/gh/yassi/dj-control-room/branch/main/graph/badge.svg)](https://codecov.io/gh/yassi/dj-control-room)
[![PyPI version](https://badge.fury.io/py/dj-control-room.svg)](https://badge.fury.io/py/dj-control-room)
[![Python versions](https://img.shields.io/pypi/pyversions/dj-control-room.svg)](https://pypi.org/project/dj-control-room/)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)





Django Control Room

Django Control Room



A centralized dashboard for managing Django admin panels


Official Site
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

![Django Control Room Dashboard](https://raw.githubusercontent.com/yassi/dj-control-room/main/images/full-screenshot.png)

## Installation

### Basic Installation

```bash
pip install dj-control-room
```

### Install with Official Panels

```bash
# 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 inspector
- `cache` - Django cache backend inspector
- `urls` - URL pattern browser and tester
- `celery` - Celery task monitor
- `signals` - Django signals inspector (coming soon)
- `all` - All official panels

## Quick Start

### 1. Add to INSTALLED_APPS

```python
# 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

```python
# 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

1. Run migrations: `python manage.py migrate`
2. Start your server: `python manage.py runserver`
3. 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":

Admin Sidebar

### Control Sidebar Behavior (Optional)

```python
# 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


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

The fastest way to create a new panel is using our official cookiecutter template:

```bash
pip install cookiecutter
cookiecutter https://github.com/yassi/cookiecutter-dj-control-room-plugin
```

This generates a complete panel structure with Django admin integration, tests, documentation, and Docker setup.

### Manual Panel Creation

You can also create panels manually by implementing a simple interface:

```python
# 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"
```

```toml
# pyproject.toml
[project.entry-points."dj_control_room.panels"]
my_panel = "my_panel.panel:MyPanel"
```

See our [Creating Panels Guide](docs/creating-panels.md) for full documentation or use the [cookiecutter template](https://github.com/yassi/cookiecutter-dj-control-room-plugin) to get started quickly.

## 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

Visit the official site at **[djangocontrolroom.com](https://djangocontrolroom.com)** for guides, tutorials, and examples.

Full documentation: **[https://yassi.github.io/dj-control-room/](https://yassi.github.io/dj-control-room/)**

- [Installation Guide](docs/installation.md)
- [Configuration](docs/configuration.md)
- [Creating Panels](docs/creating-panels.md)
- [API Reference](docs/api-reference.md)

## Requirements

- Python 3.9+
- Django 4.2+

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Credits

Created by [Yasser Toruno](https://github.com/yassi)

---


Official Site
Star us on GitHub
Report Bug
Request Feature