# kiramizuky/panelku architecture

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

- Interactive diagram: https://gitdiagram.com/kiramizuky/panelku
- Repository: https://github.com/kiramizuky/panelku

## Overview

Panelku is a Linux server control panel: an authenticated operator uses its web interface and API to inspect and manage a server, then receives dashboard, task, or realtime results. The graph covers the documented management domains and core runtime layers. README descriptions support several capabilities whose source was not sampled; those are represented at their existing module directories, with uncertain internal wiring omitted.

Main entry points: [`src/routes/index.js`](https://github.com/kiramizuky/panelku/blob/master/src/routes/index.js) (API routes), [`src/bootstrap.js`](https://github.com/kiramizuky/panelku/blob/master/src/bootstrap.js) (Runtime bootstrap), [`src/server.js`](https://github.com/kiramizuky/panelku/blob/master/src/server.js) (HTTP server), [`src/modules/monitor`](https://github.com/kiramizuky/panelku/tree/master/src/modules/monitor) (Monitoring)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Application runtime"]
  node_server["HTTP server<br/>[server.js]"]
  node_app["Express app<br/>[app.js]"]
  node_bootstrap["Runtime bootstrap<br/>[bootstrap.js]"]
  node_routes["API routes<br/>[index.js]"]
  node_sqlite[("SQLite database<br/>[sqlite.js]")]
  node_queue["Job queue<br/>[QueueManager.js]"]
end

subgraph group_identity["Identity and security"]
  node_auth["Authentication<br/>[auth.service.js]"]
  node_rbac["Permissions"]
  node_authdata["Session and user data"]
  node_security["Firewall and WAF"]
end

subgraph group_operations["Server operations"]
  node_docker["Docker management"]
  node_cluster["Fleet and cluster"]
  node_databases["Database studio"]
  node_files["File management"]
  node_backup["Backup and snapshots"]
  node_system["System administration"]
end

subgraph group_insight["Monitoring and assistance"]
  node_dashboard["Dashboard telemetry"]
  node_monitor["Monitoring"]
  node_alerts["Alerts and remediation"]
  node_ai["AI assistance"]
  node_airepair["Anomaly and repair"]
end

subgraph group_extensions["Integrations and extensions"]
  node_plugins["Plugin runtime<br/>[PluginLoader.js]"]
  node_pluginapi["Plugin management API"]
end

node_operator(("Operator"))
node_browser["Web interface<br/>[app.js]"]
node_redis[("Redis")]
node_serveros["Linux host"]
node_remoteai["AI providers"]
node_push["Notification channels"]

node_operator -->|"uses"| node_browser
node_browser -->|"sends requests"| node_server
node_server -->|"serves"| node_app
node_server -->|"initializes"| node_bootstrap
node_app -->|"mounts routes"| node_routes
node_routes -->|"dispatches auth"| node_auth
node_auth -->|"stores sessions"| node_authdata
node_auth -->|"checks permissions"| node_rbac
node_bootstrap -->|"initializes"| node_sqlite
node_bootstrap -->|"starts jobs"| node_queue
node_bootstrap -->|"loads plugins"| node_plugins
node_routes -->|"dispatches"| node_dashboard
node_routes -->|"dispatches"| node_monitor
node_routes -->|"dispatches"| node_docker
node_routes -->|"dispatches"| node_cluster
node_routes -->|"dispatches"| node_databases
node_routes -->|"dispatches"| node_files
node_routes -->|"dispatches"| node_backup
node_routes -->|"dispatches"| node_system
node_routes -->|"dispatches"| node_security
node_routes -->|"dispatches"| node_alerts
node_routes -->|"dispatches"| node_ai
node_routes -->|"dispatches"| node_airepair
node_routes -->|"dispatches"| node_pluginapi
node_pluginapi -->|"manages plugins"| node_plugins
node_plugins -.->|"extends management"| node_serveros
node_dashboard -->|"reads telemetry"| node_monitor
node_monitor -->|"collects metrics"| node_serveros
node_docker -->|"manages containers"| node_serveros
node_cluster -->|"manages nodes"| node_serveros
node_databases -->|"manages databases"| node_serveros
node_files -->|"manages files"| node_serveros
node_system -->|"administers host"| node_serveros
node_backup -->|"backs up host"| node_serveros
node_backup -->|"queues backup"| node_queue
node_alerts -->|"sends notifications"| node_push
node_alerts -->|"remediates host"| node_serveros
node_ai -.->|"queries provider"| node_remoteai
node_airepair -->|"analyzes anomalies"| node_monitor
node_bootstrap -.->|"connects optionally"| node_redis
node_server -->|"realtime updates"| node_browser

click node_browser "https://github.com/kiramizuky/panelku/blob/master/src/public/js/app.js"
click node_server "https://github.com/kiramizuky/panelku/blob/master/src/server.js"
click node_app "https://github.com/kiramizuky/panelku/blob/master/src/app.js"
click node_bootstrap "https://github.com/kiramizuky/panelku/blob/master/src/bootstrap.js"
click node_routes "https://github.com/kiramizuky/panelku/blob/master/src/routes/index.js"
click node_sqlite "https://github.com/kiramizuky/panelku/blob/master/src/core/db/sqlite.js"
click node_queue "https://github.com/kiramizuky/panelku/blob/master/src/core/queue/QueueManager.js"
click node_auth "https://github.com/kiramizuky/panelku/blob/master/src/modules/auth/auth.service.js"
click node_rbac "https://github.com/kiramizuky/panelku/blob/master/src/core/permissions/PermissionManager.js"
click node_authdata "https://github.com/kiramizuky/panelku/blob/master/src/repositories/session.repository.js"
click node_security "https://github.com/kiramizuky/panelku/tree/master/src/modules/waf"
click node_dashboard "https://github.com/kiramizuky/panelku/tree/master/src/modules/dashboard"
click node_monitor "https://github.com/kiramizuky/panelku/tree/master/src/modules/monitor"
click node_alerts "https://github.com/kiramizuky/panelku/tree/master/src/modules/alerts"
click node_ai "https://github.com/kiramizuky/panelku/tree/master/src/modules/ai"
click node_airepair "https://github.com/kiramizuky/panelku/tree/master/src/modules/ai-repair"
click node_docker "https://github.com/kiramizuky/panelku/tree/master/src/modules/docker"
click node_cluster "https://github.com/kiramizuky/panelku/tree/master/src/modules/cluster"
click node_databases "https://github.com/kiramizuky/panelku/tree/master/src/modules/database"
click node_files "https://github.com/kiramizuky/panelku/tree/master/src/modules/filemanager"
click node_backup "https://github.com/kiramizuky/panelku/blob/master/src/modules/backup/backup.controller.js"
click node_system "https://github.com/kiramizuky/panelku/blob/master/src/modules/system/system.controller.js"
click node_plugins "https://github.com/kiramizuky/panelku/blob/master/src/core/plugin-loader/PluginLoader.js"
click node_pluginapi "https://github.com/kiramizuky/panelku/blob/master/src/modules/plugins/plugins.controller.js"

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_server,node_app,node_bootstrap,node_routes,node_sqlite,node_queue toneBlue
class node_auth,node_rbac,node_authdata,node_security,node_redis toneAmber
class node_docker,node_cluster,node_databases,node_files,node_backup,node_system toneMint
class node_dashboard,node_monitor,node_alerts,node_ai,node_airepair toneRose
class node_plugins,node_pluginapi,node_operator,node_serveros,node_remoteai,node_push toneIndigo
class node_browser toneTeal
```

## Components

### Application runtime

- [HTTP server](https://github.com/kiramizuky/panelku/blob/master/src/server.js): `src/server.js`
- [Express app](https://github.com/kiramizuky/panelku/blob/master/src/app.js): `src/app.js`
- [Runtime bootstrap](https://github.com/kiramizuky/panelku/blob/master/src/bootstrap.js): `src/bootstrap.js`
- [API routes](https://github.com/kiramizuky/panelku/blob/master/src/routes/index.js): `src/routes/index.js`
- [SQLite database](https://github.com/kiramizuky/panelku/blob/master/src/core/db/sqlite.js): `src/core/db/sqlite.js`
- [Job queue](https://github.com/kiramizuky/panelku/blob/master/src/core/queue/QueueManager.js): `src/core/queue/QueueManager.js`

### Identity and security

- [Authentication](https://github.com/kiramizuky/panelku/blob/master/src/modules/auth/auth.service.js): `src/modules/auth/auth.service.js`
- [Permissions](https://github.com/kiramizuky/panelku/blob/master/src/core/permissions/PermissionManager.js): `src/core/permissions/PermissionManager.js`
- [Session and user data](https://github.com/kiramizuky/panelku/blob/master/src/repositories/session.repository.js): `src/repositories/session.repository.js`
- [Firewall and WAF](https://github.com/kiramizuky/panelku/tree/master/src/modules/waf): `src/modules/waf`

### Server operations

- [Docker management](https://github.com/kiramizuky/panelku/tree/master/src/modules/docker): `src/modules/docker`
- [Fleet and cluster](https://github.com/kiramizuky/panelku/tree/master/src/modules/cluster): `src/modules/cluster`
- [Database studio](https://github.com/kiramizuky/panelku/tree/master/src/modules/database): `src/modules/database`
- [File management](https://github.com/kiramizuky/panelku/tree/master/src/modules/filemanager): `src/modules/filemanager`
- [Backup and snapshots](https://github.com/kiramizuky/panelku/blob/master/src/modules/backup/backup.controller.js): `src/modules/backup/backup.controller.js`
- [System administration](https://github.com/kiramizuky/panelku/blob/master/src/modules/system/system.controller.js): `src/modules/system/system.controller.js`

### Monitoring and assistance

- [Dashboard telemetry](https://github.com/kiramizuky/panelku/tree/master/src/modules/dashboard): `src/modules/dashboard`
- [Monitoring](https://github.com/kiramizuky/panelku/tree/master/src/modules/monitor): `src/modules/monitor`
- [Alerts and remediation](https://github.com/kiramizuky/panelku/tree/master/src/modules/alerts): `src/modules/alerts`
- [AI assistance](https://github.com/kiramizuky/panelku/tree/master/src/modules/ai): `src/modules/ai`
- [Anomaly and repair](https://github.com/kiramizuky/panelku/tree/master/src/modules/ai-repair): `src/modules/ai-repair`

### Integrations and extensions

- [Plugin runtime](https://github.com/kiramizuky/panelku/blob/master/src/core/plugin-loader/PluginLoader.js): `src/core/plugin-loader/PluginLoader.js`
- [Plugin management API](https://github.com/kiramizuky/panelku/blob/master/src/modules/plugins/plugins.controller.js): `src/modules/plugins/plugins.controller.js`

### Other components

- **Operator**
- [Web interface](https://github.com/kiramizuky/panelku/blob/master/src/public/js/app.js): `src/public/js/app.js`
- **Redis**
- **Linux host**
- **AI providers**
- **Notification channels**

## Connections

- Operator → Web interface: uses
- Web interface → HTTP server: sends requests
- HTTP server → Express app: serves
- HTTP server → Runtime bootstrap: initializes
- Express app → API routes: mounts routes
- API routes → Authentication: dispatches auth
- Authentication → Session and user data: stores sessions
- Authentication → Permissions: checks permissions
- Runtime bootstrap → SQLite database: initializes
- Runtime bootstrap → Job queue: starts jobs
- Runtime bootstrap → Plugin runtime: loads plugins
- API routes → Dashboard telemetry: dispatches
- API routes → Monitoring: dispatches
- API routes → Docker management: dispatches
- API routes → Fleet and cluster: dispatches
- API routes → Database studio: dispatches
- API routes → File management: dispatches
- API routes → Backup and snapshots: dispatches
- API routes → System administration: dispatches
- API routes → Firewall and WAF: dispatches
- API routes → Alerts and remediation: dispatches
- API routes → AI assistance: dispatches
- API routes → Anomaly and repair: dispatches
- API routes → Plugin management API: dispatches
- Plugin management API → Plugin runtime: manages plugins
- Plugin runtime → Linux host: extends management
- Dashboard telemetry → Monitoring: reads telemetry
- Monitoring → Linux host: collects metrics
- Docker management → Linux host: manages containers
- Fleet and cluster → Linux host: manages nodes
- Database studio → Linux host: manages databases
- File management → Linux host: manages files
- System administration → Linux host: administers host
- Backup and snapshots → Linux host: backs up host
- Backup and snapshots → Job queue: queues backup
- Alerts and remediation → Notification channels: sends notifications
- Alerts and remediation → Linux host: remediates host
- AI assistance → AI providers: queries provider
- Anomaly and repair → Monitoring: analyzes anomalies
- Runtime bootstrap → Redis: connects optionally
- HTTP server → Web interface: realtime updates
