How yankuro12/kuropanel works
KuroPanel is a web control panel for managing infrastructure and game servers. An authenticated operator uses the Next.js UI to create tasks, manage files and servers, and inspect nodes and monitoring; the Go API persists state and queues work, while connected agents report status and execute commands or game-container operations. The graph includes the documented backup, user, and plugin capabilities. Backend route wiring and task persistence are evidenced in source; some feature-specific dispatch details are not sampled, so those links are omitted.
Main entry points: main.go HTTP server · client.go Node agent · api.js API client · tasks.go Task management
Components 27
Control panel
- Panel pages
frontend/app/page.js - Login and users
frontend/app/login/page.js - Game servers
frontend/app/games/page.js - File manager
frontend/components/FileManager.js - API client
frontend/lib/api.js
Panel API
- HTTP server
backend/cmd/server/main.go - Authentication
backend/internal/auth/auth.go - Auth middleware
backend/internal/middleware/auth.go - Node management
backend/internal/nodes/nodes.go - Task management
backend/internal/tasks/tasks.go - File operations
backend/internal/files/files.go - Game management
backend/internal/games/games.go - Backup and restore
backend/internal/backup/backup.go - Administration
backend/internal/admin/admin.go - Agent WebSocket
backend/internal/websocket/websocket.go
State and queue
- PostgreSQL
backend/internal/database/db.go - Redis queue
backend/internal/database/redis.go
Node agents
- Node agent
agent/internal/websocket/client.go - Node monitoring
agent/internal/monitor/monitor.go - Command execution
agent/internal/executor/executor.go - Agent file operations
agent/internal/fileops/fileops.go - Container control
agent/internal/docker/docker.go
Extensions
- Plugin routes
backend/internal/plugins/routes.go - Plugin manager
backend/internal/plugins/manager.js - Discord notifier
plugins/DiscordNotifier - contoh /main.js
Other components
- Operator
- Discord webhook
Connections 30
- Operator → Panel pages: uses
- Panel pages → API client: requests
- Login and users → API client: authenticates via
- Game servers → API client: requests
- File manager → API client: requests
- API client → HTTP server: calls API
- HTTP server → Authentication: registers routes
- HTTP server → Node management: registers routes
- HTTP server → Task management: registers routes
- HTTP server → File operations: registers routes
- HTTP server → Game management: registers routes
- HTTP server → Backup and restore: registers routes
- HTTP server → Administration: registers routes
- HTTP server → Plugin routes: registers routes
- HTTP server → Plugin manager: loads plugins
- HTTP server → Agent WebSocket: sets up
- Authentication → PostgreSQL: reads and writes
- Task management → Auth middleware: protects routes
- Task management → PostgreSQL: reads and writes tasks
- Task management → Redis queue: queues task IDs
- Node management → PostgreSQL: persists nodes
- File operations → Auth middleware: protects routes
- Agent WebSocket → Node agent: exchanges messages
- Node agent → Node monitoring: reads stats
- Node agent → Command execution: executes commands
- Node agent → Agent file operations: operates files
- Node agent → Container control: controls containers
- Plugin routes → Plugin manager: manages plugins
- Plugin manager → Discord notifier: loads plugin
- Discord notifier → Discord webhook: posts notifications