Configuration
Configuration
Section titled “Configuration”Complete reference for all configuration options in KyuubiSoft Panel.
Environment Variables
Section titled “Environment Variables”Required Variables
Section titled “Required Variables”These must be set for the panel to function:
| Variable | Description | Example |
|---|---|---|
JWT_SECRET | Token signing key (min 32 chars) | openssl rand -base64 48 |
MANAGER_USERNAME | Admin login username | admin |
MANAGER_PASSWORD | Admin password (min 12 chars) | SecurePass123! |
CORS_ORIGINS | Allowed API origins | http://localhost:18080 |
Server Configuration
Section titled “Server Configuration”| Variable | Default | Description |
|---|---|---|
JAVA_MIN_RAM | 3G | Minimum JVM heap size |
JAVA_MAX_RAM | 4G | Maximum JVM heap size |
SERVER_PORT | 5520 | Game server port (UDP) |
SERVER_BIND | 0.0.0.0 | Network bind address |
AUTH_MODE | authenticated | authenticated or offline |
TZ | Europe/Berlin | Container timezone |
Download Options
Section titled “Download Options”| Variable | Default | Description |
|---|---|---|
USE_HYTALE_DOWNLOADER | false | Use official Hytale downloader |
HYTALE_PATCHLINE | release | release or pre-release |
AUTO_UPDATE | false | Auto-update on restart |
SERVER_JAR_URL | - | Custom JAR download URL |
ASSETS_URL | - | Custom assets download URL |
Panel Configuration
Section titled “Panel Configuration”| Variable | Default | Description |
|---|---|---|
MANAGER_PORT | 18080 | Web panel port |
TRUST_PROXY | false | Enable for reverse proxy |
SECURITY_MODE | strict | strict or warn |
DEMO_MODE | false | Run with mock data |
Resource Limits
Section titled “Resource Limits”| Variable | Default | Description |
|---|---|---|
DOCKER_MEMORY_LIMIT | 8G | Container memory limit |
DOCKER_CPU_LIMIT | 4 | Container CPU limit |
Backup Configuration
Section titled “Backup Configuration”| Variable | Default | Description |
|---|---|---|
ENABLE_BACKUP | false | Enable built-in backups |
BACKUP_FREQUENCY | 30 | Backup interval (minutes) |
Optional Integrations
Section titled “Optional Integrations”| Variable | Description |
|---|---|
MODTALE_API_KEY | Modtale mod store API key |
STACKMART_API_KEY | StackMart store API key |
CURSEFORGE_API_KEY | CurseForge API key (optional) |
WebMap Configuration
Section titled “WebMap Configuration”| Variable | Default | Description |
|---|---|---|
WEBMAP_PORT | 18081 | Live map HTTP port |
WEBMAP_WS_PORT | 18082 | Live map WebSocket port |
Docker Volumes
Section titled “Docker Volumes”The stack uses these persistent volumes:
| Volume | Path | Purpose |
|---|---|---|
hytale-server | /opt/hytale/server | Server JAR and assets |
hytale-data | /opt/hytale/data | Worlds, configs, panel data |
hytale-backups | /opt/hytale/backups | Backup storage |
hytale-plugins | /opt/hytale/plugins | Server plugins |
hytale-mods | /opt/hytale/mods | Server mods |
hytale-downloader | /opt/hytale/downloader | Downloader credentials |
hytale-auth | /opt/hytale/auth | Server auth data |
Server Configuration Files
Section titled “Server Configuration Files”config.json
Section titled “config.json”Main server configuration at /opt/hytale/data/config.json:
{ "serverName": "My Hytale Server", "motd": "Welcome to the server!", "maxPlayers": 20, "gamemode": "adventure", "difficulty": "normal", "pvp": true, "whitelist": false}panel-config.json
Section titled “panel-config.json”Panel-specific settings at /opt/hytale/data/panel-config.json:
{ "acceptEarlyPlugins": false, "disableSentry": false, "allowOp": true, "patchline": "release"}Update Configuration
Section titled “Update Configuration”Native update system settings in server config.json:
{ "updateConfig": { "enabled": true, "checkIntervalSeconds": 3600, "notifyPlayersOnAvailable": true, "patchline": "release", "runBackupBeforeUpdate": true, "backupConfigBeforeUpdate": true, "autoApplyMode": "DISABLED", "autoApplyDelayMinutes": 5 }}Auto-Apply Modes:
DISABLED- Manual updates onlyWHEN_EMPTY- Update when no players onlineSCHEDULED- Update after delay
Reverse Proxy Setup
Section titled “Reverse Proxy Setup”For HTTPS access via nginx or traefik:
Nginx Example
Section titled “Nginx Example”server { listen 443 ssl; server_name panel.yourdomain.com;
ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem;
location / { proxy_pass http://localhost:18080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}Set in .env:
TRUST_PROXY=trueCORS_ORIGINS=https://panel.yourdomain.comMultiple Instances
Section titled “Multiple Instances”Run multiple servers on the same host:
# Instance 1STACK_NAME=hytale-prod HOST_DATA_PATH=/opt/hytale-prod docker-compose up -d
# Instance 2STACK_NAME=hytale-test HOST_DATA_PATH=/opt/hytale-test docker-compose up -dEach instance gets its own containers and data directory.