Minimal Docker image for running a Hytale Dedicated Server.
This image contains only the runtime and server binaries.
Game assets must be provided externally.
- Docker
- Docker Compose (optional)
- A valid Hytale account (required on first startup)
Official documentation:
https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual
- Java (Eclipse Temurin 25)
HytaleServer.jarHytaleServer.aot
Not included:
Assets.zip- Server data / worlds
You must provide Assets.zip. You can either:
- download it manually and mount it into the container, or
- set
ASSETS_AUTO_UPDATE=trueto download the game package automatically.
When auto-update is enabled, the container downloads the official game package,
extracts Assets.zip, and writes the server binaries to /assets/server.
The downloader is bundled in the image at /opt/hytale/hytale-downloader.
If the download URL changes, rebuild with --build-arg HYTALE_DOWNLOADER_URL=....
Example host structure:
For auto-update, mount /assets as a writable directory (not read-only).
/docker/storage/hytale/
├─ data/
└─ assets/
└─ Assets.zip
docker run -d \
--name hytale-server \
-p 5520:5520/udp \
-v /docker/storage/hytale/data:/data \
-v /docker/storage/hytale/assets:/assets \
-e JAVA_OPTS="-Dio.netty.transport.noNative=true" \
gamedevllama/hytale-serverAuto-update example:
docker run -d \
--name hytale-server \
-p 5520:5520/udp \
-v /docker/storage/hytale/data:/data \
-v /docker/storage/hytale/assets:/assets \
-e ASSETS_AUTO_UPDATE="true" \
-e JAVA_OPTS="-Dio.netty.transport.noNative=true" \
gamedevllama/hytale-serverservices:
hytale:
image: gamedevllama/hytale-server
container_name: hytale-server
restart: unless-stopped
stdin_open: true
tty: true
ports:
- "5520:5520/udp"
volumes:
- /docker/storage/hytale/data:/data
- /docker/storage/hytale/assets:/assets
# Optional: provide the downloader binary for auto-updates
# - /docker/storage/hytale/downloader/hytale-downloader-linux-amd64:/opt/hytale/hytale-downloader:ro
environment:
JAVA_OPTS: "-Dio.netty.transport.noNative=true"
HYTALE_OPTS: ""
ASSETS_AUTO_UPDATE: "false"
# ASSETS_PATCHLINE: "pre-release"On first startup, attach to the container:
docker attach hytale-serverRun:
/auth login device
Follow the instructions to authenticate the server.
Detach safely using:
CTRL + P, CTRL + Q
| Variable | Description |
|---|---|
ASSETS_PATH |
Path to Assets.zip inside container |
ASSETS_DIR |
Directory where assets are stored |
ASSETS_AUTO_UPDATE |
Set to true to download/extract assets and server files on startup |
ASSETS_PATCHLINE |
Optional patchline (e.g. pre-release) |
ASSETS_VERSION_FILE |
File storing the last downloaded asset version |
HYTALE_DOWNLOADER_PATH |
Path to hytale-downloader binary |
SERVER_DIR |
Directory for downloaded server binaries |
SERVER_JAR |
Path to HytaleServer.jar |
SERVER_AOT |
Path to HytaleServer.aot |
JAVA_OPTS |
Additional JVM options |
HYTALE_OPTS |
Additional Hytale server arguments |
All runtime data is stored in /data.
Mount this directory to persist worlds and configs.
Hytale and all related assets are property of Hypixel Studios.
This image provides only a containerized runtime environment.
I occasionally share updates and experiments around game development and server tooling on X:
Feel free to reach out if you have questions, ideas, or improvements for this setup.