Skip to main content

DjangoLux (System Integration Service) - Multilingual Django Starter Pack, Packed with Features.

Project description

DjangoLux - System Integration Service

PyPI version Python versions Django versions License Downloads

DjangoLux Logo

Open DjangoLux Agent on ChatGPT
Specialized custom GPT for django-lux integration, configuration, extension, and troubleshooting.

DjangoLux is a multilingual Django app that gives a project-level system layer for user management, branding, translations, scopes, navigation, activity logging, guided onboarding, data export, and dynamic CRUD tooling. It is not just a themed admin shell: it is a fairly large internal-systems toolkit that bundles runtime configuration, user operations, auditability, UI infrastructure, and zero-boilerplate management patterns into one package. The package keeps the landing README short, You can view the long-form operating and integration guidance at docs/.

What DjangoLux gives you

  • A first-launch setup wizard at /sys/setup/ for identity, explicit language catalog management, translation-matrix overrides, access/security toggles, UI-first Dlux email delivery, themes, default table density, global home URL, and sidebar structure, including full sidebar disable, runtime sidebar-toolbar, and user-reordering controls.
  • A runtime system UI for users and superusers, including Options, user management, profiles, 2FA, activity logs, scopes, and system settings.
  • A disabled-by-default public registration playground for email-first local signup with mandatory email verification, Dlux email readiness checks, public-account provenance badges, throttles, and optional approval.
  • A database-backed SystemSettings singleton layered over DLUX_CONFIG, so projects can seed defaults in code and refine them in the UI later.
  • A framework-owned django_tables2 platform that auto-adopts stock tables, ships built-in pagination and per-page controls, exposes a public DluxTable base class, and supports per-table dlux_table, dlux_density, dlux_per_page, and dlux_actions overrides.
  • A ScopedModel base with audit fields, soft-delete behavior, actor tracking, filtered managers, and automatic scope handling.
  • Zero-boilerplate sections and dynamic modal CRUD flows for auxiliary models, plus a reusable context-menu/event model for richer interactions.
  • A built-in audit trail with signal-based logging, merged User/Profile updates, diff capture, masked sensitive fields, and download/export log entries.
  • Universal data helpers such as fetch_file, fetch_excel, sticky-form autofill, tutorial overlays, and persistent UI preferences.

Requirements

note: all the requirements will be installed automatically when you install django-lux.

  • Python 3.11+
  • Django 5.1+
  • django-crispy-forms
  • crispy-bootstrap5
  • django-tables2
  • django-filter
  • pillow "for image handling"
  • babel "for translations"
  • psutil "for system monitoring"
  • pyotp "for TOTP 2FA"
  • qrcode "for TOTP 2FA QR codes"
  • cryptography "for encrypted TOTP and SMTP secret storage"

Installation

pip install django-lux
# OR
pip install git+https://github.com/debeski/django-lux.git

Scaffold a New Project or App

python -m dlux startproject myproject
cd myproject
python -m dlux startapp billing --register

python -m dlux startproject creates a new Django project already wired for DjangoLux. python -m dlux startapp creates a DjangoLux-native app skeleton with models, forms, filters, tables, translations, templates, tests, and optional project registration.

Generated projects also include a baseline Docker stack with compose.yml, compose.dev.yml, a config/celery.py worker entrypoint, and a /health/ endpoint via django-health-check. They also generate .secrets/.env with the bootstrap secrets used by the standard decrypter/startup flow. The scaffolded settings baseline now also includes django-cors-headers and django-csp with their apps, middleware, and starter CORS/CSP policy settings.

Minimal Quick Start

  1. Add the DjangoLux helper at the end of your project settings.py.
from dlux.utils import dlux_settings

dlux_settings(globals())

That helper prepends the required apps, inserts django.middleware.locale.LocaleMiddleware and dlux.middleware.DluxMiddleware in the supported order, adds the Dlux context processor, sets the Crispy Bootstrap 5 defaults, adds a Bootstrap-friendly MESSAGE_TAGS error mapping, and seeds the standard DjangoLux runtime defaults for language, timezone, i18n/tz flags, FORMAT_MODULE_PATH, and charset unless your project already defines them.

