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.
- Host: GitHub
- URL: https://github.com/supersunho/docker-palworld-server
- Owner: supersunho
- Created: 2025-06-27T06:36:09.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-12-31T11:09:13.000Z (6 months ago)
- Last Synced: 2026-01-04T10:25:43.263Z (5 months ago)
- Topics: arm64, dedicated, dedicated-server, docker, fex, palworld, server
- Language: Python
- Homepage: https://hub.docker.com/r/supersunho/palworld-server
- Size: 300 KB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
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! โญ**