worshop work

This commit is contained in:
Frank Harris 2026-06-08 16:09:54 -05:00
parent 0d44c65ea5
commit 3829a4a83d
92 changed files with 487 additions and 110 deletions

View file

@ -1,5 +1,7 @@
# GameManager
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Role
`Panel/modules/gamemanager` is the core customer server control module. It owns:

View file

@ -1,5 +1,7 @@
# Module Index
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
This is the master module inventory for the Panel. Use it as the first stop before opening module code.
| Module | Purpose | Status | Recommendation |

View file

@ -1,5 +1,7 @@
# Panel Update Module
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Scope
This document covers the admin Panel updater implemented through:

View file

@ -1,5 +1,7 @@
# Scheduler
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Current Implementation
The scheduler lives in the `cron` module on the Panel and in scheduler methods inside the agents.

View file

@ -1,5 +1,7 @@
# Server Content Manager
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Current State
`Panel/modules/addonsmanager` is the current home of GSP's Server Content / Add-ons / Workshop work.
@ -47,17 +49,19 @@ For Workshop items, the current flow lets users enter Workshop IDs or full Steam
5. User enters one or more Workshop URLs or numeric IDs.
6. Panel parses IDs, rejects invalid entries, and records rows in `server_content_workshop`.
7. Panel writes a manifest to `{SERVER_HOME}/gsp_server_content/workshop_manifest.json`.
8. Panel syncs the bundled Linux or Cygwin script into `{SERVER_HOME}/gsp_server_content/scripts/workshop/`.
9. Agent executes the script with the manifest path through the existing authenticated `exec` RPC.
10. Script runs SteamCMD, copies Workshop content into the configured target path, copies DayZ/Arma `.bikey` files when applicable, and writes a log under `gsp_server_content`.
8. Panel writes a generated per-job shell script into `{SERVER_HOME}/gsp_server_content/jobs/workshop/`.
9. The generated job script creates a temporary SteamCMD runscript containing `workshop_download_item <appid> <workshop_id> validate`.
10. Agent executes the generated script with the manifest path through the existing authenticated `exec` RPC.
11. Script runs SteamCMD with `+runscript`, copies Workshop content into the configured target path, copies DayZ/Arma `.bikey` files when applicable, and writes a log under `gsp_server_content`.
The agents are intentionally generic executors in this design. New Workshop business logic should not be added to `Agent-Windows` or `Agent_Linux`; use `remote_writefile`, `exec`, log reads, and normal start/stop/restart primitives instead.
Current script fallback behavior:
Current job-script behavior:
- Admin-defined custom scripts are supported when they exist on the agent.
- Missing custom scripts fall back to the bundled generic handler and are logged.
- Default script names such as `generic_steam_workshop_windows_cygwin.sh` are copied from the Panel module source and must not be checked as bare files on the agent.
- Server Content Manager generates a new job script for each Workshop action.
- Admin-defined static Workshop script paths are deprecated and ignored by the primary path.
- Default script names such as `generic_steam_workshop_windows_cygwin.sh` must not be checked as bare files on the agent.
- Agents need only the generic `writefile` and `exec` primitives.
Current default install paths:
@ -90,7 +94,7 @@ The Panel helper parser reads this block first and only tolerates old direct tag
SteamCMD requirements:
- Linux agents need SteamCMD available at the configured profile/template path, `STEAMCMD_PATH`, `/home/gameserver/steamcmd/steamcmd.sh`, or in `PATH`.
- Windows agents currently use the existing Cygwin agent model and run the bundled Cygwin-compatible shell handler. SteamCMD may be provided as `steamcmd.exe`, `steamcmd.sh`, an explicit configured path, or via `STEAMCMD_PATH`.
- Windows agents currently use the existing Cygwin agent model and run the Panel-generated shell job. SteamCMD may be provided as `steamcmd.exe`, `steamcmd.sh`, an explicit configured path, or via `STEAMCMD_PATH`.
- Missing SteamCMD should return a clear error, not a generic script failure.
The legacy `steam_workshop` monitor button is intentionally suppressed so users are not sent to the deprecated standalone module.

View file

@ -1,5 +1,7 @@
# TS3Admin
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Teamspeak 3 admin interface module.

