This guide explains how to setup a dedicated Hytale-Server on an unprivileged Proxmox LXC with:
- Stable Autostart
- Working Proxmox-Console
- Clean Network
- Crash-Recovery
- Update-Workflow
- Debian 12 Standard
- CPU: 8-16 Cores (depending on your hardware)
- RAM: 12-16 GB
- Swap: 0
- Disk: ≥ 16 GB
- Unprivileged: Yes
- Hostname:
hytale-server(or whatever you like) - Features:
nesting=yes - Network: DHCP (vmbr0)
Start the container after creation.
Select your Server-Node, open the Node-Console, and enter the container:
pct enter <containerID>Enable the console and configure networking:
systemctl enable console-getty.service
systemctl add-wants multi-user.target console-getty.service
apt update && apt upgrade -y
apt purge -y ifupdown
systemctl mask networking.service
systemctl enable systemd-networkd
mkdir -p /etc/systemd/network
nano /etc/systemd/network/10-eth0.networkPaste the following configuration into the file:
[Match]
Name=eth0
[Network]
DHCP=yes
IPv6AcceptRA=yesSave with CTRL+X, confirm with Y, then ENTER.
Install dependencies:
apt install -y ca-certificates curl wget unzip gnupgAdd the repository and install Java:
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb bookworm main" > /etc/apt/sources.list.d/adoptium.list
apt update
apt install -y temurin-25-jdkCheck if Java installation was successful:
java -versionmkdir -p /opt/hytale
useradd -r -m -d /opt/hytale -s /usr/sbin/nologin hytale
chown -R hytale:hytale /opt/hytalecd /opt/hytale
wget https://downloader.hytale.com/hytale-downloader.zip
unzip hytale-downloader.zip
chmod +x hytale-downloader-linux-amd64
mv hytale-downloader-linux-amd64 hytale-downloader
rm hytale-downloader.zip hytale-downloader-windows-amd64.exeDownload the game files:
⚠️ Note: You will need to authenticate with your Hytale Account before the download starts. Follow the prompots from hytale-downloader!Go to https://oauth.accounts.hytale.com/oauth2/device/verify and enter the code shown in the console.
./hytale-downloader download-path game.zip
unzip 2026*.zip
rm 2026*.zipchmod +x /opt/hytale/start.sh
chown -R hytale:hytale /opt/hytale
⚠️ Note: This is required after every update because the ZIP doesn't preserve the executable bit.
nano /etc/systemd/system/hytale.servicePaste the following:
[Unit]
Description=Hytale Server
After=network.target systemd-user-sessions.service
[Service]
Type=simple
User=hytale
WorkingDirectory=/opt/hytale
ExecStart=/opt/hytale/start.sh
Restart=always
RestartSec=15
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.targetSave with CTRL+X, confirm with Y, then ENTER.
systemctl daemon-reload
systemctl enable hytale- Shutdown Container through Proxmox UI.
- Wait a few seconds.
- Start Container again.
Check status:
systemctl is-system-running
systemctl status hytale # (CTRL+C to exit)
ip a show eth0Expected results:
- System:
running - Hytale:
active (running) - Network: Has IP
You need to authenticate once to make the server work.
-
Stop the service and run manually:
systemctl stop hytale cd /opt/hytale ./start.sh -
Wait for the server to boot. You will see:
"Hytale has Booted" ... "No server token configured..."
-
In the console, type:
/auth login device
-
Go to https://oauth.accounts.hytale.com/oauth2/device/verify and enter the code shown in the console.
-
After authentication is complete, type in the console:
/auth persistence Encrypted
➡️
auth.enccreated. Never delete this file. -
Shutdown the manual server instance:
/stop
-
Change File Owner to hytale:
chown -R hytale:hytale /opt/hytale
-
Start the service again:
systemctl start hytale
🎇🎊 YOU ARE DONE! Have fun playing Hytale! 🥳🎉
Default Server-Port is 5520
We are going to crash the server intentionally to see if automatic restart works.
pkill -9 -f HytaleServer.jarExpected: Automatic restart after ~15-30s.
Run these commands to update the server:
systemctl stop hytale
cd /opt/hytale
./hytale-downloader download-path game.zip
unzip -o 2026*.zip
chmod +x /opt/hytale/start.sh
chown -R hytale:hytale /opt/hytale
rm 2026*.zip
systemctl start hytaleStart Server (Automatic on boot)
systemctl start hytaleStop Server
systemctl stop hytaleRestart Server
systemctl restart hytaleServer Status (CTRL+C to exit)
systemctl status hytaleLive-Logs
journalctl -u hytale -fShow last lines of log
journalctl -u hytale --no-pagerIf you want to change settings (password, servername, etc.):
systemctl stop hytale
cd /opt/hytale/Server
nano config.jsonSave with CTRL+X, confirm with Y, then ENTER.
systemctl start hytaleDon't forget to setup your Proxmox backups 😊 I usually go for these settings:
Proxmox UI: Datacenter → Backup → Add
- Schedule: 04:00 (Daily at 4AM)
- Mode:
Suspend - Selection Mode:
Include selected VMs
(1 backup job per VM / container)
- Daily:
3 - Weekly:
4 - Monthly:
2
https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual
If you want to join my Creative Hytale Server, feel free to!
tronnic-srv.duckdns.org:5521If you play there and decide to leave at some point, I don't mind exporting the World / Playerdata for you 😃