Add server control (start/stop/restart, live logs, broadcast, kick) to webadmin
Docker SDK drives login/char/worldserver containers via docker.sock (mounted read-only into webadmin); live logs stream over SSE with nginx buffering disabled so lines arrive in real time. Broadcast/kick go through a new admin_queue DB table that the world server polls every ~2s in its existing WorldProcess tick loop, avoiding a second IPC channel to the game server.
This commit is contained in:
1 parent
3554c85f2f
commit
15e562cb04
11 files changed
+331
-2
No files matched your search
@@ -0,0 +1,14 @@
|
||||
--
|
||||
-- Queue table the webadmin panel writes to and the world server polls
|
||||
-- (in WorldProcess, MainProcess.cpp) to execute broadcast/kick actions
|
||||
-- without needing a direct socket between the two processes.
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `admin_queue` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`type` varchar(20) NOT NULL,
|
||||
`payload` varchar(255) NOT NULL,
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`executed` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
|
||||
Reference in new issue
Block a user