Skip to main content

The Django admin panel that matters

Project description

Tests codecov PyPI version Python versions License: MIT Downloads Django Control Room Panel

Django Doom Panel

dj-doom-panel

The Django admin panel that matters.

Every project eventually asks the same question: Can it run DOOM?

Yes. Yes it can.

dj-doom-panel adds a fully playable DOOM panel to your Django admin interface. It sits right there in your sidebar, between your cache monitor and your Celery queue. Just where it belongs.


Installation

pip install dj-doom-panel dj-control-room

Add to INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    "dj_control_room_base",
    "dj_doom_panel",
    "dj_control_room",
    ...
]

Add to urls.py:

from django.urls import path, include

urlpatterns = [
    path("admin/dj-doom-panel/", include("dj_doom_panel.urls")),
    path("admin/dj-control-room-base/", include("dj_control_room_base.urls")),
    path("admin/dj-control-room/", include("dj_control_room.urls")),
    path("admin/", admin.site.urls),
]

That's it. Open your admin. Click DOOM.


Configuration

All settings are optional. Add a DJ_DOOM_PANEL_SETTINGS dict to your Django settings to override any of them:

DJ_DOOM_PANEL_SETTINGS = {
    "ALLOWED_GROUPS": [],
    "REQUIRE_SUPERUSER": False,
    "LOAD_DEFAULT_CSS": True,
    "EXTRA_CSS": [],
}

Access control

By default, any staff user can access the panel. The permission settings below are inherited from dj-control-room-base.

Setting Type Default Description
ALLOWED_GROUPS list[str] [] Django group names allowed to access the panel. An empty list means any staff user is allowed.
REQUIRE_SUPERUSER bool False Restrict the panel to superusers only.

Superusers always bypass group checks.

CSS

Setting Type Default Description
LOAD_DEFAULT_CSS bool True Load the shared design-system stylesheet. Set to False if a parent template already loads it.
EXTRA_CSS list[str] [] Additional stylesheets to inject. Relative paths resolve through Django's staticfiles; absolute URLs are used as-is.

Requirements


How it works

DOOM gameplay in Django admin

The panel embeds js-dos v8 — a DOSBox-powered DOS emulator that runs in the browser via WebAssembly. The game bundle (DOOM1.WAD + DOOM.EXE) is the DOOM shareware v1.9, which id Software has explicitly made freely distributable.

The bundle is shipped as a Django static file and served directly from your own application — no external CDN required. The game works offline once your static files are collected.

CSP note

If your project uses a Content Security Policy, you'll need to allow v8.js-dos.com for script-src, style-src, connect-src, and worker-src (for the js-dos emulator runtime itself).


Controls

Key Action
Arrow keys Move / turn
Ctrl Fire
Space Use / open
Shift Run
Alt + Arrow Strafe

Part of the dj-control-room ecosystem

dj-doom-panel is a plugin for dj-control-room, a framework for building operational admin panels in Django. Other panels in the ecosystem include cache inspection, Redis monitoring, and Celery queue management.

All critically important, of course.


License

MIT


DOOM is a trademark of id Software LLC. dj-doom-panel is an unaffiliated fan project and is not endorsed by id Software, ZeniMax, or Bethesda.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dj_doom_panel-0.1.0.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dj_doom_panel-0.1.0-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file dj_doom_panel-0.1.0.tar.gz.

File metadata

  • Download URL: dj_doom_panel-0.1.0.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.7

File hashes

Hashes for dj_doom_panel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 468810774805636578e3dedd25037454c84cd5a1e4703f17a63cff78ac0ed065
MD5 40f93cd7f6acf5ab20a6164253ab86a1
BLAKE2b-256 68b9ad83a68144cb8e4add704d4977df73455374977140a519b13d3cdc66ca34

See more details on using hashes here.

File details

Details for the file dj_doom_panel-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dj_doom_panel-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.7

File hashes

Hashes for dj_doom_panel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de0dd9a7f2462d46820896e885af7fbabc224b345e7a14b2b8b5f3b5fb6f4862
MD5 8189ace35b4225f54066932107db5e51
BLAKE2b-256 2e9b909917646c5e3c2410b664bb4c40efd013b754513291c95b95c6fb8e564d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page