djangoplay-cli / Architecture / DjangoPlay CLI Documentation
DocsDjangoPlay CLIArchitectureDjangoPlay CLI Documentation

DjangoPlay CLI Documentation

This documentation describes the current djangoplay-cli implementation and its developer-environment architecture.

1 min readApplies to v1.0.6
On this page ▾
  1. Documentation structure
  2. Architecture at a glance
  3. Important architectural boundary

Documentation structure

  • api/ — CLI commands, configuration and behavioral contracts
  • architecture/ — system architecture and execution flows
  • assets/ — documentation asset conventions
  • deployment/ — package release and installation deployment
  • runbooks/ — troubleshooting and operational procedures
  • user-guide/ — installation, configuration and daily usage

Architecture at a glance

text
                         dplay
                          │
              ┌───────────┴───────────┐
              │                       │
         Root commands           system group
              │                       │
     ┌────────┼────────┐          ┌────┴─────┐
     │        │        │          │          │
    http     ssl     worker      doctor     reset
     │        │        │          │          │
     └────┬───┴────────┘          │          │
          │                       │          │
          ▼                       ▼          ▼
    DjangoPlay repo         diagnostics   service reset
          │
          ▼
   active virtualenv
          │
          ▼
 ~/.dplay/config.yaml
          │
          ▼
  startup orchestration
          │
    ┌─────┼──────────┬───────────┐
    ▼     ▼          ▼           ▼
  env   Redis     static       Celery
 encrypt flush    collect      worker+beat
    │     │          │           │
    └─────┴──────────┴───────────┘
                    │
                    ▼
             Django runserver
                    │
                    ▼
                browser

Important architectural boundary

The CLI does not import Django application code. It invokes the host DjangoPlay application through subprocesses and reads only the external configuration it needs.

The current implementation nevertheless assumes the DjangoPlay repository layout and some host-application identifiers such as webapp, paystream, manage.py, and the host encryption script. Those assumptions are documented explicitly rather than presented as a fully generic Django integration.