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:
Thomas committed 2026-07-10 14:19:14 +02:00
1 parent 3554c85f2f
commit 15e562cb04
11 files changed
+331 -2

No files matched your search

+7
View File
@@ -104,6 +104,13 @@ services:
DB_NAME: ${DB_NAME:-ktrose}
ADMIN_SECRET_KEY: ${ADMIN_SECRET_KEY:-change-me-too}
ADMIN_MIN_ACCESSLEVEL: ${ADMIN_MIN_ACCESSLEVEL:-900}
COMPOSE_PROJECT_NAME: ${COMPOSE_PROJECT_NAME:-ross}
volumes:
# Lets the panel start/stop/restart the login/char/world containers and
# stream their logs via the Docker API. Grants the container
# effectively root-equivalent access to the host -- acceptable here
# since the panel sits behind GM-only login and isn't internet-exposed.
- /var/run/docker.sock:/var/run/docker.sock:ro
expose:
- "8080"
depends_on: