The backend uses a custom logger (backend/logger.js) styled after AzerothCore’s Log4j appender with the same color mapping from the default worldserver.conf:
| Level | Color | ANSI |
|---|---|---|
| FATAL | Red | \x1b[31m |
| ERROR | Bright Red | \x1b[91m |
| WARN | Yellow | \x1b[33m |
| INFO | Cyan | \x1b[36m |
| DEBUG | Magenta | \x1b[35m |
| TRACE | Bright Yellow | \x1b[93m |
Output format: YYYY-MM-DD HH:MM:SS LEVEL [component] message
Usage: const log = require('./logger')('component-name'); then call log.info(...), log.error(...), etc.
serverAgent.js), not the dashboard backend. Restarting the backend does not stop the game servers — they keep running and the backend reconnects automatically.worldservers.json file (see worldservers.json.example). When absent, the dashboard falls back to .env variables for a single worldserver with full backward compatibility.JWT_SECRET must be set in .env; there is no fallback default.TypeError instance check (reliable across all browsers) and the error message includes the target API URL so the user can verify connectivity.window.location.protocol instead of hardcoding http:, so HTTPS deployments work without a manual VITE_API_URL override.IDLE_TIMEOUT_MINUTES is set, a warning modal counts down the last 60 seconds before auto-logout. User activity (mouse, keyboard, scroll) resets the timer.acore_dashboard database is kept separate from the AzerothCore databases so it is never affected by core upgrades or migrations.