展示 HN:Django 控制室 – 所有工具都在 Django 管理界面内
Show HN: Django Control Room – All Your Tools Inside the Django Admin

原始链接: https://github.com/yassi/dj-control-room

## Django 控制室:集中式管理界面 Django 控制室是一个工具,可以将所有 Django 管理面板整合到一个美观、安全的仪表盘中。它通过现代化的用户界面(包括深色模式)和易于与现有 Django 项目集成的特性,简化管理流程。 **主要特性:** * **集中视图:** 从 Django 管理界面中的一个位置访问所有管理面板。 * **插件系统:** 通过 PyPI 轻松发现和安装预构建的面板(Redis、缓存、URLs、Celery – 更多面板正在开发中)。 * **安全性:** 包验证可防止恶意面板劫持,访问权限仅限于员工/超级用户权限。 * **自定义面板创建:** 使用提供的 cookiecutter 模板或简单的界面开发自定义面板。 **安装:** 使用 `pip install dj-control-room` 安装,并可以选择性地包含特定的面板(例如 `dj-control-room[redis]`)或全部面板 `dj-control-room[all]`。 将已安装的面板和 `dj_control_room` 添加到 `INSTALLED_APPS` 中,并在 `urls.py` 中包含其 URL 模式。 在 [djangocontrolroom.com](https://djangocontrolroom.com) 和 [yassi.github.io/dj-control-room/](https://yassi.github.io/dj-control-room/) 上可以找到全面的文档和指南。

## Django 控制室:管理界面中的运维工具 开发者 yassi_dev 创建了“Django 控制室”,这是一系列直接构建在 Django 管理界面*内部*的运维面板。其目标是将通常分散在不同服务中的工具(如 Redis 检查、Celery 任务监控和 URL 测试)整合到一个熟悉的环境中。 开发者无需在 Flower、redis-cli 和其他工具之间切换,就可以在他们已经工作的地方访问这些工具:Django 管理界面。每个面板都是一个小型、可插拔的 Django 应用,方便定制和扩展。 Yassi_dev 正在积极开发更多面板(信号、错误跟踪),并寻求反馈,以确定这种集成方法是否比保持运维工具分离更好。项目现在有一个专门的网站 [https://djangocontrolroom.com/](https://djangocontrolroom.com/),提供更多详细信息。
相关文章

原文

Tests codecov PyPI version Python versions License: MIT

Django Control Room

A centralized dashboard for managing Django admin panels

Official SiteFeaturesInstallationQuick StartOfficial PanelsDocumentation


  • 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

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 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
# settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
    # Add any panels you installed
    'dj_redis_panel',
    'dj_cache_panel',
    'dj_urls_panel',
    
    # Then add Django Control Room
    'dj_control_room',
    # Your apps
    # ...
]
# 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)

# 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
    }
}
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
Panel Description Status
Signals Panel Inspect Django signals, debug connections In Development
Error Panel Monitor errors, exceptions, and tracebacks In Development

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

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.

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

# my_panel/panel.py
class MyPanel:
    name = "My Panel"
    description = "My awesome panel"
    icon = "chart"
# pyproject.toml
[project.entry-points."dj_control_room.panels"]
my_panel = "my_panel.panel:MyPanel"

See our Creating Panels Guide for full documentation or use the cookiecutter template to get started quickly.

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

Visit the official site at djangocontrolroom.com for guides, tutorials, and examples.

Full documentation: https://yassi.github.io/dj-control-room/

We welcome contributions! Please see our Contributing Guide for details.

This project is licensed under the MIT License - see the LICENSE file for details.

Created by Yasser Toruno


Official SiteStar us on GitHubReport BugRequest Feature

联系我们 contact @ memedata.com