The Game Server Admin (GSA) now supports user-specific configuration through a Nickel (.ncl) configuration file. This allows you to:
- Set a default server IP and port
- Maintain a list of favorite servers
- Customize UI preferences
- Configure connection settings
The user configuration is stored in user-config.ncl, which is gitignored to ensure your server credentials and preferences remain private.
To create a default configuration file:
./gsa config initThis creates user-config.ncl from the template user-config.ncl.template.
The configuration file uses Nickel language syntax and includes the following sections:
{
# Default server connection
default_server = {
host = "localhost", # Hostname or IP address
port = 25565, # Port number
profile_id = "minecraft-java", # Optional: game profile ID
rcon_password = "", # Optional: RCON password
},
# Favorite servers list
favorites = [
{
name = "My Minecraft Server",
host = "mc.example.com",
port = 25565,
profile_id = "minecraft-java",
rcon_password = "",
},
# Add more favorites as needed
],
# UI preferences
ui = {
theme = "system", # "light", "dark", or "system"
default_panel = "gsa-browser",
show_advanced = false,
},
# Connection settings
connection = {
timeout_ms = 5000, # Timeout in milliseconds
max_retries = 3, # Maximum retries
verbose_logging = false,
},
# VeriSimDB settings
verisimdb = {
url = "http://localhost:8090",
auto_submit = true,
},
}./gsa config showDisplays the current user configuration.
./gsa config set-default <host> <port>Example:
./gsa config set-default mc.example.com 25565./gsa config add-favorite <name> <host> <port>Example:
./gsa config add-favorite "My Minecraft" mc.example.com 25565
./gsa config add-favorite "CS2 Server" cs2.example.com 27015./gsa config list-favoritesWhen you run commands without specifying a server, the default server from your configuration will be used:
# Uses the default server from user-config.ncl
./gsa probeFavorite servers can be quickly selected from the UI. The configuration file stores all your favorite server connections for easy access.
user-config.nclis gitignored and will never be committed to version control- The file is added to
.gitignoreto prevent accidental commits - Sensitive information like RCON passwords should be handled with care
- The template file (
user-config.ncl.template) contains no sensitive data
- Never commit your config: The
.gitignorefile prevents this, but double-check - Use strong passwords: If storing RCON passwords, use strong, unique passwords
- Backup your config: Consider backing up your config file separately
- Review before sharing: If sharing your project, ensure
user-config.nclis not included
You can manually edit user-config.ncl to:
- Add multiple favorite servers
- Customize UI preferences
- Adjust connection timeouts
- Configure VeriSimDB settings
The configuration system respects these environment variables:
GSA_VERISIMDB_URL: Override the VeriSimDB URLGSA_PROFILES_DIR: Override the profiles directory
The profile_id field in server configurations should match the id attribute in game profile files (.a2ml files in the profiles/ directory).
✗ No config file found. Run `gsa config init` to create one.Solution: Run ./gsa config init to create the configuration file.
✗ Config file already exists at user-config.nclSolution: Either edit the existing file or back it up before re-initializing.
✗ Failed to write config: permission deniedSolution: Check file permissions and ensure you have write access.
Planned features for the configuration system:
- Profile-specific default servers
- Server connection testing from CLI
- Import/export configuration
- Encrypted storage for sensitive data
- GUI configuration editor