AMP Game Server Panel Alternative
LinuxGSM-based game server management with multiple game support and web interface.
Overview
LinuxGSM (Linux Game Server Manager) is a command-line tool that simplifies the deployment and management of dedicated game servers on Linux systems. Created to eliminate the complexity of manually configuring game servers, LinuxGSM supports over 120 different games including Counter-Strike, Minecraft, Garry's Mod, and Team Fortress 2, providing automated installation, updates, backups, and monitoring capabilities. This containerized implementation combines LinuxGSM with a comprehensive monitoring and web management stack to create a powerful alternative to commercial game server panels like AMP (Application Management Panel).
This stack integrates LinuxGSM's game server management capabilities with Prometheus for metrics collection, Grafana for visualization dashboards, and NGINX as a reverse proxy to create a unified web interface. Prometheus scrapes server performance metrics, player counts, and system resources, while Grafana transforms this data into intuitive dashboards showing server health, player activity trends, and resource utilization. NGINX handles SSL termination and provides secure access to the Grafana interface, creating a professional-grade game server management platform.
Homelab enthusiasts, small gaming communities, and indie game developers will find this stack particularly valuable as it delivers enterprise-level game server management without licensing costs or player limits imposed by commercial alternatives. The combination provides both the reliability of LinuxGSM's battle-tested server management with modern observability tools, making it ideal for managing multiple game servers across different titles while maintaining full control over the hosting environment.
Key Features
- LinuxGSM support for 120+ game titles with automated installation, updates, and server lifecycle management
- Prometheus metrics collection for game server performance, player statistics, and system resource monitoring
- Grafana dashboard visualization with customizable panels for server health, player trends, and alert management
- NGINX reverse proxy with SSL termination and load balancing for secure web interface access
- Multi-game server deployment capability allowing different game types on the same host infrastructure
- PromQL-powered alerting for server downtime, resource exhaustion, and player count thresholds
- LinuxGSM's built-in backup system with Grafana visualization of backup status and storage usage
- Container-based isolation allowing multiple game server instances without host system conflicts
Common Use Cases
- 1Small gaming communities running multiple dedicated servers for different games with centralized monitoring
- 2Homelab enthusiasts replacing expensive AMP licenses with open-source game server management
- 3Indie game developers testing multiplayer functionality across various server configurations and loads
- 4LAN party organizers deploying temporary game servers with real-time performance monitoring
- 5Gaming clans managing private servers for competitive matches with historical performance analytics
- 6Educational institutions teaching game development with hands-on server management experience
- 7Content creators running community servers with viewer engagement metrics and uptime dashboards
Prerequisites
- Docker host with minimum 2GB RAM (4GB+ recommended for multiple game servers)
- UDP port 27015 and TCP ports 80, 3000, 9090 available for game server and web interface access
- Basic understanding of game server configuration files and LinuxGSM command structure
- Knowledge of Prometheus metrics and PromQL for custom monitoring queries
- 50GB+ available disk space for game files, logs, and metrics storage depending on game selection
- Understanding of NGINX configuration for SSL certificate setup and domain routing
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 gameserver: 3 image: gameservermanagers/linuxgsm-docker:latest4 environment: 5 GAMESERVER: ${GAMESERVER}6 LGSM_GITHUBUSER: ${LGSM_GITHUBUSER:-GameServerManagers}7 LGSM_GITHUBREPO: ${LGSM_GITHUBREPO:-LinuxGSM}8 LGSM_GITHUBBRANCH: ${LGSM_GITHUBBRANCH:-master}9 ports: 10 - "27015:27015/udp"11 - "27015:27015/tcp"12 volumes: 13 - serverfiles:/home/linuxgsm/serverfiles14 - lgsm:/home/linuxgsm/lgsm15 - log:/home/linuxgsm/log16 networks: 17 - gameserver-net18 restart: unless-stopped1920 prometheus: 21 image: prom/prometheus:latest22 ports: 23 - "9090:9090"24 volumes: 25 - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro26 - prometheus_data:/prometheus27 networks: 28 - gameserver-net29 restart: unless-stopped3031 grafana: 32 image: grafana/grafana:latest33 ports: 34 - "3000:3000"35 environment: 36 GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD}37 volumes: 38 - grafana_data:/var/lib/grafana39 networks: 40 - gameserver-net41 restart: unless-stopped4243 nginx: 44 image: nginx:alpine45 ports: 46 - "80:80"47 volumes: 48 - ./nginx.conf:/etc/nginx/nginx.conf:ro49 depends_on: 50 - grafana51 networks: 52 - gameserver-net53 restart: unless-stopped5455volumes: 56 serverfiles: 57 lgsm: 58 log: 59 prometheus_data: 60 grafana_data: 6162networks: 63 gameserver-net: 64 driver: bridge.env Template
.env
1# Game Server Type (csgoserver, arkserver, etc.)2GAMESERVER=csgoserver34# Grafana5GRAFANA_PASSWORD=secure_grafana_password67# LinuxGSM8LGSM_GITHUBUSER=GameServerManagers9LGSM_GITHUBREPO=LinuxGSM10LGSM_GITHUBBRANCH=masterUsage Notes
- 1Supports 100+ game servers
- 2Grafana monitoring at http://localhost:3000
- 3Change GAMESERVER variable for different games
- 4Use ./linuxgsm.sh for server management commands
Individual Services(4 services)
Copy individual services to mix and match with your existing compose files.
gameserver
gameserver:
image: gameservermanagers/linuxgsm-docker:latest
environment:
GAMESERVER: ${GAMESERVER}
LGSM_GITHUBUSER: ${LGSM_GITHUBUSER:-GameServerManagers}
LGSM_GITHUBREPO: ${LGSM_GITHUBREPO:-LinuxGSM}
LGSM_GITHUBBRANCH: ${LGSM_GITHUBBRANCH:-master}
ports:
- 27015:27015/udp
- 27015:27015/tcp
volumes:
- serverfiles:/home/linuxgsm/serverfiles
- lgsm:/home/linuxgsm/lgsm
- log:/home/linuxgsm/log
networks:
- gameserver-net
restart: unless-stopped
prometheus
prometheus:
image: prom/prometheus:latest
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus_data:/prometheus
networks:
- gameserver-net
restart: unless-stopped
grafana
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
environment:
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD}
volumes:
- grafana_data:/var/lib/grafana
networks:
- gameserver-net
restart: unless-stopped
nginx
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- grafana
networks:
- gameserver-net
restart: unless-stopped
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 gameserver:5 image: gameservermanagers/linuxgsm-docker:latest6 environment:7 GAMESERVER: ${GAMESERVER}8 LGSM_GITHUBUSER: ${LGSM_GITHUBUSER:-GameServerManagers}9 LGSM_GITHUBREPO: ${LGSM_GITHUBREPO:-LinuxGSM}10 LGSM_GITHUBBRANCH: ${LGSM_GITHUBBRANCH:-master}11 ports:12 - "27015:27015/udp"13 - "27015:27015/tcp"14 volumes:15 - serverfiles:/home/linuxgsm/serverfiles16 - lgsm:/home/linuxgsm/lgsm17 - log:/home/linuxgsm/log18 networks:19 - gameserver-net20 restart: unless-stopped2122 prometheus:23 image: prom/prometheus:latest24 ports:25 - "9090:9090"26 volumes:27 - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro28 - prometheus_data:/prometheus29 networks:30 - gameserver-net31 restart: unless-stopped3233 grafana:34 image: grafana/grafana:latest35 ports:36 - "3000:3000"37 environment:38 GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD}39 volumes:40 - grafana_data:/var/lib/grafana41 networks:42 - gameserver-net43 restart: unless-stopped4445 nginx:46 image: nginx:alpine47 ports:48 - "80:80"49 volumes:50 - ./nginx.conf:/etc/nginx/nginx.conf:ro51 depends_on:52 - grafana53 networks:54 - gameserver-net55 restart: unless-stopped5657volumes:58 serverfiles:59 lgsm:60 log:61 prometheus_data:62 grafana_data:6364networks:65 gameserver-net:66 driver: bridge67EOF6869# 2. Create the .env file70cat > .env << 'EOF'71# Game Server Type (csgoserver, arkserver, etc.)72GAMESERVER=csgoserver7374# Grafana75GRAFANA_PASSWORD=secure_grafana_password7677# LinuxGSM78LGSM_GITHUBUSER=GameServerManagers79LGSM_GITHUBREPO=LinuxGSM80LGSM_GITHUBBRANCH=master81EOF8283# 3. Start the services84docker compose up -d8586# 4. View logs87docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/amp-game-panel/run | bashTroubleshooting
- Game server fails to start: Check GAMESERVER environment variable matches LinuxGSM supported game codes exactly
- Grafana shows no metrics data: Verify Prometheus is successfully scraping targets at http://localhost:9090/targets
- LinuxGSM commands hang during execution: Increase container memory limits as some games require significant RAM during installation
- Players cannot connect to game server: Ensure UDP port 27015 is properly forwarded and not blocked by host firewall
- Prometheus metrics missing after container restart: Check that prometheus_data volume has proper write permissions for UID 65534
- NGINX 502 errors accessing Grafana: Confirm Grafana container is healthy and accessible on port 3000 within Docker network
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
linuxgsmnginxprometheusgrafana
Tags
#gaming#game-server#linuxgsm#management
Category
Home Lab & Self-HostingAd Space
Shortcuts: C CopyF FavoriteD Download