Table of Contents

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

Task

ConfigureCmsComponent()

public static Task ConfigureCmsComponent()

Returns

Task

ConfigureDiscordBotComponent()

public static Task ConfigureDiscordBotComponent()

Returns

Task