Skip to content

yourdawi/linuxgsm-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

29 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

LinuxGSM Web Dashboard

A secure, lightweight, and modern single-binary web dashboard designed to manage game servers running under LinuxGSM (Linux Game Server Manager). It is designed to consume minimal system resources (~10-15MB RAM) so that host memory is dedicated solely to running your games.


dashboard

๐Ÿ“ธ Screenshots

โž” Click here to expand detailed screenshots

๐Ÿ›ก๏ธ Interactive Server Console & RCON Input

console

โš™๏ธ Configuration File Editor (Form & Raw View)

configeditor

โž• Game Installer & Scraper

gameinstaller

๐Ÿ–ฅ๏ธ Server Overview

serveroverview


๐Ÿš€ Installation & Setup

๐ŸŒŸ 1. Interactive Automated Installation (Recommended)

Execute the installer directly using curl (or wget if curl is not installed). Note: The script must be run with root privileges (if not logged in as root, elevate your shell first, e.g., with su - or sudo -i).

Using curl:

curl -sSL https://raw.githubusercontent.com/yourdawi/linuxgsm-dashboard/main/install-dashboard.sh | bash

Using wget (fallback):

wget -qO- https://raw.githubusercontent.com/yourdawi/linuxgsm-dashboard/main/install-dashboard.sh | bash

This presents a colored interactive terminal menu that:

  • Runs pre-flight requirements checks (verifying 64-bit architecture and memory recommendations).
  • Detects your Linux distribution (Ubuntu/Debian, CentOS/RHEL, Arch, Alpine, openSUSE).
  • Tracks pre-existing system tools and installs only missing dependencies.
  • Configures a custom listening port (via interactive prompts or --port <port> argument).
  • Configures the daemon as a sandboxed Systemd service (ProtectSystem=true, PrivateTmp=false for shared tmux sockets, restricted CapabilityBoundingSet limiting root powers).
  • Automatically configures firewalls (ufw / firewalld) if active.
  • Safely prompts to roll back installed packages upon uninstallation.
  • Displays your server's IP address and autogenerated credentials.

๐Ÿ“ 2. Manual Installation Steps

Prerequisites

Ensure you have Git and Go 1.20+ installed on your system.

Clone and Compile

  1. Clone the repository:
    git clone https://github.com/yourdawi/linuxgsm-dashboard.git
    cd linuxgsm-dashboard
  2. Compile the Go code:
    go build -o lgsm-dashboard main.go

Run the Dashboard

Since the dashboard needs to control system users and execute commands via runuser on gameserver accounts, it must be run as root:

sudo ./lgsm-dashboard -port 8080

On first launch, it will:

  1. Generate config/config.json.
  2. Generate a random password for the admin user.
  3. Print the credentials in the console. Make sure to write down the generated password!

โœจ Features

๐ŸŽฎ Core Server Management

  • ๐Ÿ–ฅ๏ธ Interactive Server Console: Real-time visual tmux pane updates paired with a command input bar to send console/RCON commands directly to the server (uses secure tmux send-keys escaping).
  • ๐Ÿ› ๏ธ Advanced Maintenance Actions: Execute LinuxGSM actions like update-lgsm (update core), force-update (re-download files), and test-alert directly from the Live Console view.
  • ๐ŸŽฒ Game-Specific Actions: Dynamic panel displaying game-specific tasks (e.g., Map Wipes and Full Wipes for Rust, or Server Query Password resets for Teamspeak 3).
  • ๐Ÿ‘ฅ Multi-Instance Scanning: Scans system user home directories for all executable scripts and verifies their headers to auto-detect any number of LinuxGSM instances under a single user.
  • โŒ Clean Server Deletion: Safely removes instances. Wipes crontabs, disables systemd, and performs system user purges (userdel -r) with safety overlay confirmations.

๐Ÿ’พ Backups & Restoration

  • ๐Ÿ’พ Complete Backup Suite: View, download, delete, and restore server backups. Restoration runs in real-time, automatically stopping and starting the server safely to prevent corruption.
  • ๐Ÿ“ค Backup Uploads: Upload backup archives (.tar.gz) directly to server instances. Features automatic ownership adjustment (chown) to prevent LinuxGSM file permission errors.
  • โš™๏ธ Backup Retention & Scheduling: Configure retention limits (maxbackups, maxbackupdays, stoponbackup) and automate cronjob schedules by writing directly to the gameserver user's crontab.

โš™๏ธ Administration & Automation

  • ๐Ÿ”” Alerts & Notification Webhooks: Configure Discord webhooks, Telegram bots, and E-Mail SMTP settings inside settings to write variables directly into Shell configuration files.
  • โšก One-Click Systemd & Cron Installation: Automatically register sandboxed Systemd boot autostarts and maintenance cronjob routines into the crontab with one click.
  • ๐Ÿ“ Bidirectional Config Editor: Safe configuration editing within /home/<user>/lgsm/config-lgsm/<script>/*.cfg featuring a parsed Form View and a Raw View with path-traversal protection.
  • ๐Ÿ‘ฅ Multi-User Administration: Create/update/delete dashboard users with role-based access control (RBAC) and restricted server-level permissions (start, stop, restart, console, config, backup).
  • ๐Ÿ”„ One-Click Self-Updates: Safe, automated dashboard self-updates from the UI. Swaps the binary and triggers a clean systemd restart.

๐Ÿ›ก๏ธ Hardened Security & Efficiency

  • ๐Ÿ–ฅ๏ธ Resource-Efficient Backend (Go): Compiled static binary consuming only ~10-15MB RAM with embedded web assets for zero-dependency deployment.
  • ๐Ÿ›ก๏ธ Systemd Security Sandboxing: Hardened systemd daemon configuration featuring isolated sandboxing (ProtectSystem=true, PrivateTmp=false for shared tmux sockets, and a restricted CapabilityBoundingSet limiting root powers).
  • ๐Ÿ”’ Security Hardened Input Validation: Filters all incoming API queries against strict backend whitelist patterns, blocking shell command injection vectors.
  • ๐Ÿ“Š Host & Process Monitoring: Real-time CPU, RAM, and Disk host gauges, custom canvas historical graphs, and user process metrics mapping.
  • ๐ŸŒ“ Dark/Light Mode & Multilingual (i18n): Togglable dual color modes and complete German/English translations.

๐Ÿ’ป Local Testing & Mock Mode

To test or develop the frontend locally on Windows/Linux without active LinuxGSM servers, execute it with the -mock CLI flag:

go run main.go -mock

This forces the application to bypass standard Linux system directories and generate a mock workspace with simulated server instances (arkserver, valheimserver), interactive command streams, config file folders, and dynamic CPU/RAM resource gauges.


โš–๏ธ Disclaimer

This is an independent, community-driven project and is not officially affiliated, associated, or endorsed by the official LinuxGSM project or its developers. LinuxGSM is a trademark of its respective owners. All product names, logos, and brands are property of their respective owners.

About

A lightweight and secure web dashboard for LinuxGSM game server management

Topics

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors