All apps · 0 apps
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.
Readme
View on GitHubHytale 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
- Node.js 20+
- pnpm (
npm install -g pnpm) - Git
- Java 25+ (required to run Hytale server processes) - https://adoptium.net/temurin/releases/
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.exampleandpackages/server/.env.exampleif needed - prompts for
JWT_SECRET,JWT_REFRESH_SECRET, andSETTINGS_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.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/nebula-codes/hytale-server-manager:latestRuntime arguments
- Web UI
http://[IP]:[PORT:3001]- Network
host- Shell
sh- Privileged
- false
Template configuration
- Target
- 3001
- Default
- 3001
- Value
- 3001
- Target
- 5520
- Default
- 5520
- Value
- 5520
User ID for file permissions. Use 'id' command to find your UID.
- Default
- 99
- Value
- 99
Group ID for file permissions. Use 'id' command to find your GID.
- Default
- 100
- Value
- 100
Set container timezone in TZ format.
- Target
- TZ
- Default
- Etc/UTC
- Value
- Etc/UTC
SQLite database storage
- Target
- /app/data/db
- Default
- /mnt/user/appdata/hytale-server-manager/db
- Value
- /mnt/user/appdata/hytale-server-manager/db
Game server installations
- Target
- /app/servers
- Default
- /mnt/user/appdata/hytale-server-manager/servers
- Value
- /mnt/user/appdata/hytale-server-manager/servers
Server backup storage
- Target
- /app/data/backups
- Default
- /mnt/user/appdata/hytale-server-manager/backups
- Value
- /mnt/user/appdata/hytale-server-manager/backups
Application logs (including Prisma logs)
- Target
- /app/logs/
- Default
- /mnt/user/appdata/hytale-server-manager/logs/
- Value
- /mnt/user/appdata/hytale-server-manager/logs/
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 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
System machine ID for identification
- Target
- /etc/machine-id
- Default
- /etc/machine-id
- Value
- /etc/machine-id
Discord webhook URL for notifications
Enable Discord webhook notifications
- Default
- false
- Value
- false
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
Allow HTTP access (NOT recommended). Set to 'true' only for local network testing without HTTPS.
- Default
- false
- Value
- false
Encryption key for sensitive settings (exactly 32 hex chars). Generate with: openssl rand -hex 16
JWT refresh token secret (min 32 chars). Generate with: openssl rand -hex 64
JWT secret for authentication (min 32 chars). Generate with: openssl rand -hex 64
Rate limit window in milliseconds (default: 900000 = 15 minutes)
- Default
- 900000
- Value
- 900000
Maximum requests per rate limit window (default: 100)
- Default
- 100
- Value
- 1000
Maximum file upload size in bytes (default: 52428800 = 50MB)
- Default
- 52428800
- Value
- 52428800
