-
Notifications
You must be signed in to change notification settings - Fork 1
Configuration
Alireza Janaki edited this page Jan 4, 2026
·
13 revisions
This guide covers how to configure UltimateServer to meet your needs.
The main configuration file is located at config.json in the root directory of your UltimateServer installation.
{
"Ip": "0.0.0.0",
"MaxConnections": 50,
"PluginsDirectory": "plugins"
}-
Ip: Server IP address to bind to (default: "0.0.0.0") -
MaxConnections: Maximum number of concurrent connections (default: 50) -
PluginsDirectory: The directory where the server scans for plugin DLLs (default: "plugins")
{
"PasswordMinLength": 8,
"RequireSpecialChars": true,
"MaxFailedLoginAttempts": 5,
"LockoutDurationMinutes": 30,
"JwtExpiryHours": 24,
"RefreshTokenDays": 7
}-
PasswordMinLength: Minimum required length for user passwords -
RequireSpecialChars: Enforces special characters in passwords -
MaxFailedLoginAttempts: Number of failed attempts before account lockout -
LockoutDurationMinutes: Duration of the account lockout -
JwtExpiryHours: Expiration time for JWT access tokens -
RefreshTokenDays: Expiration time for refresh tokens
{
"MaxRequestSizeMB": 100,
"EnableCompression": true,
"CacheExpiryMinutes": 15,
"ConnectionPoolSize": 10
}-
MaxRequestSizeMB: Maximum size of HTTP requests in MB -
EnableCompression: Enables Gzip/Deflate compression for HTTP responses -
CacheExpiryMinutes: Default expiry time for cached items -
ConnectionPoolSize: The number of connections to keep in the pool
{
"DebugMode": false,
"PanelDomain": "panel.example.com",
"Ip": "0.0.0.0",
"MaxConnections": 50,
"DashboardPasswordHash": "12345678",
"PasswordMinLength": 8,
"RequireSpecialChars": true,
"MaxFailedLoginAttempts": 5,
"LockoutDurationMinutes": 30,
"JwtExpiryHours": 24,
"RefreshTokenDays": 7,
"MaxRequestSizeMB": 100,
"EnableCompression": true,
"CacheExpiryMinutes": 15,
"ConnectionPoolSize": 10,
"email_host": "your-smtp-service-provider-like-smtp.gmail.com",
"email_port": 587,
"email_username": "your-smtp-service-username",
"email_password": "your-smtp-service-password",
"email_useSsl": true
}You can specify ports using command line arguments:
dotnet Server.dll <Server_Port> <Dashboard_Port> <Voicechat_Port> <SFTP_Port>Example with custom ports:
dotnet Server.dll 12001 12002 12003 11004For production deployments, it's recommended to use Nginx as a reverse proxy:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:11002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
To secure your dashboard with HTTPS:
- Obtain an SSL certificate (e.g., from Let's Encrypt)
- Configure Nginx:
server { listen 443 ssl http2; server_name your-domain.com;ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/private.key; location / { proxy_pass http://localhost:11002; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}
server { listen 80; server_name your-domain.com; return 301 https://$server_name$request_uri; }
After configuring your server: