Skip to main content

Configuration

Complete reference for all configuration options in KyuubiSoft Panel.

Environment Variables

Required Variables

These must be set for the panel to function:

VariableDescriptionExample
JWT_SECRETToken signing key (min 32 chars)openssl rand -base64 48
MANAGER_USERNAMEAdmin login usernameadmin
MANAGER_PASSWORDAdmin password (min 12 chars)SecurePass123!
CORS_ORIGINSAllowed API originshttp://localhost:18080

Server Configuration

VariableDefaultDescription
JAVA_MIN_RAM3GMinimum JVM heap size
JAVA_MAX_RAM4GMaximum JVM heap size
SERVER_PORT5520Game server port (UDP)
SERVER_BIND0.0.0.0Network bind address
AUTH_MODEauthenticatedauthenticated or offline
TZEurope/BerlinContainer timezone

Download Options

VariableDefaultDescription
USE_HYTALE_DOWNLOADERfalseUse official Hytale downloader
HYTALE_PATCHLINEreleaserelease or pre-release
AUTO_UPDATEfalseAuto-update on restart
SERVER_JAR_URL-Custom JAR download URL
ASSETS_URL-Custom assets download URL

Panel Configuration

VariableDefaultDescription
MANAGER_PORT18080Web panel port
TRUST_PROXYfalseEnable for reverse proxy
SECURITY_MODEstrictstrict or warn
DEMO_MODEfalseRun with mock data

Resource Limits

VariableDefaultDescription
DOCKER_MEMORY_LIMIT8GContainer memory limit
DOCKER_CPU_LIMIT4Container CPU limit

Backup Configuration

VariableDefaultDescription
ENABLE_BACKUPfalseEnable built-in backups
BACKUP_FREQUENCY30Backup interval (minutes)

Optional Integrations

VariableDescription
MODTALE_API_KEYModtale mod store API key
STACKMART_API_KEYStackMart store API key
CURSEFORGE_API_KEYCurseForge API key (optional)

WebMap Configuration

VariableDefaultDescription
WEBMAP_PORT18081Live map HTTP port
WEBMAP_WS_PORT18082Live map WebSocket port

Docker Volumes

The stack uses these persistent volumes:

VolumePathPurpose
hytale-server/opt/hytale/serverServer JAR and assets
hytale-data/opt/hytale/dataWorlds, configs, panel data
hytale-backups/opt/hytale/backupsBackup storage
hytale-plugins/opt/hytale/pluginsServer plugins
hytale-mods/opt/hytale/modsServer mods
hytale-downloader/opt/hytale/downloaderDownloader credentials
hytale-auth/opt/hytale/authServer auth data

Server Configuration Files

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

Panel-specific settings at /opt/hytale/data/panel-config.json:

{
"acceptEarlyPlugins": false,
"disableSentry": false,
"allowOp": true,
"patchline": "release"
}

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 only
  • WHEN_EMPTY - Update when no players online
  • SCHEDULED - Update after delay

Reverse Proxy Setup

For HTTPS access via nginx or traefik:

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=true
CORS_ORIGINS=https://panel.yourdomain.com

Multiple Instances

Run multiple servers on the same host:

# Instance 1
STACK_NAME=hytale-prod HOST_DATA_PATH=/opt/hytale-prod docker-compose up -d

# Instance 2
STACK_NAME=hytale-test HOST_DATA_PATH=/opt/hytale-test docker-compose up -d

Each instance gets its own containers and data directory.