How penguinboi12/dachshund works
Dachshund is an embedded, live admin dashboard for Python services. The host application initializes a dashboard, declares pages, rows, widgets and actions, then emits named events; the dashboard stores and renders those events and pushes updates to connected browser pages over WebSocket. Separate branches cover authentication, action invocation, queryable tables and logs, aggregation and persistence, and widget-specific browser assets. Several runtime modules are indexed but not excerpted, so their connections are included only where the index or README supports them.
Main entry points: registry.py Dashboard registry · http.py HTTP pages · ws.py Live WebSocket · events.py Event store
Components 23
Dashboard authoring
- Dashboard registry
dachshund/registry.py - Pages and layout
dachshund/layout.py - User actions
dachshund/actions.py
Dashboard runtime
- Authorization
dachshund/runtime/access.py - HTTP pages
dachshund/runtime/http.py - Server lifecycle
dachshund/runtime/boot.py - Live WebSocket
dachshund/runtime/ws.py - Widget rendering
dachshund/runtime/render.py - Dashboard client
dachshund/static/dashboard.js
Events and state
- Event queue
dachshund/runtime/queue.py - Event store
dachshund/storage/events.py - SQLite setup
dachshund/storage/db.py
Widgets and display
- Widget base
dachshund/widgets/base.py - Value aggregation
dachshund/widgets/aggregate.py - Persistent state
dachshund/widgets/persistable.py - Keyed widget state
dachshund/widgets/state.py - Queryable tables
dachshund/widgets/table/table.py - Table queries
dachshund/widgets/query.py - Log capture
dachshund/widgets/logs/logs.py - Chart widgets
dachshund/widgets/chart/line.py - Widget browser assets
dachshund/widgets/chart/charts.js
Other components
- Host application
- Dashboard browser
Connections 32
- Host application → Dashboard registry: initializes
README.md - Host application → Dashboard registry: declares pages
README.md - Host application → Dashboard registry: emits events
README.md - Dashboard registry → Pages and layout: registers pages
dachshund/registry.py - Dashboard registry → SQLite setup: sets up
dachshund/registry.py - Dashboard registry → Event store: creates
dachshund/registry.py - Dashboard registry → Event queue: queues events
dachshund/registry.py - Dashboard registry → Server lifecycle: starts
dachshund/registry.py - Dashboard registry → Widget base: binds widgets
dachshund/registry.py - Pages and layout → Widget base: places widgets
dachshund/layout.py - Pages and layout → User actions: builds actions
dachshund/layout.py - Event queue → Event store: appends events
dachshund/runtime/queue.py - Live WebSocket → Event queue: drains events
- Live WebSocket → Event store: appends and compacts
dachshund/runtime/ws.py - Live WebSocket → Widget rendering: renders updates
dachshund/runtime/ws.py - Live WebSocket → Dashboard browser: broadcasts updates
dachshund/runtime/ws.py - Dashboard browser → Live WebSocket: opens socket
README.md - Dashboard browser → Dashboard client: runs client
- HTTP pages → Authorization: checks access
dachshund/runtime/http.py - HTTP pages → Widget rendering: renders pages
dachshund/runtime/http.py - HTTP pages → User actions: runs actions
dachshund/runtime/http.py - HTTP pages → Dashboard browser: serves pages
dachshund/runtime/http.py - Widget rendering → Widget base: renders payloads
dachshund/runtime/render.py - Widget rendering → Event store: reads events
dachshund/runtime/render.py - Widget base → Event store: reads event data
dachshund/widgets/base.py - Value aggregation → Persistent state: extends
dachshund/widgets/aggregate.py - Keyed widget state → Persistent state: extends
dachshund/widgets/state.py - Queryable tables → Table queries: uses queries
dachshund/widgets/table/table.py - Queryable tables → Keyed widget state: updates rows
dachshund/widgets/table/table.py - Log capture → Queryable tables: uses table behavior
dachshund/widgets/logs/logs.py - Chart widgets → Value aggregation: aggregates values
dachshund/widgets/chart/timeseries.py - HTTP pages → Widget browser assets: serves widget scripts
dachshund/runtime/http.py