Hytale dedicated server in Docker. The container supports automatic updates on the server startup via the official Hytale Downloader CLI and runs HytaleServer.jar with custom launch options based on environment
Copy .env.example to .env and edit as needed.
On linux can be done via:
cp .env.example .envStart the server with docker compose up -d or make up
Follow logs with docker compose logs -f or make logs
Attach to the running container and authenticate using the server console:
docker attach hytale
auth login deviceTo persist authentication across restarts, enable machine ID access in docker-compose.yml and run:
auth persistence Encrypteddocker-compose.yml uses:
- Container name
hytale - UDP port
5520 - Named volume
hytale-datamounted at/hytale .envfile for configuration
The Makefile wraps common docker compose commands:
build, up, down, restart, status, logs, in, attach, update, update-hytale-downloader
Run make for descriptions
Defaults are defined in Dockerfile and .env.example and can be overridden in your .env file
HYTALE_PORT(default5520): UDP port to listen onBIND_ADDR(default0.0.0.0): bind address
ASSETS_PATH(default/hytale/Assets.zip): assets zip path in the containerAUTH_MODE(defaultauthenticated):authenticated,offline, orinsecure
Optional server provider tokens (only passed when set in .env. file):
SESSION_TOKEN: adds--session-tokenIDENTITY_TOKEN: adds--identity-tokenOWNER_UUID: adds--owner-uuid
ENABLE_AUTO_UPDATE(defaulttrue): download and update the server on container startSKIP_DELETE_ON_FORBIDDEN(defaultfalse): keep downloader credentials on403 Forbidden
The downloader binary also checks for its own updates on every start.
JAVA_XMS(default4G): initial heap sizeJAVA_XMX(default4G): max heap sizeJAVA_CMD_ADDITIONAL_OPTS: extra JVM options appended tojavaUSE_AOT_CACHE(defaulttrue): add-XX:AOTCache=HytaleServer.aotif presentACCEPT_EARLY_PLUGINS(defaultfalse): add--accept-early-pluginsALLOW_OP(defaultfalse): add--allow-opDISABLE_SENTRY(defaultfalse): add--disable-sentryHYTALE_ADDITIONAL_OPTS: additional server options appended at the end
BACKUP_ENABLED(defaultfalse): enable backupsBACKUP_DIR(default/hytale/backups): backup output directoryBACKUP_FREQUENCY(default30): minutes between backups
- If the downloader fails with
403 Forbidden, the startup script may remove~/.hytale-downloader-credentials.jsonunlessSKIP_DELETE_ON_FORBIDDEN=true. - The server data lives in the
hytale-datavolume at/hytale.
- Server Provider Authentication Guide: https://support.hytale.com/hc/en-us/articles/45328341414043-Server-Provider-Authentication-Guide
- Hytale Server Manual: https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual