Skip to content

Getting Started

Sparks Skywere edited this page May 14, 2026 · 1 revision

Getting Started

This page covers the product overview, requirements, installation flows, and the main application start/stop modes.

Home

1. Introduction

Server Manager is a server management platform developed by Sparks Skywere for managing dedicated. It provides both a desktop GUI and a web-based platform for administering servers from a local machine or across various networks (All self hosted too!).

The application is designed to run on Windows with administrator privileges and offers the following core capabilities:

  • Server Management — Install, start, stop, restart, and update game servers through a unified interface.
  • Real-Time Server Console — Interactive console that connects to running server processes, allowing operators to view output and send commands in real time through multiple input methods including named pipes and file-based command queues.
  • Automated Operations — Schedule server restarts with pre-restart warning broadcasts, MOTD (Message of the Day) announcements at configurable intervals, and automatic update checking with seamless update-and-restart workflows.
  • Multi-Node Clustering — A Host/Subhost topology that allows a central Host node to manage multiple Subhost nodes across a network. Nodes join via a secure request-and-approval workflow, and the Host can remotely control servers on any connected Subhost.
  • Web-Based Dashboard — A web interface served from a Flask web server (via Waitress WSGI) that provides server management, user administration, analytics charts, and cluster management from any browser on the network.
  • User Management with 2FA — Multi-user support with role-based access control (admin/user), bcrypt password hashing, and optional TOTP-based two-factor authentication.
  • Monitoring and Metrics — Real-time analytics collection with health scoring, Prometheus-format metrics endpoint, SNMP monitoring support, and Grafana integration with pre-built dashboard configurations.
  • Email Notifications — SMTP-based email notifications using templates for events such as server alerts, account lockouts, password resets, maintenance windows, and welcome messages. Supports Gmail, Outlook, Office365, Yahoo, custom SMTP, and OAuth 2.0 for Microsoft Exchange.
  • Security — Rate limiting, CSRF protection, input validation (SQL injection and XSS prevention), account lockout, path traversal prevention, SSL/TLS certificate management, and network-level access control.

2. System Requirements

Windows (Primary Platform)

Requirement Minimum Recommended
Operating System Windows 10 / Windows Server 2016 Windows 11 / Windows Server 2022
Python 3.8+ 3.11+
RAM 4 GB 8 GB+
Disk Space 500 MB (application only) 10 GB+ (with game servers)
Privileges Administrator Administrator
Network Local access LAN/WAN for web and cluster

Linux (Experimental)

Linux support is in early development. Debian-based distributions (Ubuntu, Debian) are recommended for ease of use. Other distributions may work but are not actively tested. The Linux installer handles package installation via apt, yum, dnf, or pacman.

Python Dependencies

All Python dependencies are listed in requirements.txt and are installed automatically by the installer:

Package Purpose
flask Web server framework
flask-cors Cross-Origin Resource Sharing support
flask-limiter API rate limiting
psutil Process and system monitoring
requests HTTP client for API calls
pywin32 Windows service support and security APIs
pycryptodome Cryptographic operations
gitpython Git repository management
paramiko SSH connectivity for remote operations
schedule Task scheduling
pystray System tray icon
pillow Image processing for tray icon
sqlalchemy Database ORM and connection management
cryptography SSL certificate generation and Fernet encryption
pyodbc ODBC database connectivity (MSSQL)
pyotp TOTP-based two-factor authentication
vdf Valve Data Format parsing (Steam configs)
waitress Production WSGI server for Flask
bcrypt Password hashing
secure-smtplib Secure SMTP connections
msal Microsoft Authentication Library for OAuth 2.0
requests-oauthlib OAuth library for SMTP
GPUtil GPU monitoring

3. Installation

3.1 Windows Installation

Enabling powershell scripts

  1. Go to Settings
  2. Go to System -> Advanced
  3. Enable powershell scripts

Screenshot: Prerequisit — Enable Powershell scripts

The Windows installer is a PowerShell script (install.ps1) that provides a WinForms-based GUI wizard. It must be run with Administrator privileges.

Screenshot: Run Windows Installer — showing explorer with run powershell

(Owners note: I do plan to make this an EXE in the future, I have Ps2Exe but need to check signing)