View file

@ -1,5 +1,7 @@
# Update Module
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
Primary operational reference:
- `docs/modules/PANEL_UPDATE.md`

View file

@ -1,5 +1,7 @@
# Administration
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Admin utilities and logging helpers, including the watch logger and external link storage.

View file

@ -1,5 +1,7 @@
# Backup Restore
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Backup and restore UI for game server homes.

View file

@ -1,5 +1,7 @@
# Billing
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Commercial billing, provisioning, invoices, orders, transactions, coupons, and payment gateway integration.

View file

@ -1,5 +1,7 @@
# Circular
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Admin notifications / circular messages for broadcasting announcements to users.

View file

@ -1,5 +1,7 @@
# Config Games
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Game XML definitions, CLI parameter generation, mod definitions, and custom field mapping.

View file

@ -1,5 +1,7 @@
# Cron
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Scheduler / CRON for game server automation.

View file

@ -1,5 +1,7 @@
# Dashboard
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Main landing dashboard with widgets and quick server overview.

View file

@ -1,5 +1,7 @@
# Dynamic Server Image
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Dynamic server image and artwork management for server cards.

View file

@ -1,5 +1,7 @@
# Edit Config Files
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Game-specific shortcuts for editing common configuration files.

View file

@ -1,5 +1,7 @@
# F.A.Q.
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Basic help and FAQ content for users.

View file

@ -1,5 +1,7 @@
# Fast Download
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
FastDL support for Source/GoldSrc style content distribution.

View file

@ -1,5 +1,7 @@
# FTP
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
FTP administration and access control for server homes.

View file

@ -1,4 +1,6 @@
# gamemanager
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
This page is an alias for [GAMEMANAGER.md](GAMEMANAGER.md). The full module documentation lives there.

View file

@ -1,5 +1,7 @@
# LGSL With Image Mod
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Legacy LGSL status listing and image-based server display.

View file

@ -1,5 +1,7 @@
# Lite File Manager
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
In-panel file manager and file editor for customer server homes.

View file

@ -1,5 +1,7 @@
# Lost Password
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Password recovery flow for users.

View file

@ -1,5 +1,7 @@
# Module Manager
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Install and manage Panel modules and access rights.

View file

@ -1,5 +1,7 @@
# MySQL
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
MySQL hosting/admin module for servers and databases.

View file

@ -1,5 +1,7 @@
# NewsLister
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Legacy news and announcement module.

View file

@ -1,5 +1,7 @@
# Rcon
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Admin RCON interface for issuing console commands to supported game servers.

View file

@ -1,5 +1,7 @@
# Register
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
User registration module.

View file

@ -1,5 +1,7 @@
# Server Manager
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Remote server/node management in the Panel.

View file

@ -1,5 +1,7 @@
# Settings
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Panel settings, theme settings, and core site configuration.

View file

@ -1,5 +1,7 @@
# Status
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Admin status page for server/node state.

View file

@ -1,5 +1,7 @@
# Steam Workshop
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Legacy standalone Steam Workshop support.

View file

@ -1,5 +1,7 @@
# Subusers
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Subuser permissions and delegated access management.

View file

@ -1,5 +1,7 @@
# Support
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Simple support landing page for users.

View file

@ -1,5 +1,7 @@
# Teamspeak 3 Web Interface
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Web interface for Teamspeak 3 hosting.

View file

@ -1,5 +1,7 @@
# Tickets
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Support ticket system with messages, attachments, and settings.

View file

@ -1,4 +1,6 @@
# ts3admin
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
This page is an alias for [TS3Admin.md](TS3Admin.md). The full module documentation lives there.

View file

@ -1,5 +1,7 @@
# TShock
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Terraria / TShock-specific support module.

View file

@ -1,5 +1,7 @@
# Update
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Panel update and patch management.

View file

@ -1,5 +1,7 @@
# User Admin
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
User, role, and group administration.

View file

@ -1,5 +1,7 @@
# User Games
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Server provisioning, assignment, cloning, expiration, and home management.

View file

@ -1,5 +1,7 @@
# Utilities
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Miscellaneous utility tools such as Steam ID conversion and game-adjacent helpers.