Panel/docs/features/INSTALLERS.md
2026-06-07 18:01:52 -05:00

2.2 KiB

Installers

Current State

Installer behavior is split across game XML, gamemanager startup, addonsmanager, SteamCMD helpers, and agent scripts.

Important references:

  • Panel/modules/config_games/schema_server_config.xml
  • Panel/modules/gamemanager/home_handling_functions.php
  • Panel/modules/addonsmanager/module.php
  • Panel/modules/steam_workshop/module.php
  • Agent_Linux/ogp_agent.pl
  • Agent-Windows/OGP64/OGP/ogp_agent.pl

Installer Types Seen In The Codebase

  • SteamCMD-based installs
  • download/extract installs
  • script-driven installs
  • Workshop/content installs
  • profile/content copy workflows

Installer strategy should come from game capability metadata. The agent should execute trusted strategies, not arbitrary customer commands.

Windows Agent Install Notes

The Windows agent is Cygwin-based under Agent-Windows/OGP64.

Common installed layout:

  • Cygwin root: C:\OGP64
  • Bash: C:\OGP64\bin\bash.exe
  • Agent root: C:\OGP64\OGP
  • Maintained launcher: C:\OGP64\OGP\Install\agent_start.bat
  • Convenience launcher: C:\OGP64\agent_start.bat

The launcher checks %~dp0bin\bash.exe, %~dp0..\bin\bash.exe, %~dp0..\..\bin\bash.exe, C:\OGP64\bin\bash.exe, C:\cygwin64\bin\bash.exe, and C:\cygwin\bin\bash.exe. Missing-bash errors should print every checked path and pause in manual use. Set GSP_AGENT_NO_PAUSE=1 for service/non-interactive wrappers that should fail fast instead of waiting at a prompt.

Generated config files under /OGP/Cfg are production state. Installer/startup may create them from .default templates if missing, but update logic must preserve them. Restart-time auto-update may replace only /OGP/ogp_agent.pl; it must not overwrite Cfg/Config.pm, Cfg/Preferences.pm, Cfg/bash_prefs.cfg, service settings, passwords, server data, or logs.

When the Windows agent starts, the batch wrapper now writes the startup log to C:\OGP64\var\log\gsp_agent_start.log when that Cygwin root is detected, and the Cygwin helper tees live output to /var/log/gsp_agent_start.log inside the shell environment. Manual failures print the last 100 lines of that log before the console pauses, so the original error remains visible in the same window.