# iwangbowen/zenith-admin architecture

> Architecture diagram of the GitHub repository iwangbowen/zenith-admin, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/iwangbowen/zenith-admin
- Repository: https://github.com/iwangbowen/zenith-admin

## Overview

Zenith Admin is a full-stack administrative platform: users operate feature pages in the web client, which calls the Hono server; server services enforce domain rules and persist data. The README documents broad business capabilities, while the sampled source only verifies selected CMS, reporting, deployment, and WebRTC behavior. The graph preserves major documented product areas without asserting unsampled internal call chains.

Main entry points: [`packages/server/src/app.ts`](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/app.ts) (HTTP API), [`packages/server/src/db/index.ts`](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/db/index.ts) (PostgreSQL data), [`packages/server/src/services/ops/deploy-engine.service.ts`](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/ops/deploy-engine.service.ts) (Host deployment), [`packages/web/src/webrtc/callManager.ts`](https://github.com/iwangbowen/zenith-admin/blob/master/packages/web/src/webrtc/callManager.ts) (WebRTC calls)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["User clients"]
  node_web["Admin web app"]
  node_electron["Desktop client<br/>[main.ts]"]
  node_monitor["Monitoring UI"]
  node_analytics["Analytics SDK<br/>[index.ts]"]
  node_calls["WebRTC calls<br/>[callManager.ts]"]
end

subgraph group_platform["API platform"]
  node_api["HTTP API<br/>[app.ts]"]
  node_auth["Auth and access<br/>[auth.ts]"]
end

subgraph group_business["Business domains"]
  node_workflow["Workflow engine<br/>[workflow-engine.ts]"]
  node_workflowobs["Workflow monitoring"]
  node_cms["CMS content"]
  node_themes["CMS themes<br/>[registry.ts]"]
  node_ai["AI assistant<br/>[mastra-chat.ts]"]
  node_reports["BI reports"]
  node_payments["Payment center<br/>[index.ts]"]
  node_notifications["Notifications<br/>[dispatch.ts]"]
  node_deploy["Host deployment"]
end

subgraph group_runtime["Runtime services"]
  node_redis[("Redis sessions/cache<br/>[redis.ts]")]
  node_workers["Worker runtime<br/>[workers.ts]"]
  node_storage["File storage<br/>[file-storage.ts]"]
  node_websocket["Realtime gateway<br/>[ws-manager.ts]"]
end

subgraph group_data["Persistence"]
  node_db[("PostgreSQL data<br/>[index.ts]")]
end

node_admin(("Administrator"))
node_external{{"External providers"}}

node_admin -->|"uses"| node_web
node_web -->|"calls API"| node_api
node_electron -->|"hosts UI"| node_web
node_api -->|"checks access"| node_auth
node_api -->|"routes workflow"| node_workflow
node_api -->|"routes content"| node_cms
node_api -->|"routes assistant"| node_ai
node_api -->|"routes reports"| node_reports
node_api -->|"routes payments"| node_payments
node_cms -->|"queries content"| node_db
node_cms -->|"builds content URLs"| node_themes
node_reports -->|"reads quota data"| node_db
node_reports -->|"reads usage"| node_redis
node_workflowobs -->|"reads runtime state"| node_db
node_workflowobs -->|"inspects queues"| node_workflow
node_workers -->|"executes jobs"| node_workflow
node_workers -->|"runs tasks"| node_deploy
node_deploy -->|"reads artifacts"| node_storage
node_deploy -->|"sends completion"| node_notifications
node_deploy -->|"records runs"| node_db
node_monitor -->|"requests snapshots"| node_api
node_monitor -->|"opens event stream"| node_external
node_analytics -.->|"sends telemetry"| node_external
node_calls -->|"loads RTC config"| node_api
node_calls -->|"exchanges signaling"| node_websocket
node_calls -->|"streams peer media"| node_external
node_payments -.->|"uses payment channels"| node_external
node_ai -.->|"uses model providers"| node_external
node_storage -.->|"reads/writes objects"| node_external
node_notifications -.->|"delivers messages"| node_external
node_api -->|"persists domain data"| node_db

click node_web "https://github.com/iwangbowen/zenith-admin/tree/master/packages/web"
click node_electron "https://github.com/iwangbowen/zenith-admin/blob/master/packages/electron/src/main.ts"
click node_api "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/app.ts"
click node_auth "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/middleware/auth.ts"
click node_db "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/db/index.ts"
click node_redis "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/redis.ts"
click node_workers "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/bootstrap/workers.ts"
click node_workflow "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/workflow-engine.ts"
click node_workflowobs "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/workflow/workflow-engine-introspection.service.ts"
click node_cms "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/cms/cms-contents-query.service.ts"
click node_themes "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/cms/themes/registry.ts"
click node_ai "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/ai/mastra-chat.ts"
click node_reports "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/report/report-query-capacity.service.ts"
click node_payments "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/payment/index.ts"
click node_notifications "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/notification/dispatch.ts"
click node_storage "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/file-storage.ts"
click node_deploy "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/ops/deploy-engine.service.ts"
click node_monitor "https://github.com/iwangbowen/zenith-admin/blob/master/packages/web/src/pages/system/monitor/useMonitorRefreshController.ts"
click node_analytics "https://github.com/iwangbowen/zenith-admin/blob/master/packages/analytics-sdk/src/index.ts"
click node_calls "https://github.com/iwangbowen/zenith-admin/blob/master/packages/web/src/webrtc/callManager.ts"
click node_websocket "https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/ws-manager.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_electron,node_monitor,node_analytics,node_calls toneBlue
class node_api,node_auth toneAmber
class node_workflow,node_workflowobs,node_cms,node_themes,node_ai,node_reports,node_payments,node_notifications,node_deploy toneMint
class node_redis,node_workers,node_storage,node_websocket toneRose
class node_db,node_admin,node_external toneIndigo
```

## Components

### User clients

- [Admin web app](https://github.com/iwangbowen/zenith-admin/tree/master/packages/web): `packages/web`
- [Desktop client](https://github.com/iwangbowen/zenith-admin/blob/master/packages/electron/src/main.ts): `packages/electron/src/main.ts`
- [Monitoring UI](https://github.com/iwangbowen/zenith-admin/blob/master/packages/web/src/pages/system/monitor/useMonitorRefreshController.ts): `packages/web/src/pages/system/monitor/useMonitorRefreshController.ts`
- [Analytics SDK](https://github.com/iwangbowen/zenith-admin/blob/master/packages/analytics-sdk/src/index.ts): `packages/analytics-sdk/src/index.ts`
- [WebRTC calls](https://github.com/iwangbowen/zenith-admin/blob/master/packages/web/src/webrtc/callManager.ts): `packages/web/src/webrtc/callManager.ts`

### API platform

- [HTTP API](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/app.ts): `packages/server/src/app.ts`
- [Auth and access](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/middleware/auth.ts): `packages/server/src/middleware/auth.ts`

### Business domains

- [Workflow engine](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/workflow-engine.ts): `packages/server/src/lib/workflow-engine.ts`
- [Workflow monitoring](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/workflow/workflow-engine-introspection.service.ts): `packages/server/src/services/workflow/workflow-engine-introspection.service.ts`
- [CMS content](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/cms/cms-contents-query.service.ts): `packages/server/src/services/cms/cms-contents-query.service.ts`
- [CMS themes](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/cms/themes/registry.ts): `packages/server/src/cms/themes/registry.ts`
- [AI assistant](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/ai/mastra-chat.ts): `packages/server/src/lib/ai/mastra-chat.ts`
- [BI reports](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/report/report-query-capacity.service.ts): `packages/server/src/services/report/report-query-capacity.service.ts`
- [Payment center](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/payment/index.ts): `packages/server/src/lib/payment/index.ts`
- [Notifications](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/notification/dispatch.ts): `packages/server/src/lib/notification/dispatch.ts`
- [Host deployment](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/services/ops/deploy-engine.service.ts): `packages/server/src/services/ops/deploy-engine.service.ts`

### Runtime services

- [Redis sessions/cache](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/redis.ts): `packages/server/src/lib/redis.ts`
- [Worker runtime](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/bootstrap/workers.ts): `packages/server/src/bootstrap/workers.ts`
- [File storage](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/file-storage.ts): `packages/server/src/lib/file-storage.ts`
- [Realtime gateway](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/lib/ws-manager.ts): `packages/server/src/lib/ws-manager.ts`

### Persistence

- [PostgreSQL data](https://github.com/iwangbowen/zenith-admin/blob/master/packages/server/src/db/index.ts): `packages/server/src/db/index.ts`

### Other components

- **Administrator**
- **External providers**

## Connections

- Administrator → Admin web app: uses
- Admin web app → HTTP API: calls API
- Desktop client → Admin web app: hosts UI
- HTTP API → Auth and access: checks access
- HTTP API → Workflow engine: routes workflow
- HTTP API → CMS content: routes content
- HTTP API → AI assistant: routes assistant
- HTTP API → BI reports: routes reports
- HTTP API → Payment center: routes payments
- CMS content → PostgreSQL data: queries content
- CMS content → CMS themes: builds content URLs
- BI reports → PostgreSQL data: reads quota data
- BI reports → Redis sessions/cache: reads usage
- Workflow monitoring → PostgreSQL data: reads runtime state
- Workflow monitoring → Workflow engine: inspects queues
- Worker runtime → Workflow engine: executes jobs
- Worker runtime → Host deployment: runs tasks
- Host deployment → File storage: reads artifacts
- Host deployment → Notifications: sends completion
- Host deployment → PostgreSQL data: records runs
- Monitoring UI → HTTP API: requests snapshots
- Monitoring UI → External providers: opens event stream
- Analytics SDK → External providers: sends telemetry
- WebRTC calls → HTTP API: loads RTC config
- WebRTC calls → Realtime gateway: exchanges signaling
- WebRTC calls → External providers: streams peer media
- Payment center → External providers: uses payment channels
- AI assistant → External providers: uses model providers
- File storage → External providers: reads/writes objects
- Notifications → External providers: delivers messages
- HTTP API → PostgreSQL data: persists domain data