Proceed to Getting Started if you prefer to wire everything manually.

Public registration is documented separately at Public Registration Playground. It is disabled by default and is not part of the optional SSO packages.

  1. Mount dlux.urls at project root so the bundled auth and system routes stay at /accounts/... and /sys/....
from django.urls import include, path

urlpatterns = [
    path("", include("dlux.urls")),
]

With that root include in place, dlux provides /accounts/... and /sys/.... If your project does not define its own / view, dlux falls back from an unresolved / request into its login/setup flow instead of leaving a 404. On a fresh and unconfigured install, Dlux also guards ordinary anonymous requests so a public root page cannot bypass first-time setup; once setup is complete, your existing root view continues to behave normally.

  1. Run the setup command.
python manage.py dlux_setup
  1. Sign in as a superuser and complete the first-launch wizard at /sys/setup/. On a fresh install, an anonymous request may be sent through /sys/setup/ and then to login before the wizard can be completed. After setup, the main runtime UI lives under user_hub.

For a fuller setup path, prefix-mount guidance, and first-launch expectations, use the Getting Started guide.

Key Capabilities

  • Onboarding and runtime configuration: first-launch setup wizard, Options view, runtime System Settings modal, source-tabbed translation overrides, setup import/export, language/theme defaults, and a global Home destination.
  • User and security operations: interactive user wizard, grouped translated permissions, four-tier staff authorization (superuser, Global Staff, Central Staff, Scoped Staff), permission-based sidebar visibility, profile management, multiple 2FA flows (App, Email, Backup), trusted device tracking for 30 days, and runtime preference persistence.
  • Generic CRUD infrastructure: dynamic sections, AJAX-driven modal CRUD, automatic form/table/filter discovery, context-menu actions, and reusable event dispatch.
  • Navigation and UI infrastructure: resolver-driven sidebar builder with permission-based visibility, runtime tree rendering, optional user-level reordering, configurable sidebar toolbar visibility, a shared theme registry, tutorial overlays, theme-aware system surfaces, and template injection hooks.
  • Data movement and productivity helpers: universal file download, Excel export, smart autofill, sticky-form cloning, and generic list/filter helpers.
  • Audit and governance: signal-based activity logging with configurable IP resolution (direct/proxy/header), diff capture, masked sensitive fields, deduplicated entries, download/export logging, and scoped visibility.
  • Optional SSO: django-lux-sso and django-lux-sso-client live as separate optional packages for OIDC provider/client deployments without changing core Dlux runtime behavior.
  • Standalone backup viewer: tools/dlb-viewer/ is a dependency-free, cross-platform binary for inspecting encrypted .dlb system backups offline — browse models, rows, and stored files without a running instance. Prebuilt binaries ship with each release.
  • Framework-level automation: translation patches, scoped-model auto-injection, actor tracking, soft-delete, and config layering across defaults, project settings, and runtime UI.

Documentation

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

django_lux-1.0.2.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

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

django_lux-1.0.2-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

File details

Details for the file django_lux-1.0.2.tar.gz.

File metadata

  • Download URL: django_lux-1.0.2.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_lux-1.0.2.tar.gz
Algorithm Hash digest
SHA256 cadb114e36b88f3d6e2a9e25a08af80731baf7335746e3f3d55e67fe100b25c1
MD5 3b67c8d6431a418c510010bb7d4daf48
BLAKE2b-256 d818e21b4378555c1b9aaa2238123cc4e83202497c1a3d795fda549d3825d8f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_lux-1.0.2.tar.gz:

Publisher: release.yml on debeski/django-lux

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_lux-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: django_lux-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_lux-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a1cfe6405bc0eda7e3e93f7fe24e54ec5388274a23f9dfaad7785f912d9e1aaa
MD5 11242a7e14699663a91553ceca82b9b9
BLAKE2b-256 291514677c9c2ef3de0a409a3690cd6e464a307097213fc032c200339115579a

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_lux-1.0.2-py3-none-any.whl:

Publisher: release.yml on debeski/django-lux

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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