-
Notifications
You must be signed in to change notification settings - Fork 2
SSUI v5.12.3 🎛️ Command Central #150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Updated HTML config page to include server info panel settings. - Implemented server info panel functionality in Discord bot with interactive buttons. - Added password rotation logic to automatically set a new password on server start if feature is enabled - Introduced localization for server info panel and password rotation in de-DE, en-US, and sv-SE JSON files.
…remove predefined password list
…remove predefined password list
… usability using bubbletea and start first-time setup wizard (https://github.com/charmbracelet/bubbletea) - Added a new dashboard package with Update and View implementations for a terminal-based UI. - Created rendering functions for status, players, and logs in the dashboard. - Integrated dashboard launch in the CLI, configurable via the new IsCLIDashboardEnabled setting in config. - Implemented server uptime tracking with new uptime management functions. - Added first-time setup prompts to choose track CLI or web - Enhanced logging to capture dashboard logs and suppress console output when the dashboard is active.
…utput handling, fixnig missing parts of startup message when in firsttimesetup
…oved CLI setup wizard code -> it's cool and all but then we have two places to maintain setup track
- Refined the layout and styling of the header, footer, and various panels for better user experience. - Implemented config editing - Enhanced navigation with backward cycling through panels and additional key bindings for scrolling and refreshing.
…ed instead of True)
Adds interactive CLI dashboard
…ontrols and make backups more accessible for docker users
…downloads (uploads file to discord)
…ix in package name
…d according localization for it also added a new fun fact to console managers funMessages
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR rolls a batch of “nightly → main” features across the backend, WebUI, Discord bot, and CLI, including a new interactive CLI dashboard, Discord server info panel + backup download, WebUI “expert settings”, and new backup download endpoints.
Changes:
- Add CLI dashboard (Bubble Tea) and logger hooks to capture logs while the dashboard is active.
- Add backup download support via protected Web API and Discord (
/download+ buttons). - Add Discord server info panel support, password rotation option, and config/UI updates (including “Expert Settings” toggle).
Reviewed changes
Copilot reviewed 41 out of 43 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| src/web/templatevars.go | Adds template variables for new config fields and expert settings UI. |
| src/web/routes.go | Registers protected /api/v2/backups/download endpoint. |
| src/web/configpage.go | Populates new config template fields (server info panel, rotate password, expert settings). |
| src/managers/gamemgr/uptime.go | Adds server uptime tracking helpers. |
| src/managers/gamemgr/processmanagement.go | Hooks uptime start/clear and triggers password rotation on start. |
| src/managers/gamemgr/passwordrotation.go | Implements server password rotation on start. |
| src/managers/backupmgr/types.go | Adds BackupFileData container for download/transfer. |
| src/managers/backupmgr/manager.go | Adds GetBackupFileData for reading backup bytes by index. |
| src/managers/backupmgr/backuphttp.go | Adds DownloadBackupHandler to return backup as attachment. |
| src/logger/logger.go | Increases console channel buffer; adds dashboard log-capture hooks and suppresses console output while dashboard is active. |
| src/discordbot/serverinfopanel.go | Adds Discord server info panel embed + “get password” button; defines download button prefix constant. |
| src/discordbot/registerSlashcommands.go | Registers new /download slash command. |
| src/discordbot/interface.go | Wires new Discord interaction handlers and sends server info panel. |
| src/discordbot/handleSlashcommands.go | Implements /download and backup download buttons in /list. |
| src/core/loader/terminalmsg.go | Adjusts first-time setup messaging output. |
| src/core/loader/helpers.go | Removes some backup config fields from printed config details. |
| src/core/loader/clisetup.go | Adds interactive “first-time setup track” prompt helper. |
| src/core/loader/afterstart.go | Makes startup messages print after a short sleep (no goroutine). |
| src/config/vars.go | Adds config vars for CLI dashboard, expert settings, Discord server info panel, rotate password. |
| src/config/setters.go | Adds SetIsCLIDashboardEnabled. |
| src/config/getters.go | Adds getters for new config fields (server info panel channel, rotate password, CLI dashboard, expert settings, backup wait time). |
| src/config/config.go | Bumps version; adds JSON config fields for new settings and persists them. |
| src/cli/ssuicli.go | Auto-launches CLI dashboard when enabled + interactive terminal. |
| src/cli/dashboard/view.go | Dashboard rendering layer (status/logs/players/config panels). |
| src/cli/dashboard/update.go | Dashboard update loop, key handling, and data fetch commands. |
| src/cli/dashboard/styles.go | Dashboard styling + UI helpers. |
| src/cli/dashboard/model.go | Dashboard model/state + keybindings. |
| src/cli/dashboard/dashboard.go | Dashboard runner + logger hook registration and log buffering. |
| src/cli/dashboard/config_panel.go | Dashboard config editor + save/reload logic. |
| src/cli/commands.go | Adds dashboard CLI command to launch dashboard. |
| server.go | Reorders after-start tasks to run after starting the webserver. |
| go.sum | Adds Bubble Tea / lipgloss / deps and bumps x/sys. |
| go.mod | Adds Bubble Tea / lipgloss / isatty and related indirect deps. |
| UIMod/onboard_bundled/ui/config.html | Adds “Back to dashboard”, server info panel + rotate password controls, and expert settings section. |
| UIMod/onboard_bundled/localization/en-US.json | Adds new config UI localization keys. |
| UIMod/onboard_bundled/localization/de-DE.json | Adds new config UI localization keys. |
| UIMod/onboard_bundled/localization/sv-SE.json | Adds new config UI localization keys and adjusts terrain key placement. |
| UIMod/onboard_bundled/assets/js/server-api.js | Adds WebUI backup download button + download flow. |
| UIMod/onboard_bundled/assets/js/console-manager.js | Adds one additional “fun fact” line. |
| UIMod/onboard_bundled/assets/icons/back.webp | Adds back icon asset. |
| UIMod/onboard_bundled/assets/css/home.css | Styles backup action buttons (download + restore). |
| UIMod/onboard_bundled/assets/css/config.css | Adds .back-icon styling. |
| .github/workflows/ghcr-build-nightly.yaml | Adjusts nightly GHCR image naming and tags. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…e branch in CLI dashboard
…ock duration in isDashboardActive and captureDashboardLog functions: The mutex is only held for the brief moment needed to copy the function pointer. The function pointer copy is atomic and safe. Even if the dashboard unregisters hooks between copying the pointer and calling it, the code handles nil gracefully
This release introduces an interactive CLI dashboard, a new optional Discord server info panel, optional automatic password rotation, and backup download functionality for both the web UI and from Discord.
Note
The Interactive CLI Dashboard is a new experimental feature using bubbletea. It provides a terminal-based UI for server management. Run
dashboardordfrom your good old SSUICLI to try it out.🖥️ Interactive CLI Dashboard
A brand new terminal-based dashboard for managing your server directly from the CLI, powered by bubbletea.
The CLI Dashboard can be set to launch automatically when SSUI is started in the foreground (is a tty) by setting
"IsCLIDashboardEnabled": truein the UIMod/config/config.json. Might become the default at a later stage, let's see.🤖 Discord Server Info Panel
New interactive Discord panel with a button to get the current server password. Disabled by default, optional when using Discord integration.
Nice for community servers using the new feature below
🔐 Automatic Password Rotation
Keep your server password changing on every restart with automatic password changes. Disabled by default.
💾 Backup Download Functionality
Download backups directly, especially useful for Docker users:
/downloadDiscord command to upload backup files directly to Discord⚙️ Expert Settings
New "Expert Settings" section in the advanced settings config page for very advanced configuration options.
🪲 Bug Fixes & Improvements
-nightlysuffix in package name🌍 Localization
Full Changelog: v5.11.1...v5.12.3