Steps to install:

  1. Open PowerShell as Administrator.
  2. Navigate to the directory containing the installer or clone the repository first:
    git clone https://raw.githubusercontent.com/SparksSkywere/servermanager.git
    cd servermanager
  3. Run the installer:
    .\install.ps1
  4. The GUI wizard will guide you through the following steps:
    • First page — The intial installer page, important page to read the general synopsis of this program and check the current version downloaded.

      Screenshot: Installer Page 1 - Initial

    • Second Page — Second page where you can select the installer directory with workspace directory (if you want users to access a different secure storage away from the SteamCMD storage) you can also select the clusters configuration at this stage.

      Screenshot: Installer Page 2 — SteamCMD Selection

    • Third Page — Database Configuration, you can choose what type of database will be used by servermanager, default is SQLite.

    • Cluster Configuration — You are asked to select the node role:

      • Host — This machine will act as the central management server.
      • Subhost — This machine will connect to an existing Host. You will need to provide the Host's IP address.

      Screenshot: Installer Page 3 — Database Configuration

    • Repository Clone — The Server Manager source code is cloned from the GitHub repository. If direct Git access fails, the installer falls back to downloading a ZIP archive from GitHub.

      Screenshot: Installer Page 4 — Web Security

    • Web Security — The page to choose if you want to use HTTPS or HTTP for running the webserver, for outside communication HTTPS is recommended.

    • Installation - The progress bars!

      Screenshot: Installer Page 5.1 — Python Installation Screenshot: Installer Page 5.2 — Python Dependencies Installation Screenshot: Installer Page 5.3 — Instaling SteamCMD Screenshot: Installer Page 5.4 — Setup Complete

      Screenshot: Installer Page 6 — Create Admin

    • Admin Account Creation — A root administrator account is created with customisable credentials (default: admin / admin).

Reinstallation: If an existing installation is detected in the registry, the installer will prompt you to confirm whether you want to reinstall. Reinstalling will overwrite previous settings.

Screenshot: Re-Installer Question Page

Service Management via Installer: The installer also supports service management mode via the -ServiceAction parameter:

.\install.ps1 -ServiceAction Install    # Install and start as Windows service
.\install.ps1 -ServiceAction Uninstall  # Remove the Windows service
.\install.ps1 -ServiceAction Start      # Start the service
.\install.ps1 -ServiceAction Stop       # Stop the service
.\install.ps1 -ServiceAction Restart    # Restart the service
.\install.ps1 -ServiceAction Status     # Check service status

3.2 Linux Installation

The Linux installer is a Bash script (install.sh). Run it with sudo privileges:

sudo sh install.sh

The Linux installer:

  1. Detects the package manager (apt, yum, dnf, or pacman).
  2. Installs Python 3.8+ and pip if not present.
  3. Installs Git if not present.
  4. Clones the repository from GitHub.
  5. Installs Python dependencies from requirements.txt.
  6. Creates the directory structure under $HOME/SteamCMD (including ssl/ for certificates).
  7. Initialises SQLite databases (users, steam apps, cluster including pending_requests and host_status tables).
  8. Configures cluster role (Host or Subhost) with secure token generation.
  9. Generates SSL/TLS certificates if HTTPS is selected (using Python cryptography or openssl fallback).
  10. Configures firewall rules using UFW or firewalld (ports 8080, 443, 8081, 5001, 27015-27050).
  11. Creates a .desktop file for desktop shortcut integration.
  12. Sets up a systemd user service with SSL environment variables.

3.3 Manual Installation

If you prefer a manual setup:

git clone https://raw.githubusercontent.com/SparksSkywere/servermanager.git
cd servermanager
pip install -r requirements.txt

After manual installation, you will need to:

  • Create the registry keys manually (Windows) or ensure fallback directory detection works.
  • Run the Update-ServerManager.pyw tool to initialise the database schema.
  • Create an admin user using the database tools.

3.4 Post-Installation Steps

After installation is complete:

  1. Start the application. Run Start-ServerManager.pyw to launch Server Manager in desktop mode. The application requires Administrator privileges and will prompt for elevation if not already running as admin.
  2. Access the system tray icon. A tray icon will appear in the Windows taskbar notification area. Right-click it to access the menu.
  3. Open the desktop dashboard. Right-click the tray icon and select "Open Server Dashboard" to open the Tkinter-based local management GUI.
  4. Access the web interface. Open a browser and navigate to https://localhost:443 (if HTTPS was enabled during installation) or http://localhost:8080 (HTTP). From another machine, replace localhost with your server's IP address. Log in with the admin credentials configured during installation (default: admin / admin). If using a self-signed certificate, your browser will show a security warning — this is expected and safe to proceed through.
  5. Populate the Steam database. The Steam and Minecraft application ID databases can be populated using the scanners in Modules/Database/scanners/. Run Modules/Database/scanners/AppIDScanner.py to download the Steam dedicated server catalogue, and Modules/Database/scanners/MinecraftIDScanner.py to download Minecraft version information. This provides the searchable server lists when creating new servers.