An open API service indexing awesome lists of open source software.

https://github.com/supersunho/docker-palworld-server

๐ŸŽฎ Production-ready Palworld dedicated server with ARM64 optimization, FEX emulation, auto-management, Discord notifications, and enterprise backup system.
https://github.com/supersunho/docker-palworld-server

arm64 dedicated dedicated-server docker fex palworld server

Last synced: 3 months ago
JSON representation

๐ŸŽฎ Production-ready Palworld dedicated server with ARM64 optimization, FEX emulation, auto-management, Discord notifications, and enterprise backup system.

Awesome Lists containing this project

README

          

# ๐ŸŽฎ Palworld Dedicated Server For ARM64

**๐Ÿš€ Production-ready ARM64 optimized Palworld server with FEX + SteamCMD integration**

## ๐ŸŒŸ What Makes This Special?

### ๐Ÿ”ง **ARM64-Optimized Palworld Server**

- **Revolutionary FEX Integration**: 3-5x faster than QEMU on ARM64
- **Apple Silicon Ready**: M1/M2/M3 Macs with native performance
- **Raspberry Pi Support**: Perfect for home servers and edge computing
- **AWS Graviton Optimized**: Cloud-native ARM64 deployment

### ๐Ÿค– **Intelligent Auto-Management**

- **๐Ÿ”„ Smart Idle Restart**: Automatically restart when no players for configurable time
- **๐Ÿ“Š Advanced Health Monitoring**: CPU, memory, disk, and API health checks with auto-recovery
- **๐Ÿ’พ Enterprise Backup System**: Daily/weekly/monthly rotation with intelligent cleanup
- **๐ŸŽฏ Zero-Downtime Updates**: SteamCMD integration with graceful server management

### ๐ŸŒ **Multi-Language Discord Integration**

- **Real-time Notifications**: Player join/leave, server events, backup completion
- **4 Languages Supported**: Korean, English, Japanese, Chinese
- **Smart Event Filtering**: Configurable notification preferences
- **Rich Embeds**: Beautiful Discord messages with server status

## ๐Ÿš€ Quick Start

### **๐Ÿณ One-Command Deploy**

```bash
docker run -d \
--name palworld-server \
-p 8211:8211/udp \
-p 8212:8212/tcp \
-p 25575:25575/tcp \
-v palworld-data:/home/steam/palworld_server \
-v palworld-backups:/home/steam/backups \
supersunho/palworld-server:latest
```

### **๐Ÿ“‹ Docker Compose (Recommended)**

```yaml
version: "3.8"
services:
palworld-server:
image: supersunho/palworld-server:latest
container_name: palworld-server
restart: unless-stopped
ports:
- "8211:8211/udp" # Game Server
- "8212:8212/tcp" # REST API
- "25575:25575/tcp" # RCON
environment:
- SERVER_NAME=๐ŸŽฎ My Palworld Server
- MAX_PLAYERS=32
- ADMIN_PASSWORD=your-secure-password
volumes:
- palworld-data:/home/steam/palworld_server
- palworld-backups:/home/steam/backups
- palworld-logs:/home/steam/logs

volumes:
palworld-data:
palworld-backups:
palworld-logs:
```

## โš™๏ธ Configuration

### **๐Ÿ”ง Essential Environment Variables**

| Variable | Default | Description |
| :-------------------- | :------------------ | :----------------------------------- |
| `SERVER_NAME` | `"Palworld Server"` | ๐Ÿท๏ธ Server display name |
| `SERVER_PASSWORD` | `""` | ๐Ÿ”’ Server join password |
| `ADMIN_PASSWORD` | `"admin123"` | ๐Ÿ‘‘ Admin/RCON password |
| `MAX_PLAYERS` | `32` | ๐Ÿ‘ฅ Maximum player count (1-32) |
| `BACKUP_ENABLED` | `true` | ๐Ÿ’พ Enable automatic backups |
| `DISCORD_WEBHOOK_URL` | `""` | ๐Ÿ’ฌ Discord webhook for notifications |
| `LANGUAGE` | `ko` | ๐ŸŒ Language (`ko`/`en`/`ja`) |

### **โฐ NEW: Idle Restart Feature**

