Overview
GamePanelX provides complete lifecycle management for game and voice servers. The server management system handles creation, monitoring, control, and maintenance of game servers across local and remote infrastructure.Server Control
Start, stop, and restart servers with real-time status monitoring
Automated Updates
Update servers automatically via SteamCMD or custom update commands
Multi-Server Support
Manage multiple servers across different network locations
Resource Monitoring
Track CPU, memory usage, and process information for each server
Core Server Operations
Creating Servers
GamePanelX creates servers through theServers::create() method, which handles the complete setup process:
Server Creation Process
Server Creation Process
- Validation - Checks IP/port availability and validates game configuration
- User Account Setup - Creates isolated system user accounts (SSO)
- Template Deployment - Copies files from the selected game template
- Database Entry - Records server configuration and startup parameters
- Remote Execution - Runs CreateServer script on target network server
- Callback Verification - Confirms successful creation via callback URL
Required Parameters
Required Parameters
netid- Network server ID where the server will be createdgameid- Game configuration ID (or template ID)ownerid- User ID who will own the serverport- Port number for the servertplid- Template ID (optional, uses default if not specified)
Server Creation Example
GamePanelX automatically validates IP/port combinations to prevent conflicts. Each server gets a unique system user account for security isolation.
Starting and Stopping Servers
Server control is managed through dedicated methods that interface with remote bash scripts:Restart Operation
The restart function (Servers::restart()) performs a complete server restart:
Restart Server
- Retrieves server configuration from database
- Updates server config file with current settings
- Executes remote
Restartscript via SSH - Script stops existing process and starts new one
Stop Operation
The stop function (Servers::stop()) gracefully terminates the server:
Stop Server
- Locates server process using PID file or port matching
- Sends termination signal to process
- Verifies process shutdown
- Updates status in database
Updating Servers
GamePanelX supports automated server updates through theServers::update() method:
Update Server
Steam-Based Updates
Steam-Based Updates
For Steam-based games, GamePanelX uses SteamCMD:
- Validates Steam credentials from configuration
- Passes Steam Guard authentication if configured
- Executes SteamCMD with game-specific app ID
- Monitors update progress
- Sends callback on completion
Custom Update Commands
Custom Update Commands
For non-Steam games:
- Executes custom update command defined in game configuration
- Supports HTTP downloads, rsync, or custom scripts
- Callback URL notifies panel when complete
Deleting Servers
Server deletion is a two-step process:Delete Server
- Executes
DeleteServerscript on remote server - Removes server directory and files
- Removes database entries from
serversandservers_startuptables - Optionally preserves system user account
Server Monitoring
Real-Time Status
GamePanelX queries server status through multiple methods:GameQ Integration
For supported games, GamePanelX uses GameQ v2 for detailed server queries:Query Server Status
If a game doesn’t support GameQ, the system falls back to a basic TCP port check to verify if the server is online.
Process Information
Retrieve CPU and memory usage:Get CPU/Memory Info
CheckGame script on the remote server provides:
- Process ID (PID)
- CPU usage percentage
- Memory consumption (RSS)
- Process status
Console Output
Access real-time server console output:Get Server Output
Sending Commands
Send commands to running servers:Send Console Command
Configuration Management
Server Config Updates
GamePanelX automatically updates game configuration files when settings change:Update Config File
- Standard Format
- XML Format
Uses key-value pairs with customizable separators:
Startup Command Management
Each server has a customizable startup command built from parameters:Update Startup Command
%IP%- Server IP address%PORT%- Server port%MAP%- Default map%MAXPLAYERS%- Maximum players%HOSTNAME%- Server hostname%RCON%- RCON password%PASSWORD%- Server password
Server Migration
Move servers between users or network locations:Move Server
- Validates source and destination parameters
- Creates new user account if needed
- Executes
MoveServerLocalscript - Copies server directory to new location
- Updates database with new ownership/location
Remote Script Operations
GamePanelX server management relies on remote bash scripts located in_SERVERS/scripts/:
| Script | Purpose |
|---|---|
CreateServer | Create new server instance and deploy template |
Restart | Stop and restart server process |
Stop | Gracefully stop running server |
UpdateServer | Update server files via Steam or custom command |
DeleteServer | Remove server files and directories |
CheckGame | Query process info (PID, CPU, memory) |
ServerOutput | Retrieve console output from screen session |
ServerSendCMD | Send command to server console |
MoveServerLocal | Move server between users/locations |
ConfigUpdate | Update configuration file remotely |
Best Practices
Server Naming
Server Naming
- Use descriptive hostnames that identify the server purpose
- Include game type or community name in descriptions
- Avoid special characters in server names
Resource Management
Resource Management
- Monitor server load with
getcpuinfo()before creating new servers - Distribute servers across network nodes for load balancing
- Set appropriate max player limits based on available resources
Updates and Maintenance
Updates and Maintenance
- Schedule updates during off-peak hours
- Test updates on development servers first
- Maintain backup templates before major updates
Security
Security
- Use strong RCON passwords (auto-generated by default)
- Isolate servers with individual user accounts
- Regularly update server software for security patches
Troubleshooting
Server Won’t Start
- Check console output with
getoutput() - Verify port is not in use
- Check file permissions in server directory
- Review startup command for syntax errors
Server Status Shows Offline
- Verify server process is running with
getcpuinfo() - Check if GameQ name is configured correctly
- Test TCP connectivity to server port
- Review firewall rules on network server
Updates Failing
- Verify Steam credentials in configuration (for Steam games)
- Check disk space on network server
- Review update command syntax in game configuration
- Check callback URL is accessible from network server
Server logs are stored on the network server at
$HOME/logs/servers.log and include timestamps for all operations.