🌐 Web panel
Voidium Web Control Panel je React 19 + Vite 6 + TypeScript SPA zabalená přímo v mod JARu. Poskytuje kompletní admin dashboard pro stav serveru, rychlé akce, AI asistenci a vizuální editaci konfigurace — bez externích závislostí.
Přístup chrání jednorázový token v URL. Token se mění při každém startu serveru a po prvním otevření se uloží do session cookie.
Rychlá navigace
✅ Setup
- Zapni modul v
config/voidium/general.json:enableWeb: true
- Uprav
config/voidium/web.json(port, jazyk, hostname) - Restartuj server
Odkaz na panel uvidíš v logu, případně použij /voidium web in‑game.
⚙️ Konfigurace
Soubor: config/voidium/web.json
port— HTTP port (default:8081)language— jazyk panelu:enneboczpublicHostname— hostname/IP v přístupovém URL
Pokud je
publicHostname localhost / 127.0.0.1, Voidium se pokusí detekovat LAN IP při generování URL.
🔗 Přístup & auth
- URL obsahuje token, např.:
http://HOST:PORT/?token=UUID - Token se generuje při každém startu serveru
- Po prvním načtení se nastaví cookie
session - Bez tokenu/cookie vrací panel 401 Unauthorized
🧩 API & akce
Panel má několik endpointů:
Statické assety
GET /— React SPA (index.html, vyžaduje auth)GET /assets/*— hashované JS/CSS bundly (immutable cache)
Dashboard
GET /api/dashboard— kompletní telemetrie serveru (vyžaduje auth)GET /api/feeds— snapshot chatu + konzoleGET /api/events— Server-Sent Events (SSE) stream, push dashboard dat každé 3 sekundy
Akce (POST)
POST /api/action(JSON s polemaction):restart,reload,announce,maintenance_on/offentitycleaner_preview/all/items/mobs/xp/arrowsvote_payout/clear/payout_all/clear_allticket_close/note/transcript
Config Studio API
GET /api/config/schema— definice polí pro všechny modulyGET /api/config/values— aktuální hodnotyGET /api/config/defaults— tovární výchozí hodnotyGET /api/config/locale— lokální preset (en/cz)POST /api/config/preview— náhled změn s impact flagyPOST /api/config/diff— diff aktuální vs navržené hodnotyPOST /api/config/apply— aplikuj změny (vytvoří zálohu)POST /api/config/rollback— vrátí poslední zálohuPOST /api/config/reload— reload konfigů z disku
AI API
POST /api/ai/admin— admin AI konverzacePOST /api/ai/admin/suggest— AI návrhy konfiguraceGET /api/ai/players— historie AI konverzací hráčů
Konzole
POST /api/console/execute— spustí povolené příkazy
Export schématu
GET /api/config/schema/export— kompletní schéma konfigurace ve formátu JSON Schema draft-07
Správa serveru
GET /api/server-icon— ikona serveru (PNG, bez auth)GET /api/server-properties— čtení server.properties jako JSON key-valuePOST /api/server-properties— zápis server.properties (JSON body s key-value páry)
Discord role
GET /api/discord/roles— seznam rolí (vyžaduje běžící Discord bota)
🔒 Zabezpečení
- Panel běží přes HTTP; používej interní síť nebo reverse proxy.
- Nesdílej token URL.
- Restart serveru vždy invaliduje staré tokeny.
- Rate limiting: AI endpointy (
/api/ai/*) mají limit 120 požadavků/minutu na IP. Po překročení vrací HTTP 429 s hlavičkouRetry-After. - Téma & jazyk: Dark/light téma a jazyk se ukládají do
localStorage(pouze na straně klienta).
🧯 Řešení problémů
Panel se nespustí
- Ověř
enableWebvgeneral.json - Zkontroluj, jestli port není obsazený
401 Unauthorized
- Použij čerstvé URL z logu nebo
/voidium web - Token se mění po restartu serveru
Chybí data pro Stats/Discord
- Stats vyžaduje
enableStats - Discord role vyžadují zapnutý a připojený Discord modul