Class AppSettingsInstaller
- Namespace
- FishMMO.Installer
- Assembly
- FishMMO-Installer.dll
Interactive wizard that creates or updates appsettings.json and related configuration files with secure file permissions (chmod 600 on Linux). Also generates environment-variable export files so passwords never need to live in plain-text JSON at rest.
Supported components:
- IPFetch Web Server — WebServer.HttpPort + ConnectionStrings.NpgsqlConnection
- Patcher Web Server — WebServer.HttpPort + Patches.DirectoryName
- WebGL Web Server — WebServer.HttpPort
- Discord Bot — Discord.Token + Discord.DefaultGuildId + ConnectionStrings.Npgsql + rate-limiting
- CMS Server — ConnectionStrings.DefaultConnection
Supported outputs:
- appsettings.json — base configuration, chmod 600
- appsettings.Development.json / appsettings.Production.json — environment overrides, chmod 600
- fish shell snippet — ~/.config/fish/conf.d/fishmmo-secrets.fish, chmod 600
- systemd / .env file — fishmmo-secrets.env in target directory, chmod 600
Database credentials (Username/Password) are NOT stored in appsettings.json.
They are resolved at runtime via the DatabaseSecrets class from
environment variables (FISHMMO_DB_USERNAME, FISHMMO_DB_PASSWORD)
or the platform secrets file (/etc/fishmmo/db-secrets.env on Linux).
public static class AppSettingsInstaller
- Inheritance
-
AppSettingsInstaller
- Inherited Members
Methods
ConfigureAppSettings()
Entry point for the AppSettings secure setup wizard.
public static Task ConfigureAppSettings()
Returns
ConfigureCmsComponent()
public static Task ConfigureCmsComponent()
Returns
ConfigureDiscordBotComponent()
public static Task ConfigureDiscordBotComponent()