Docker Installation
Deploy a Hytale dedicated server using the pre-built Docker image.
Prerequisites
Section titled “Prerequisites”- Docker 20.10+
- Minimum 4GB RAM (8GB recommended)
- Hytale account with server access
- UDP port 5520 available
Quick Start
Section titled “Quick Start”Pull the Image
Section titled “Pull the Image”# Latest stable releasedocker pull everhytale/hytale-server:latest
# Specific Hytale versiondocker pull everhytale/hytale-server:2026.01.15-c04fdfe10Run the Server
Section titled “Run the Server”# Create data directorymkdir -p ./data
# Run the serverdocker run -d \ --name hytale-server \ -p 5520:5520/udp \ -v ./data:/server \ -v /etc/machine-id:/etc/machine-id:ro \ -e MIN_MEMORY=4G \ -e MAX_MEMORY=8G \ everhytale/hytale-server:latestAuthentication
Section titled “Authentication”Hytale servers require authentication. After starting the container:
Step 1: Attach to the Console
Section titled “Step 1: Attach to the Console”docker attach hytale-serverStep 2: Authenticate
Section titled “Step 2: Authenticate”/auth login deviceYou’ll see:
===================================================================DEVICE AUTHORIZATION===================================================================Visit: https://accounts.hytale.com/deviceEnter code: ABCD-1234===================================================================Step 3: Complete Authorization
Section titled “Step 3: Complete Authorization”- Visit the URL in your browser
- Enter the code
- Wait for confirmation in the console
Step 4: Persist Credentials
Section titled “Step 4: Persist Credentials”/auth persistence EncryptedThis saves credentials to auth.enc so they survive container restarts.
Step 5: Detach from Container
Section titled “Step 5: Detach from Container”Press Ctrl+P then Ctrl+Q to detach without stopping the server.
Environment Variables
Section titled “Environment Variables”| Variable | Default | Description |
|---|---|---|
MIN_MEMORY | 4G | Minimum JVM heap size |
MAX_MEMORY | 8G | Maximum JVM heap size |
SERVER_PORT | 5520 | Server port (UDP) |
SERVER_BIND | 0.0.0.0 | Bind address |
AUTH_MODE | authenticated | Authentication mode |
USE_AOT_CACHE | true | Use AOT cache for faster startup |
Backup Options
Section titled “Backup Options”| Variable | Default | Description |
|---|---|---|
BACKUP_ENABLED | false | Enable automatic backups |
BACKUP_DIR | /server/backups | Backup directory |
BACKUP_FREQUENCY | 30 | Interval in minutes |
BACKUP_MAX_COUNT | 5 | Maximum backups to keep |
Data Structure
Section titled “Data Structure”The /server volume contains all persistent data:
/server/├── universe/ # Worlds and player data├── mods/ # Installed mods (EverEssentials, etc.)├── logs/ # Server logs├── .cache/ # Optimized cache├── auth.enc # Encrypted authentication├── config.json # Server configuration├── permissions.json # Permissions├── whitelist.json # Whitelisted players└── bans.json # Banned playersManaging the Server
Section titled “Managing the Server”View Logs
Section titled “View Logs”docker logs -f hytale-serverStop the Server
Section titled “Stop the Server”docker stop hytale-serverStart the Server
Section titled “Start the Server”docker start hytale-serverRemove the Container
Section titled “Remove the Container”docker rm hytale-serverFirewall Configuration
Section titled “Firewall Configuration”Hytale uses QUIC protocol over UDP.
Linux (ufw)
Section titled “Linux (ufw)”sudo ufw allow 5520/udpLinux (iptables)
Section titled “Linux (iptables)”sudo iptables -A INPUT -p udp --dport 5520 -j ACCEPTWindows PowerShell
Section titled “Windows PowerShell”New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action AllowTroubleshooting
Section titled “Troubleshooting”Machine-ID Error
Section titled “Machine-ID Error”If you see “Failed to get Hardware UUID”:
docker run -d \ --name hytale-server \ -v /etc/machine-id:/etc/machine-id:ro \ -v /var/lib/dbus/machine-id:/var/lib/dbus/machine-id:ro \ ...Server Won’t Start
Section titled “Server Won’t Start”- Check logs:
docker logs hytale-server - Ensure minimum 4GB RAM available
- Verify port 5520 is not in use
Token Expired
Section titled “Token Expired”Re-authenticate using the device flow:
docker attach hytale-server# Then in console:/auth login deviceNext Steps
Section titled “Next Steps”- Docker Compose - Easier configuration with compose files
- Installing Plugins - Add EverEssentials and other plugins