Files
homelab-optimized/docs/hosts/vms/seattle/pufferpanel/README.md
Gitea Mirror Bot 19b90cee4d
Some checks failed
Documentation / Build Docusaurus (push) Failing after 5m1s
Documentation / Deploy to GitHub Pages (push) Has been skipped
Sanitized mirror from private repository - 2026-03-31 23:50:30 UTC
2026-03-31 23:50:30 +00:00

317 lines
7.8 KiB
Markdown

# 🎮 PufferPanel Game Server Management
*Web-based game server management panel for the Seattle VM*
## Overview
PufferPanel provides a comprehensive web interface for managing game servers, including Minecraft, Source engine games, and other popular multiplayer games.
## Deployment Information
### Host Location
- **Host**: Seattle VM (`homelab_vm`)
- **Container**: `pufferpanel-seattle`
- **Status**: ✅ Active
- **Access**: `https://games.vish.gg`
### Container Configuration
```yaml
services:
pufferpanel:
image: pufferpanel/pufferpanel:latest
container_name: pufferpanel-seattle
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- pufferpanel-config:/etc/pufferpanel
- pufferpanel-data:/var/lib/pufferpanel
- game-servers:/var/lib/pufferpanel/servers
ports:
- "8080:8080"
- "25565:25565" # Minecraft
- "27015:27015" # Source games
networks:
- game-network
```
## Managed Game Servers
### Minecraft Servers
- **Vanilla Minecraft**: Latest release version
- **Paper Minecraft**: Performance-optimized server
- **Modded Minecraft**: Forge/Fabric mod support
- **Bedrock Edition**: Cross-platform compatibility
### Source Engine Games
- **Garry's Mod**: PropHunt and sandbox modes
- **Left 4 Dead 2**: Co-op survival campaigns
- **Counter-Strike**: Classic competitive gameplay
- **Team Fortress 2**: Team-based multiplayer
### Other Games
- **Satisfactory**: Factory building dedicated server
- **Valheim**: Viking survival multiplayer
- **Terraria**: 2D adventure and building
- **Don't Starve Together**: Survival multiplayer
## Server Management
### Web Interface
- **URL**: `https://games.vish.gg`
- **Authentication**: Local user accounts
- **Features**: Start/stop, console access, file management
- **Monitoring**: Real-time server status and logs
### User Management
```bash
# Create admin user
docker exec pufferpanel-seattle pufferpanel user add --admin admin
# Create regular user
docker exec pufferpanel-seattle pufferpanel user add player
# Set user permissions
docker exec pufferpanel-seattle pufferpanel user perms player server.minecraft.view
```
### Server Templates
- **Pre-configured**: Common game server templates
- **Custom templates**: Tailored server configurations
- **Auto-updates**: Automatic game updates
- **Backup integration**: Scheduled server backups
## Network Configuration
### Port Management
```yaml
# Port mappings for different games
ports:
- "25565:25565" # Minecraft Java
- "19132:19132/udp" # Minecraft Bedrock
- "27015:27015" # Source games
- "7777:7777/udp" # Satisfactory
- "2456-2458:2456-2458/udp" # Valheim
```
### Firewall Rules
```bash
# Allow game server ports
sudo ufw allow 25565/tcp comment "Minecraft Java"
sudo ufw allow 19132/udp comment "Minecraft Bedrock"
sudo ufw allow 27015/tcp comment "Source games"
sudo ufw allow 7777/udp comment "Satisfactory"
```
## Storage Management
### Server Data
```
/var/lib/pufferpanel/servers/
├── minecraft-vanilla/
│ ├── world/
│ ├── plugins/
│ └── server.properties
├── gmod-prophunt/
│ ├── garrysmod/
│ └── srcds_run
└── satisfactory/
├── FactoryGame/
└── Engine/
```
### Backup Strategy
- **Automated backups**: Daily world/save backups
- **Retention policy**: 7 daily, 4 weekly, 12 monthly
- **Storage location**: `/mnt/backups/game-servers/`
- **Compression**: Gzip compression for space efficiency
## Performance Optimization
### Resource Allocation
```yaml
# Per-server resource limits
deploy:
resources:
limits:
memory: 4G # Minecraft servers
cpus: '2.0'
reservations:
memory: 2G
cpus: '1.0'
```
### Java Optimization (Minecraft)
```bash
# JVM arguments for Minecraft servers
-Xms2G -Xmx4G
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
```
### Network Optimization
- **TCP optimization**: Tuned for game traffic
- **Buffer sizes**: Optimized for low latency
- **Connection limits**: Prevent resource exhaustion
- **Rate limiting**: Anti-DDoS protection
## Monitoring and Alerts
### Server Monitoring
- **Resource usage**: CPU, memory, disk I/O
- **Player count**: Active players per server
- **Performance metrics**: TPS, latency, crashes
- **Uptime tracking**: Server availability statistics
### Alert Configuration
```yaml
# Prometheus alerts for game servers
- alert: GameServerDown
expr: up{job="pufferpanel"} == 0
for: 5m
labels:
severity: critical
annotations:
summary: "Game server {{ $labels.instance }} is down"
- alert: HighMemoryUsage
expr: container_memory_usage_bytes{name="minecraft-server"} / container_spec_memory_limit_bytes > 0.9
for: 10m
labels:
severity: warning
annotations:
summary: "High memory usage on {{ $labels.name }}"
```
## Security Configuration
### Access Control
- **User authentication**: Local user database
- **Role-based permissions**: Admin, moderator, player roles
- **Server isolation**: Containerized server environments
- **Network segmentation**: Isolated game network
### Security Hardening
```bash
# Disable unnecessary services
systemctl disable --now telnet
systemctl disable --now rsh
# Configure fail2ban for SSH
sudo fail2ban-client set sshd bantime 3600
# Regular security updates
sudo apt update && sudo apt upgrade -y
```
### Backup Security
- **Encrypted backups**: AES-256 encryption
- **Access controls**: Restricted backup access
- **Integrity checks**: Backup verification
- **Offsite storage**: Cloud backup copies
## Troubleshooting
### Common Issues
#### Server Won't Start
```bash
# Check server logs
docker exec pufferpanel-seattle pufferpanel logs minecraft-server
# Verify port availability
netstat -tulpn | grep :25565
# Check resource limits
docker stats pufferpanel-seattle
```
#### Connection Issues
```bash
# Test network connectivity
telnet games.vish.gg 25565
# Check firewall rules
sudo ufw status numbered
# Verify DNS resolution
nslookup games.vish.gg
```
#### Performance Problems
```bash
# Monitor resource usage
htop
# Check disk I/O
iotop
# Analyze network traffic
nethogs
```
### Log Analysis
```bash
# View PufferPanel logs
docker logs pufferpanel-seattle
# View specific server logs
docker exec pufferpanel-seattle tail -f /var/lib/pufferpanel/servers/minecraft/logs/latest.log
# Check system logs
journalctl -u docker -f
```
## Maintenance Procedures
### Regular Maintenance
- **Weekly**: Server restarts and updates
- **Monthly**: Backup verification and cleanup
- **Quarterly**: Security audit and updates
- **Annually**: Hardware assessment and upgrades
### Update Procedures
```bash
# Update PufferPanel
docker pull pufferpanel/pufferpanel:latest
docker-compose up -d pufferpanel
# Update game servers
# Use PufferPanel web interface for game updates
```
### Backup Procedures
```bash
# Manual backup
docker exec pufferpanel-seattle pufferpanel backup create minecraft-server
# Restore from backup
docker exec pufferpanel-seattle pufferpanel backup restore minecraft-server backup-name
```
## Integration with Homelab
### Monitoring Integration
- **Prometheus**: Server metrics collection
- **Grafana**: Performance dashboards
- **NTFY**: Alert notifications
- **Uptime Kuma**: Service availability monitoring
### Authentication Integration
- **Authentik SSO**: Single sign-on integration (planned)
- **LDAP**: Centralized user management (planned)
- **Discord**: Player authentication via Discord (planned)
### Backup Integration
- **Automated backups**: Integration with homelab backup system
- **Cloud storage**: Backup to cloud storage
- **Monitoring**: Backup success/failure notifications
---
**Status**: ✅ PufferPanel managing multiple game servers with automated backups and monitoring