Hytale dedicated server with Java 25, automatic downloads, and persistent storage
461
Production-ready Docker image for running Hytale dedicated servers. Built with Java 25 and optimized for Linux VPS deployment.
Docker Hub: p0lgs/hytale-server-docker
Create docker-compose.yml:
services:
hytale-server:
image: p0lgs/hytale-server-docker:latest
container_name: hytale-server
restart: unless-stopped
ports:
- "5520:5520/udp"
environment:
- JAVA_OPTS=-Xms2G -Xmx4G -XX:AOTCache=Server/HytaleServer.aot
- HYTALE_PORT=5520
- HYTALE_BIND=0.0.0.0
volumes:
- hytale-data:/hytale/Server
stdin_open: true
tty: true
volumes:
hytale-data:
Then start:
docker compose up -d
Skip to Step 3: Authenticate Server below.
git clone https://github.com/PolGs/hytale-server-docker.git
cd hytale-server-docker
docker compose build
During build, you'll be prompted to authenticate:
=> => # https://oauth.accounts.hytale.com/oauth2/device/verify?user_code=gxETqUPb
=> => # Or visit the following URL and enter the code:
=> => # https://oauth.accounts.hytale.com/oauth2/device/verify
=> => # Authorization code: gxETqUPb
=> => # downloading latest ("release" patchline) to "/hytale/game.zip"
=> => # [===== ] 10.0% (142.5 MB / 1.4 GB)
Action: Visit the URL and enter the code to authenticate. Build continues after authentication (~1.4 GB download, 5-10 minutes).
docker compose up -d
Important: This is a second authentication for the running server (different from build auth).
docker attach hytale-server
In the console, run:
/auth login device
Follow the instructions, visit the URL, enter the code, then detach with Ctrl+P, Ctrl+Q.
docker compose logs -f
You should see:
[2026/01/13 20:25:00 INFO] [HytaleServer] Universe ready!
[2026/01/13 20:25:00 INFO] [HytaleServer] ===============================================================================================
[2026/01/13 20:25:00 INFO] [HytaleServer] Hytale Server Booted! [Multiplayer, Fresh Universe] took 22sec 201ms 220us 266ns
[2026/01/13 20:25:00 INFO] [HytaleServer] ===============================================================================================
Edit docker-compose.yml:
environment:
- JAVA_OPTS=-Xms4G -Xmx6G # Adjust memory for your VPS
- HYTALE_PORT=5520 # Server port
- HYTALE_BIND=0.0.0.0 # Bind address
ports:
- "5520:5520/udp" # Hytale uses UDP, not TCP!
All server data is stored in the hytale-data Docker volume:
universe/)config.json, permissions.json, etc.)mods/)logs/)# List files
docker exec hytale-server ls -la /hytale/Server
# View config
docker exec hytale-server cat /hytale/Server/config.json
# Copy file out
docker cp hytale-server:/hytale/Server/config.json ./config.json
# Copy file in
docker cp ./config.json hytale-server:/hytale/Server/config.json
docker compose restart
docker cp your-mod.jar hytale-server:/hytale/Server/mods/
docker compose restart
# Backup entire server
docker run --rm --volumes-from hytale-server -v $(pwd):/backup ubuntu \
tar czf /backup/hytale-backup-$(date +%Y%m%d).tar.gz -C /hytale/Server .
# Backup just worlds
docker exec hytale-server tar czf /tmp/universe.tar.gz -C /hytale/Server/universe .
docker cp hytale-server:/tmp/universe.tar.gz ./universe-backup-$(date +%Y%m%d).tar.gz
# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Install Docker Compose
sudo apt-get update
sudo apt-get install docker-compose-plugin
# Configure firewall (UDP, not TCP!)
sudo ufw allow 5520/udp
sudo ufw enable
# Create directory and docker-compose.yml
mkdir hytale-server && cd hytale-server
wget https://raw.githubusercontent.com/PolGs/hytale-server-docker/main/docker-compose.yml
# Edit docker-compose.yml to use published image
nano docker-compose.yml
# Change 'build: .' to 'image: p0lgs/hytale-server-docker:latest'
# Start server
docker compose up -d
# Authenticate
docker attach hytale-server
# Run: /auth login device
# Detach: Ctrl+P, Ctrl+Q
docker compose pull
docker compose up -d
Published at: p0lgs/hytale-server-docker
The image is available on Docker Hub. Simply use:
services:
hytale-server:
image: p0lgs/hytale-server-docker:latest
# ... rest of config
Or pull directly:
docker pull p0lgs/hytale-server-docker:latest
# Build
docker compose build
# Tag
docker tag hytale-server:latest p0lgs/hytale-server-docker:latest
docker tag hytale-server:latest p0lgs/hytale-server-docker:1.0.0
# Login and push
docker login
docker push p0lgs/hytale-server-docker:latest
docker push p0lgs/hytale-server-docker:1.0.0
# Start
docker compose up -d
# Stop
docker compose down
# Restart
docker compose restart
# Logs
docker compose logs -f
# Console access
docker attach hytale-server
# Detach (without stopping)
Ctrl+P, Ctrl+Q
# Resource usage
docker stats hytale-server
Check firewall allows UDP port 5520:
sudo ufw status
sudo ufw allow 5520/udp
Verify port mapping uses /udp not /tcp in docker-compose.yml
Ensure server authentication completed: /auth login device
Hytale's default view distance (384 blocks) uses significant RAM. To reduce:
docker cp hytale-server:/hytale/Server/config.json ./config.json
# Edit view distance
docker cp ./config.json hytale-server:/hytale/Server/config.json
docker compose restart
Consider the Nitrado:PerformanceSaver plugin for dynamic view distance adjustment.
Check logs:
docker compose logs -f
Common issues:
-Xmx in JAVA_OPTS)Hytale and all related assets are property of Hypixel Studios. This Docker image is provided as-is for running Hytale servers.
Content type
Image
Digest
sha256:543da5826…
Size
1.5 GB
Last updated
9 months ago
docker pull p0lgs/hytale-server-docker:2026.01.17-4b0f30090