Files
homelab-optimized/hosts/vms/seattle/palworld/README.md
Gitea Mirror Bot fb00a325d1
Some checks failed
Documentation / Build Docusaurus (push) Failing after 5m14s
Documentation / Deploy to GitHub Pages (push) Has been skipped
Sanitized mirror from private repository - 2026-04-18 11:19:59 UTC
2026-04-18 11:19:59 +00:00

105 lines
3.5 KiB
Markdown

# Palworld Dedicated Server
Palworld dedicated server running on the Seattle VM via Docker, using [thijsvanloef/palworld-server-docker](https://github.com/thijsvanloef/palworld-server-docker).
## Connection Info
| Service | Address | Protocol |
|---------|--------------------------------|----------|
| Game | `100.82.197.124:8211` | UDP |
| Query | `100.82.197.124:27016` | UDP |
| RCON | `100.82.197.124:25575` | TCP |
Connect in-game using the Tailscale IP: `100.82.197.124:8211`
RCON is accessible only over Tailscale (port 25575/tcp).
Query port is set to 27016 instead of the default 27015 to avoid conflict with the Gmod server.
## Server Management
```bash
# Start the server
cd /opt/palworld && docker compose up -d
# Stop the server
docker compose down
# View logs
docker compose logs -f palworld-server
# Restart the server
docker compose restart palworld-server
# Force update the server
docker compose down && docker compose pull && docker compose up -d
```
### RCON Commands
Connect with any RCON client to `100.82.197.124:25575` using the admin password.
Useful commands:
| Command | Description |
|----------------------------------|--------------------------|
| `/Info` | Server info |
| `/ShowPlayers` | List connected players |
| `/KickPlayer <steamid>` | Kick a player |
| `/BanPlayer <steamid>` | Ban a player |
| `/Save` | Force world save |
| `/Shutdown <seconds> <message>` | Graceful shutdown |
## Configuration
Environment variables are set in `docker-compose.yml`. Key settings:
| Variable | Default | Description |
|--------------------|-----------------|--------------------------------------|
| `SERVER_NAME` | Vish Palworld | Server name shown in server browser |
| `SERVER_PASSWORD` | *(empty)* | Set via `SERVER_PASSWORD` env var |
| `ADMIN_PASSWORD` | changeme | RCON password, set via env var |
| `PLAYERS` | 16 | Max concurrent players |
| `MULTITHREADING` | true | Multi-threaded CPU usage |
| `COMMUNITY` | false | Community server listing visibility |
| `UPDATE_ON_BOOT` | true | Auto-update server on container start|
| `TZ` | America/Los_Angeles | Server timezone |
To set passwords without committing them, export env vars before starting:
```bash
export SERVER_PASSWORD="REDACTED_PASSWORD"
export ADMIN_PASSWORD="REDACTED_PASSWORD"
docker compose up -d
```
## Resource Limits
- CPU limit: 8 cores, reservation: 2 cores
- Memory limit: 16 GB, reservation: 4 GB
## Data & Backups
Server data persists in the `palworld-data` Docker volume.
```bash
# Find volume location
docker volume inspect palworld_palworld-data
# Backup the volume
docker run --rm -v palworld_palworld-data:/data -v $(pwd):/backup alpine tar czf /backup/palworld-backup.tar.gz -C /data .
```
## Firewall Rules
The following ports must be open on the Seattle VM:
- `8211/udp` -- Game traffic (open to Tailscale or LAN)
- `27016/udp` -- Steam query (open to Tailscale or LAN)
- `25575/tcp` -- RCON (restrict to Tailscale only)
## Reference
- Image docs: https://github.com/thijsvanloef/palworld-server-docker
- Palworld server wiki: https://tech.palworldgame.com/dedicated-server-guide