A secure, web-based admin panel for managing your BeamMP game server. Fully Dockerized and production-ready.
- 🔐 Secure Authentication - Password-based login with role-based access control
- ⚙️ Server Configuration - Edit server settings through the web interface
- 📦 Mod Management - Upload and manage server mods
- 👥 User Management - Create and manage admin accounts with different permission levels
- 📊 Server Monitoring - Real-time server status, logs, and restart controls
- 📝 Audit Logging - Track all configuration changes and admin actions
- Docker Desktop (v4.20 or newer)
- Windows: Install with WSL2 backend
- Mac: Install Docker Desktop for Mac
- Linux: Install Docker and Docker Compose
-
Clone the repository:
git clone https://github.com/JoshuaGessner/beammeup.git cd beammeup -
Start the services:
docker compose up -d --build
This will start:
- BeamMP game server (port 30814)
- Admin panel backend (port 8200)
- Admin panel frontend (port 8201)
-
Complete first-time setup:
Open your browser to: http://localhost:8201
You'll see the setup wizard which will ask you to:
- Create your admin account (username & password)
- Enter your BeamMP AuthKey (get one at https://beammp.com/keymaster)
After submitting, the panel will configure your server automatically.
⚠️ Production Security: For public/production deployments, always use HTTPS/TLS with a reverse proxy (Caddy, nginx, etc.) to encrypt credentials and session data in transit. See DEPLOYMENT.md for details. -
Done! Your BeamMP server is now running with a web admin panel.
Environment variables are optional and only needed if you want to override defaults.
If you do, create a .env file (copy from .env.example).
# Set production mode
NODE_ENV=production
# Restrict API access to specific domains (for security)
ALLOWED_ORIGINS=https://yourdomain.com
# Limit mod file upload size (in MB)
MAX_MOD_SIZE=2048Default ports used:
30814- BeamMP game server (UDP)8200- Backend API (internal)8201- Web interface
To change ports, edit docker-compose.yml.
For HTTPS access with a domain name, use Caddy as a reverse proxy:
-
Install Caddy on your server
-
Create Caddyfile:
yourdomain.com { reverse_proxy localhost:8201 } -
Start Caddy:
caddy start
Now access your admin panel at: https://yourdomain.com
Caddy automatically handles SSL certificates via Let's Encrypt.
- ✅ Set
NODE_ENV=productionin your.env - ✅ Use a reverse proxy (Caddy/nginx) with HTTPS
- ✅ Set
ALLOWED_ORIGINSto your domain - ✅ Use strong passwords for admin accounts
- ✅ Keep your server and Docker updated
- ✅ Regularly backup the
./datadirectory
- OWNER - Full access, can manage all settings and users
- ADMIN - Can configure server and manage mods
- OPERATOR - Can restart server and view logs
- VIEWER - Read-only access to server status
To update to the latest version:
cd beammeup
git pull
docker compose down
docker compose up -d --buildYour data is preserved in the ./data directory including:
- User accounts and permissions
- Server configuration (including AuthKey)
- Uploaded mods
- Audit logs
Your database and uploaded mods are in the ./data directory:
# Create backup
tar -czf beammeup-backup-$(date +%Y%m%d).tar.gz data/
# Restore backup
tar -xzf beammeup-backup-20260211.tar.gz# All services
docker compose logs -f
# Specific service
docker compose logs -f beammp
docker compose logs -f backend
docker compose logs -f frontend# Restart all
docker compose restart
# Restart specific service
docker compose restart beammp- Check if containers are running:
docker compose ps - View logs:
docker compose logs -f backend frontend - Ensure ports 8200 and 8201 aren't in use
- Verify your AuthKey is set (via Config page in admin panel)
- Check BeamMP logs:
docker compose logs -f beammp - Ensure port 30814 is open (UDP)
- Check file size (default limit: 1024MB)
- Ensure you have ADMIN or OWNER role
- View backend logs:
docker compose logs -f backend
You'll need to reset via the database. Stop the containers and delete ./data/beammeup.db, then restart to create a new owner account.
For issues and questions:
- Open an issue on GitHub
- Check SECURITY.md for security information
- Review DEPLOYMENT.md for advanced deployment options
MIT License - see LICENSE file for details