Install a Hytale Server on Debian or Ubuntu

Published on Updated on 4 min read

Step by step to your own Hytale server on Debian or Ubuntu: install Java 25, download the server files, create a start script and authenticate the server.

Want to run your own Hytale server on a Linux operating system with Debian or Ubuntu? Then you are in the right place.

In this guide we use the official Hytale downloader, install the server step by step and complete the initial authentication. All commands are written for Debian 13, Debian 12 and Ubuntu 24.04 LTS.

Requirements for your own Hytale server

  • A root server or VPS running Debian 13, Debian 12 or Ubuntu 24.04 LTS
  • Root access over SSH
  • At least 4 GB of RAM for the server alone, the example below uses 8 GB
  • Java 25, see the next section

Update the package list and install pending updates

Before we start, refresh the package list of your operating system and install all available updates:

apt update && apt upgrade -y

Install Java 25

The official Hytale Server Manual requires Java 25. The server will not start with older Java releases. Install Java 25 together with unzip and screen:

apt install openjdk-25-jre-headless unzip screen -y

Then verify the installation with the following command. The output should contain "openjdk 25":

java -version

Java 25 is not available in every distribution. Status as of July 2026:

Distributionopenjdk-25 in the package sources
Debian 13 "Trixie"yes
Debian 12 "Bookworm"no
Ubuntu 24.04 LTSyes
Ubuntu 22.04 LTSyes

On Debian 12 you install Java 25 from the Adoptium package source. The signing key belongs in /etc/apt/keyrings/, because the former route via apt-key no longer exists:

apt install -y wget gpg apt-transport-https
mkdir -p /etc/apt/keyrings
wget -qO- https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /etc/apt/keyrings/adoptium.gpg
echo "deb [signed-by=/etc/apt/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
apt update
apt install -y temurin-25-jre unzip screen

You can check which Java versions are available on your system at any time with:

apt-cache policy openjdk-25-jre-headless

Create a dedicated user for the Hytale server

For security reasons, do not run the server as root, but under a user of its own:

adduser --disabled-login hytale

Simply press Enter to skip the prompts for name, address or phone number. Then switch to the new user and into its home directory:

su hytale && cd

Download the Hytale downloader and fetch the server files

Download the official Hytale downloader directly:

wget https://downloader.hytale.com/hytale-downloader.zip

Unpack the archive. Since it already contains a folder called Server/, we move a separately supplied Assets.zip into it, change into the directory and make the downloader executable:

unzip hytale-downloader.zip
mv Assets.zip Server/
cd Server/
chmod +x hytale-downloader-linux-amd64

Now we run the downloader to fetch or update the actual server files:

./hytale-downloader-linux-amd64

Note: The downloader always pulls the current version of HytaleServer.jar and Assets.zip. Run it again for later updates as well.

Create a start script with AOT cache

Create a file called "start.sh":

nano start.sh

Paste the following content. We use the AOT cache recommended in the manual, which noticeably shortens the startup time:

#!/bin/bash
# CONFIGURATION
SCREEN_NAME="hytale"
SERVER_FILE="HytaleServer.jar"
ASSETS_FILE="Assets.zip" # Standard name
MEM="8G" # Adjust RAM to your needs (Min. 4GB)

# START LOOP
while true; do
    echo "Starting Hytale Server..."
    # Start command with AOT cache optimization according to the manual
    java -Xms$MEM -Xmx$MEM -XX:AOTCache=HytaleServer.aot -jar $SERVER_FILE --assets $ASSETS_FILE

    echo "Restarting in 5 seconds... Press CTRL+C to cancel"
    sleep 5
done

Save the file with "CTRL + X", then "Y" and "Enter". The loop in the script makes sure the server comes back up automatically after a crash.

Make the script executable:

chmod +x start.sh

Start the Hytale server and work with the console

Start the server inside a screen session so it keeps running after you close your SSH connection:

screen -dmS hytale ./start.sh

You open the console with:

screen -r hytale

Press "CTRL + A + D" to leave the console again without stopping the server.

Authenticate the server (device login)

On the first start you have to authenticate the server once. To do so, enter the following command in the server console:

/auth login device

Open the link that is displayed (for example https://accounts.hytale.com/device) on your PC and enter the code shown in the console. As soon as "Authentication successful!" appears, your server is ready to use.

Next steps: autostart and protection against attacks

Frequently asked questions

Which Java version does a Hytale server need?
The official Hytale Server Manual requires Java 25. The server will not start with older Java releases. Check the installed version with the command java -version.
How much RAM does a Hytale server need?
Plan for at least 4 GB for the server alone. The start script in this guide is set to 8 GB, which leaves enough headroom for most rounds. You adjust the value through the MEM variable.
What does device login mean in Hytale?
On the first start, the server has to authenticate itself against Hytale once. The console command /auth login device returns a link and a code that you confirm in your browser. After that the server is ready to use.
What is the AOT cache in the start script for?
The AOT cache stores Java code that has already been compiled and therefore noticeably shortens the startup time of the server. The Hytale Server Manual explicitly recommends using it.
Does the Hytale server restart on its own after a crash?
Yes. The start script contains a loop that starts the server again after five seconds. Press CTRL+C to cancel that process if you want to stop the server deliberately.

Hytale Hytale server Game server Debian Ubuntu Linux Java 25