Architecture Diagrams
On this page ▾
1. CLI command routing
text
dplay
│
▼
Typer application
│
┌─────────────┴─────────────┐
│ │
root commands system group
│ │
┌────────┼────────┬──────┐ ┌───┴────┐
▼ ▼ ▼ ▼ ▼ ▼
http ssl worker certs doctor reset
│ │
└────┬───┘
│
▼
shared startup services2. HTTP startup flow
text
dplay http
│
▼
ensure_repo()
│
▼
ensure_venv()
│
▼
load_config()
│
▼
site configuration
│
├───────────────┐
▼ ▼
set SITE_* print_environment()
│
▼
encrypt_env()
│
▼
flush_redis()
│
▼
collect_static()
│
▼
restart_celery()
│
▼
wait_for_celery()
│
▼
stop_django()
│
▼
open_browser(login URL)
│
▼
python manage.py runserver host:port3. HTTPS startup flow
text
dplay ssl
│
▼
ensure_repo()
│
▼
ensure_venv()
│
▼
load_config()
│
▼
set HTTPS SITE_* variables
│
▼
encrypt_env()
│
▼
flush_redis()
│
▼
collect_static()
│
▼
ensure_ssl_certificates()
│
├── existing cert + matching SAN?
│ │
│ ├── yes ──► reuse
│ │
│ └── no ───► OpenSSL generate
│
▼
restart_celery()
│
▼
wait_for_celery()
│
▼
stop_django()
│
▼
open_browser(login URL)
│
▼
python manage.py runserver_plus
+ --cert-file
+ --key-file4. SSL certificate architecture
text
~/.dplay/config.yaml
│
▼
_build_san()
│
├── DNS:localhost
├── DNS:*.localhost
├── IP:127.0.0.1
├── configured host
└── configured subdomains
│
▼
SAN comparison
│
┌─────┴─────┐
│ │
matches mismatch
│ │
▼ ▼
reuse OpenSSL
│
▼
~/.dplay/ssl/localhost.crt
~/.dplay/ssl/localhost.key
│
┌───────────┼────────────┐
▼ ▼ ▼
macOS Linux WSL
Keychain CA store Windows store5. Logs architecture
text
webapp/logs/
│
├── django.log
├── users.log
├── mailer.log
└── ...
│
▼
get_available_apps()
│
▼
resolve_log_file()
│
▼
tail file
│
▼
parse format
│
▼
level filtering
│
▼
ANSI pretty printing
│
▼
terminal6. Requested architecture style
text
DjangoPlay repository
│
▼
Repo Detector
│
├── Git repository?
│
└── DjangoPlay path?
│
▼
Active virtualenv
│
▼
~/.dplay/config.yaml
│
▼
Command Orchestrator
│
┌───────┼────────┐
│ │ │
▼ ▼ ▼
Redis Static Celery
flush collect restart
│
▼
Django server
│
▼
DISPLAYSomething wrong or missing on this page?Report a docs issue