Hytale-Server-Manager

Hytale-Server-Manager

Docker app from Nebula's Repository

Overview

Hytale Server Manager is a web-based management dashboard for Hytale game servers.

Features include:

  • Server management and monitoring
  • Backup automation and restoration
  • Player tracking
  • Mod management
  • Scheduled tasks
  • Discord notifications
  • Real-time console access

IMPORTANT: You must configure the JWT secrets before first use. Generate random values for JWT_SECRET, JWT_REFRESH_SECRET, and SETTINGS_ENCRYPTION_KEY using the commands shown in each variable's description.

Build and Release GitHub tag License issues - hytale_server_manager

View site - GH Pages view - Documentation

Discord

Hytale Server Manager

A web-based management dashboard for Hytale game servers. Built with React, TypeScript, and Node.js.

Features

  • Server Management - Control multiple servers with real-time metrics and live console
  • Mod Manager - Browse and install mods from Modtale with dependency resolution
  • Modpack System - One-click installation of pre-configured mod collections
  • Backup Management - Automated scheduling with restore capabilities
  • Role-Based Access - Fine-grained permissions for admin, moderator, and viewer roles

Project Structure

├── packages/    # Monorepo packages
│   ├── frontend/ # React frontend application
│   ├── server/   # Node.js backend API
│   └── website/  # Documentation website (Astro)
└── scripts/     # Installation and deployment scripts

Tech Stack

Frontend: React 18, TypeScript, Tailwind CSS, Zustand, Vite

Backend: Node.js, Express, Prisma, SQLite, Socket.IO

Prerequisites

Quick start

Use the docker-compose.yml file provided to set up your docker container instance.

[!NOTE] UnRAID users can use the UnRAID app store.

Manual installation

# Clone the repository
git clone https://github.com/nebula-codes/hytale_server_manager.git
cd hytale_server_manager

# Run initial setup (Windows)
.\scripts\windows\setup.ps1

# Run development servers (both)
pnpm dev

# Or run them separately:
# pnpm -C packages/frontend dev
# pnpm -C packages/server dev

If PowerShell blocks the script due to execution policy, run:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Linux setup:

bash ./scripts/linux/setup.sh

The setup script:

  • copies packages/frontend/.env.example and packages/server/.env.example if needed
  • prompts for JWT_SECRET, JWT_REFRESH_SECRET, and SETTINGS_ENCRYPTION_KEY (blank = auto-generate)
  • installs dependencies and runs database migrations

Configuration

The server requires these environment variables in packages/server/.env:

Variable Description
JWT_SECRET Secret key for JWT tokens (required)
JWT_REFRESH_SECRET Secret key for refresh tokens (required)
SETTINGS_ENCRYPTION_KEY 32-character key for encrypting sensitive settings (required)
DATABASE_URL SQLite database path (default: file:./data/hytalepanel.db)

Login / Admin Credentials

If you don't have an admin user yet, run the reset script to create or reset it:

node packages/server/reset-admin.js

This creates (or resets) the admin user with password Admin123!@# by default. You can pass a custom password:

node packages/server/reset-admin.js MyNewPassword123!

License

MIT License - see LICENSE for details.


This is an unofficial fan project and is not affiliated with Hytale or Hypixel Studios.

Install Hytale-Server-Manager on Unraid in a few clicks.

Find Hytale-Server-Manager in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Hytale-Server-Manager Review the template variables and paths Click Install

Related apps

Details

Repository
ghcr.io/nebula-codes/hytale-server-manager:latest
Last Updated2026-07-17
First Seen2026-01-19

Runtime arguments

Web UI
http://[IP]:[PORT:3001]
Network
host
Shell
sh
Privileged
false

Template configuration

Web UI PortPorttcp
Target
3001
Default
3001
Value
3001
Default game portPortudp
Target
5520
Default
5520
Value
5520
PUIDVariable

User ID for file permissions. Use 'id' command to find your UID.

Default
99
Value
99
PGIDVariable

Group ID for file permissions. Use 'id' command to find your GID.

Default
100
Value
100
TimezoneVariable

Set container timezone in TZ format.

Target
TZ
Default
Etc/UTC
Value
Etc/UTC
DatabasePathrw

SQLite database storage

Target
/app/data/db
Default
/mnt/user/appdata/hytale-server-manager/db
Value
/mnt/user/appdata/hytale-server-manager/db
ServersPathrw

Game server installations

Target
/app/servers
Default
/mnt/user/appdata/hytale-server-manager/servers
Value
/mnt/user/appdata/hytale-server-manager/servers
BackupsPathrw

Server backup storage

Target
/app/data/backups
Default
/mnt/user/appdata/hytale-server-manager/backups
Value
/mnt/user/appdata/hytale-server-manager/backups
LogsPathrw

Application logs (including Prisma logs)

Target
/app/logs/
Default
/mnt/user/appdata/hytale-server-manager/logs/
Value
/mnt/user/appdata/hytale-server-manager/logs/
CertificatesPathrw

SSL Certificates for the web UI

Target
/app/data/certs/
Default
/mnt/user/appdata/hytale-server-manager/certs/
Value
/mnt/user/appdata/hytale-server-manager/certs/
Hytale DownloaderPathrw

Hytale downloader tool storage

Target
/app/data/hytale-downloader
Default
/mnt/user/appdata/hytale-server-manager/hytale-downloader
Value
/mnt/user/appdata/hytale-server-manager/hytale-downloader
Machine IDPathro

System machine ID for identification

Target
/etc/machine-id
Default
/etc/machine-id
Value
/etc/machine-id
DISCORD_WEBHOOK_URLVariable

Discord webhook URL for notifications

DISCORD_ENABLEDVariable

Enable Discord webhook notifications

Default
false
Value
false
CORS_ORIGINVariable

Allowed CORS origin. Set to your Unraid server URL for external access (e.g., https://192.168.1.100:3001)

Default
http://localhost:3001
Value
http://localhost:3001
INSECURE_COOKIESVariable

Allow HTTP access (NOT recommended). Set to 'true' only for local network testing without HTTPS.

Default
false
Value
false
SETTINGS_ENCRYPTION_KEYVariable

Encryption key for sensitive settings (exactly 32 hex chars). Generate with: openssl rand -hex 16

JWT_REFRESH_SECRETVariable

JWT refresh token secret (min 32 chars). Generate with: openssl rand -hex 64

JWT_SECRETVariable

JWT secret for authentication (min 32 chars). Generate with: openssl rand -hex 64

RATE_LIMIT_WINDOWVariable

Rate limit window in milliseconds (default: 900000 = 15 minutes)

Default
900000
Value
900000
RATE_LIMIT_MAXVariable

Maximum requests per rate limit window (default: 100)

Default
100
Value
1000
MAX_FILE_UPLOAD_SIZEVariable

Maximum file upload size in bytes (default: 52428800 = 50MB)

Default
52428800
Value
52428800