| Variable | Default | Description |
| :--------------------------- | :------ | :---------------------------------------- |
| `IDLE_RESTART_ENABLED` | `true` | ๐Ÿ”„ Enable auto-restart when no players |
| `IDLE_RESTART_MINUTES` | `30` | โฑ๏ธ Minutes to wait before restart |
| `DISCORD_EVENT_IDLE_RESTART` | `true` | ๐Ÿ“ฃ Discord notification for idle restarts |

### **๐ŸŽฎ Game Settings (150+ configurable options)**

| Variable | Default | Description |
| :-------------------- | :------ | :--------------------------- |
| `DIFFICULTY` | `None` | ๐ŸŽฏ Game difficulty |
| `IS_PVP` | `false` | โš”๏ธ Enable PvP mode |
| `DAY_TIME_SPEED_RATE` | `1.0` | โ˜€๏ธ Day time speed multiplier |
| `EXP_RATE` | `1.0` | ๐Ÿ“ˆ Experience gain rate |
| `PAL_CAPTURE_RATE` | `1.0` | ๐ŸŽฏ Pal capture difficulty |

[๐Ÿ“„ **Complete Environment Variables List**](https://github.com/supersunho/docker-palworld-server/blob/main/.env.sample)

## ๐ŸŽฏ ARM64 Performance Revolution

### **Why FEX Matters**

Traditional ARM64 emulation (QEMU) is slow and resource-heavy. Our FEX integration changes everything:

| Platform | Boot Time | Memory Usage | CPU Usage |
| :------------ | :--------- | :----------- | :-------- |
| ARM64 + FEX | ~2 minutes | ~1.2GB | ~15% |
| x86_64 Native | ~2 minutes | ~1.0GB | ~12% |
| ARM64 + QEMU | ~8 minutes | ~2.1GB | ~45% |

### **Optimized FEX Configuration**

```bash
# Automatically applied in our container
FEX_ENABLE_JIT_CACHE=1
FEX_JIT_CACHE_SIZE=1024
FEX_ENABLE_LAZY_MEMORY_DELETION=1
FEX_ENABLE_STATIC_REGISTER_ALLOCATION=1
```

## ๐Ÿ“Š Advanced Features

### **๐Ÿ”„ Smart Idle Management**

```bash
# Automatically restart server when empty
IDLE_RESTART_ENABLED=true
IDLE_RESTART_MINUTES=30

# Discord notification in your language
๐Ÿ‡บ๐Ÿ‡ธ "โฐ No players for 30 minutes. Restarting server (My Server)."
๐Ÿ‡ฐ๐Ÿ‡ท "โฐ 30๋ถ„ ๋™์•ˆ ์ ‘์†์ž๊ฐ€ ์—†์–ด ์„œ๋ฒ„(My Server)๋ฅผ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค."
๐Ÿ‡ฏ๐Ÿ‡ต "โฐ 30ๅˆ†้–“ใƒ—ใƒฌใ‚คใƒคใƒผใŒใ„ใชใ‹ใฃใŸใŸใ‚ใ€ใ‚ตใƒผใƒใƒผ(My Server)ใ‚’ๅ†่ตทๅ‹•ใ—ใพใ™ใ€‚"
```

### **๐Ÿ’พ Enterprise Backup System**

```yaml
backup:
enabled: true
interval_seconds: 3600 # Hourly backups
retention_days: 7 # Keep daily for 7 days
retention_weeks: 4 # Keep weekly for 4 weeks
retention_months: 6 # Keep monthly for 6 months
compress: true # Gzip compression
max_backups: 100 # Total backup limit
```

### **๐Ÿ“ก REST API \& RCON**

```bash
# REST API endpoints
curl http://localhost:8212/v1/api/info
curl http://localhost:8212/v1/api/players
curl http://localhost:8212/v1/api/settings

# RCON commands
rcon-cli --host localhost --port 25575 --password admin123 ShowPlayers
rcon-cli --host localhost --port 25575 --password admin123 "Broadcast Hello!"
```

### **๐Ÿฉบ Health Monitoring**

```bash
# Built-in health check
docker exec palworld-server python /app/scripts/healthcheck.py

# Automatic recovery on failures
# CPU > 90%, Memory > 95%, API timeouts = auto-restart
```

## ๐Ÿ› ๏ธ Advanced Usage

### **Multi-Arch Build Commands**

```bash
# Clone repository
git clone https://github.com/supersunho/docker-palworld-server.git
cd docker-palworld-server

# Build for your platform
docker build -t palworld-server .

# Build
docker buildx build --platform linux/arm64 -t palworld-server .
```

### **Custom Configuration File**

```bash
# Mount your own configuration
docker run -d \
-v ./my-config.yaml:/app/config/default.yaml \
-v palworld-data:/home/steam/palworld_server \
supersunho/docker-palworld-server:latest
```

### **Development Mode**

```bash
# Run with development tools
docker run -it --rm \
-v $(pwd):/app \
-p 8211:8211/udp \
supersunho/palworld-server:latest bash
```

## ๐ŸŒ Multi-Language Discord Notifications

### **Supported Languages**

- ๐Ÿ‡ฐ๐Ÿ‡ท **Korean** (`ko`) - ํ•œ๊ตญ์–ด ์•Œ๋ฆผ
- ๐Ÿ‡บ๐Ÿ‡ธ **English** (`en`) - English notifications
- ๐Ÿ‡ฏ๐Ÿ‡ต **Japanese** (`ja`) - ๆ—ฅๆœฌ่ชž้€š็Ÿฅ

### **Example Notifications**

```yaml
Player Join:
๐Ÿ‡บ๐Ÿ‡ธ "๐ŸŽฎ Player joined: Steve (5 players online)"
๐Ÿ‡ฐ๐Ÿ‡ท "๐ŸŽฎ ํ”Œ๋ ˆ์ด์–ด ์ฐธ๊ฐ€: Steve (ํ˜„์žฌ 5๋ช…)"
๐Ÿ‡ฏ๐Ÿ‡ต "๐ŸŽฎ ใƒ—ใƒฌใ‚คใƒคใƒผๅ‚ๅŠ : Steve (็พๅœจ5ไบบ)"

Server Restart:
๐Ÿ‡บ๐Ÿ‡ธ "๐Ÿ”„ Server restarted due to idle timeout"
๐Ÿ‡ฐ๐Ÿ‡ท "๐Ÿ”„ ๋ฌด์ ‘์†์œผ๋กœ ์ธํ•œ ์„œ๋ฒ„ ์žฌ์‹œ์ž‘"
๐Ÿ‡ฏ๐Ÿ‡ต "๐Ÿ”„ ใ‚ขใ‚คใƒ‰ใƒซใ‚ฟใ‚คใƒ ใ‚ขใ‚ฆใƒˆใซใ‚ˆใ‚‹ใ‚ตใƒผใƒใƒผๅ†่ตทๅ‹•"
```

## ๐Ÿ“ˆ Resource Requirements \& Scaling

### **Recommended Specifications**

| Players | CPU Cores | RAM | Storage | Bandwidth |
| :------ | :-------- | :-- | :------ | :-------- |
| 1-8 | 2 cores | 2GB | 10GB | 5 Mbps |
| 9-16 | 4 cores | 4GB | 15GB | 10 Mbps |
| 17-24 | 6 cores | 6GB | 20GB | 15 Mbps |
| 25-32 | 8 cores | 8GB | 25GB | 20 Mbps |

### **Cloud Provider Recommendations**

#### **ARM64 Cloud Options** ๐Ÿ’š

- **AWS**: Graviton3/4 instances (c7g, m7g series)
- **Oracle Cloud**: Ampere A1 (4 cores, 24GB RAM - Always Free!)
- **Hetzner**: CAX series ARM64 VPS
- **Scaleway**: ARM64 instances

## ๐Ÿค Community \& Support

### **๐Ÿ”— Links**

- ๐Ÿ“ฆ **Docker Hub**: [supersunho/palworld-server](https://hub.docker.com/r/supersunho/palworld-server)
- ๐Ÿ“‚ **GitHub**: [supersunho/docker-palworld-server](https://github.com/supersunho/docker-palworld-server)
- ๐Ÿ› **Issues**: [Report Issues](https://github.com/supersunho/docker-palworld-server/issues)
- ๐Ÿ’ฌ **Discussions**: [Community Discussions](https://github.com/supersunho/docker-palworld-server/discussions)

## ๐Ÿ“œ License \& Acknowledgments

**MIT License** - Free for personal and commercial use.

### **โญ Love this project? Give it a star! โญ**