complete codex docs

This commit is contained in:
Frank Harris 2026-06-05 11:37:09 -05:00
parent b5dcf01a8c
commit 3cefad183d
62 changed files with 2730 additions and 50 deletions

112
README.md Normal file
View file

@ -0,0 +1,112 @@
# GSP
GSP is a game server hosting platform built around a web Panel, Linux and Windows/Cygwin agents, and a customer Website.
The goal of this repository is to let customers manage hosted game servers with the same practical control they would expect on their own machine:
- start, stop, restart, and monitor servers
- edit config files and startup parameters
- use FTP and file management tools
- install mods, add-ons, and Workshop content
- schedule safe automation tasks
- read logs and troubleshooting docs
- get accurate server status reporting
- keep billing, support, and provisioning tied to the server lifecycle
## Repository Layout
```text
/
Agent_Linux/
Agent-Windows/
Panel/
Website/
docs/
```
## Component Overview
### Panel
The Panel is the control layer. It loads modules from `Panel/modules/`, stores panel-side state in the database, and talks to the agents through `Panel/includes/lib_remote.php`.
### Linux Agent
`Agent_Linux/ogp_agent.pl` launches and monitors game servers on Linux, using `screen` as the shared runtime backend.
### Windows Agent
`Agent-Windows/ogp_agent.pl` mirrors the Linux agent as closely as possible for Windows/Cygwin environments.
### Website
`Website/` is the public-facing site for product information, onboarding, docs, and commerce.
## Documentation Overview
Start with:
- [docs/development/CODEX_GUIDE.md](docs/development/CODEX_GUIDE.md)
- [docs/architecture/REPOSITORY_OVERVIEW.md](docs/architecture/REPOSITORY_OVERVIEW.md)
- [docs/architecture/PANEL_AGENT_FLOW.md](docs/architecture/PANEL_AGENT_FLOW.md)
- [docs/architecture/API_REFERENCE.md](docs/architecture/API_REFERENCE.md)
- [docs/modules/MODULE_INDEX.md](docs/modules/MODULE_INDEX.md)
- [docs/features/STATUS_SYSTEM.md](docs/features/STATUS_SYSTEM.md)
- [docs/features/XML_SYSTEM.md](docs/features/XML_SYSTEM.md)
- [docs/features/WORKSHOP_SYSTEM.md](docs/features/WORKSHOP_SYSTEM.md)
- [docs/features/SCHEDULER_SYSTEM.md](docs/features/SCHEDULER_SYSTEM.md)
Additional architecture and decision records:
- [docs/architecture/AI_GSP_ARCHITECTURE.md](docs/architecture/AI_GSP_ARCHITECTURE.md)
- [docs/decisions/](docs/decisions/)
- [docs/development/GSP_PLATFORM_IMPROVEMENT_REPORT.md](docs/development/GSP_PLATFORM_IMPROVEMENT_REPORT.md)
## Development Workflow
1. Read the docs first.
2. Find the relevant module, agent, or feature page.
3. Inspect code only where the docs point you.
4. Keep changes scoped to the module you are working on.
5. Prefer safe, structured interfaces over ad hoc shell commands.
6. Verify behavior in both Panel and agent paths when lifecycle or content flow is affected.
## Branch Strategy
Use a simple stable vs unstable model:
- `stable` or release branches should only contain verified customer-facing behavior.
- `unstable` or feature branches should hold active work, investigations, and partially complete features.
If the repo uses different branch names in practice, keep the same concept:
- stable = customer-ready
- unstable = in progress
## Stable vs Unstable
Stable code should have:
- accurate lifecycle and status reporting
- working logs
- safe file and FTP access
- working scheduler actions
- working backups and restore paths
- documented Workshop/content flows
Unstable code may exist for:
- experimental features
- partial module migrations
- new XML capabilities
- future improvements that are not yet customer-safe
## Documentation Map
- Architecture: `docs/architecture/`
- Agents: `docs/agents/`
- Games: `docs/games/`
- Modules: `docs/modules/`
- Features: `docs/features/`
- Decisions: `docs/decisions/`
- Development notes: `docs/development/`

View file

@ -0,0 +1,129 @@
# API Reference
## Overview
Panel-Agent communication uses XML-RPC over HTTP.
Main transport wrapper:
- `Panel/includes/lib_remote.php`
Main agent implementation files:
- `Agent_Linux/ogp_agent.pl`
- `Agent-Windows/ogp_agent.pl`
The Panel encrypts arguments before sending them to the agent. The agent decodes them, performs the requested action locally, then returns a status or payload.
## General Call Pattern
```text
Panel module
-> OGPRemoteLibrary method in lib_remote.php
-> XML-RPC request to agent /RPC2
-> agent subroutine in ogp_agent.pl
-> local screen/process/file/network action
-> return code or structured payload
```
## Core RPC Methods
| RPC / Wrapper | Purpose | Common Callers | Notes |
|---|---|---|---|
| `status_chk` | Quick agent reachability check | Panel health checks | Returns a lightweight online/offline/encryption state. |
| `rfile_exists` | Test if a remote file exists | File/content helpers | Used for safe file checks before read/write actions. |
| `get_log` | Fetch screen or console log text | `gamemanager` | Returns log content plus a status code. |
| `remote_stop_server` / `stop_server` | Stop a game server | `gamemanager`, scheduler actions | Takes control protocol and home path data. |
| `remote_send_rcon_command` / `send_rcon_command` | Send RCON/console command | `gamemanager`, `rcon`, scheduler warnings | Useful for warning messages and admin commands. |
| `remote_readfile` / `readfile` | Read a remote file | File editor, config tools | Must remain path-safe. |
| `remote_writefile` / `writefile` | Write a remote file | File editor, config tools | Must remain path-safe. |
| `universal_start` | Start a game server | `gamemanager` | Launches a managed `screen` session. |
| `is_screen_running` | Test whether a managed screen session exists | `gamemanager`, monitor pages | Legacy/simple screen check, not full readiness. |
| `remote_server_status` / `server_status` | Structured server status | `gamemanager` | The preferred source for online/start/stop state. |
| `remote_restart_server` / `restart_server` | Restart a server | `gamemanager` | Intended to be stop, wait, start. |
| `remote_query` | Query game metadata | `gamemanager` | Optional metadata only. |
| `steam_cmd` / `steam` / `automatic_steam_update` | SteamCMD-based update flows | Update actions, Workshop/install tools | Used by Steam-based server maintenance. |
| `start_file_download` | Download external content | Update/content tools | Returns a PID or progress handle. |
| `uncompress_file` | Extract archives | Content installers | Used for zip/tar package installs. |
| `remote_dirlist` / `remote_dirlistfm` | Read remote directory listings | File manager | Used for browse views. |
| `cpu_count`, `renice_process`, `force_cpu` | System/process control helpers | Update/start flows | Used during server launch optimization. |
| `clone_home` / `remove_home` | Duplicate or delete a server home | Provisioning/admin tools | Used during provisioning and teardown. |
| `secure_path`, `get_chattr` | Path safety and attribute helpers | File and security tools | Helps enforce control-path rules. |
| `ftp_mgr` | FTP management helper | FTP module | Used to manage server FTP state. |
| `compress_files` | Archive files | Backup/content tools | Candidate building block for backups. |
| `start_fastdl` / `stop_fastdl` / `restart_fastdl` / `fastdl_status` | FastDL service management | `fast_download` | Source/GoldSrc web distribution support. |
| `scheduler_*` methods | Task list and task CRUD | `cron` | Agent-owned scheduler implementation. |
| `agent_restart` | Restart the agent itself | Admin maintenance | Node maintenance action. |
| `shell_action` | Run a shell action in a controlled way | Advanced agent operations | Should remain tightly permissioned. |
| `send_steam_guard_code` | Submit Steam Guard code | Steam authenticated installs | Used for authenticated SteamCMD workflows. |
| `steam_workshop` / `get_workshop_mods_info` | Workshop-related helper calls | Workshop/content flows | Active in current module work, but still being consolidated. |
## Status And Return Patterns
Return values differ by method, but common patterns are:
- `1` or positive values for success
- `0` for offline/unavailable
- `-1` or another negative value for error
- structured arrays/hashes for richer status methods
`remote_server_status` is the important structured response. It should return the agent as source of truth for:
- `OFFLINE`
- `STARTING`
- `ONLINE`
- `STOPPING`
- `UNRESPONSIVE`
- `UNKNOWN`
## Sequence Diagrams
### Start
```text
Panel
-> universal_start
Agent
-> create screen session
-> launch server command
Panel
-> remote_server_status polling
Agent
-> session/process + port checks
Panel
-> render STARTING / ONLINE / UNRESPONSIVE
```
### Stop
```text
Panel
-> remote_stop_server
Agent
-> graceful stop command if available
-> wait for session/process exit
-> escalate to kill if needed
Panel
-> remote_server_status polling
Agent
-> confirm OFFLINE or UNRESPONSIVE
```
### Logs
```text
Panel log page
-> get_log
Agent
-> read screen log or console log
Panel
-> refresh textarea via AJAX
```
## Error Handling Notes
- Do not treat query failure as a start failure by itself.
- Do not treat marker-file presence as the source of truth.
- Do not expose raw shell execution to customers through generic RPC routes.
- When a method returns a payload, record the error text in the Panel UI if the operation fails.

View file

@ -0,0 +1,29 @@
# Decision 0001: Keep `screen` As The Shared Backend
## Status
Accepted
## Decision
GSP should keep `screen` as the shared process/session backend for both Linux and Windows/Cygwin agents for the current platform generation.
## Reasoning
- The existing agents already implement server lifecycle around `screen`.
- Linux and Windows/Cygwin behavior can stay aligned if both sides share the same session model.
- The Panel already expects session-based lifecycle checks.
- Moving to a different backend too early would create a large amount of compatibility work for start/stop/restart, logging, and scheduler flows.
## Alternatives Considered
- `tmux`
- direct process supervision without session wrappers
- custom daemon per server
## Why Those Were Not Chosen
- They would require broader code changes across both agents and the Panel.
- The existing runtime, log, and scheduler flows already assume `screen`.
- Cross-platform parity is easier to maintain with the current backend.

View file

@ -0,0 +1,32 @@
# Decision 0002: Agent-Truthed Status Detection
## Status
Accepted
## Decision
Server status should be derived from agent truth:
1. managed process/session existence
2. required game port listening
3. optional query and metadata lookup
## Reasoning
- Marker files become stale after crashes, failed starts, and power loss.
- Query systems like LGSL and GameQ are useful but unreliable as the sole online signal.
- The agent can check the actual runtime state locally.
## Alternatives Considered
- query-only status
- marker-file status
- process-only status
## Why Those Were Not Chosen
- Query-only status can lie for supported games.
- Marker files are not authoritative.
- Process-only status misses the important readiness condition: the port must actually listen.

View file

@ -0,0 +1,29 @@
# Decision 0003: First-Class Companion Programs
## Status
Accepted
## Decision
Companion applications such as BEC, B3, Discord bridges, log watchers, and stats collectors should be modeled as managed companion programs rather than ad hoc customer-editable startup scripts.
## Reasoning
- Customers should not control privileged helper commands through editable startup files.
- Companion processes need to be started, stopped, and restarted alongside the game server.
- PID and log handling should be centralized.
- The same design should work across Linux and Windows/Cygwin.
## Alternatives Considered
- keep `_alsoRun.bat` style helper files
- use only `pre_start` scripts
- rely on manual customer scripts
## Why Those Were Not Chosen
- They are not centrally managed.
- They are hard to secure.
- They are difficult to cleanly stop on server shutdown.

View file

@ -0,0 +1,26 @@
# Decision 0004: Server Content Manager Is The Workshop Layer
## Status
Accepted
## Decision
`Panel/modules/addonsmanager` should remain the primary future home for Workshop items, mods, add-ons, and server content. `steam_workshop` should remain a deprecated compatibility layer only.
## Reasoning
- `addonsmanager` already has the richer schema and more complete product direction.
- It supports content types beyond Steam Workshop.
- It is a better fit for load order, enable/disable, install history, and metadata.
## Alternatives Considered
- keep `steam_workshop` as the main module
- split mods, add-ons, and Workshop into separate modules
## Why Those Were Not Chosen
- `steam_workshop` is explicitly deprecated in the codebase.
- Separate modules would fragment user workflows and duplicate install logic.

View file

@ -0,0 +1,26 @@
# Decision 0005: Keep Managed Control Paths Outside Customer-Easy Edit Paths
## Status
Accepted
## Decision
Managed control files, manifests, scheduler state, and helper scripts should live in protected control locations rather than in customer-editable startup files where possible.
## Reasoning
- Customer-editable startup areas are too easy to tamper with.
- Managed state should not depend on files that customers can modify through FTP or file manager.
- Secure and auditable behavior is easier when control files are outside the customer content path.
## Alternatives Considered
- keep helper scripts in the game home
- keep runtime manifests next to the game executable
## Why Those Were Not Chosen
- Those options make it too easy for customers to alter managed execution.
- They complicate cleanup and lifecycle tracking.

View file

@ -0,0 +1,28 @@
# Decision 0006: Installers Must Be Game-Capability Driven
## Status
Accepted
## Decision
Installer behavior should be driven by game XML capabilities and module metadata instead of ad hoc shell scripts or one-off module pages.
## Reasoning
- Different games need different install strategies.
- Some games are content-copy based.
- Some are SteamCMD based.
- Some need key copying, startup parameter edits, or profile transforms.
- The Panel needs a structured model to support all of them cleanly.
## Alternatives Considered
- per-game custom shell scripts only
- raw customer-provided installer commands
## Why Those Were Not Chosen
- They are harder to secure and harder to document.
- They do not scale cleanly across games or platforms.

21
docs/decisions/README.md Normal file
View file

@ -0,0 +1,21 @@
# Decisions
This folder holds permanent architecture decisions and a small set of preserved investigation reports that informed those decisions.
## Decision Records
- `0001-screen-vs-tmux.md`
- `0002-status-detection.md`
- `0003-companion-programs.md`
- `0004-workshop-system.md`
- `0005-control-path-layout.md`
- `0006-installers.md`
## Preserved Reports
- `COMPANION_PROGRAMS_DESIGN.md`
- `SCHEDULER_ACTIONS_DESIGN.md`
- `STEAM_WORKSHOP_DESIGN.md`
Use the numbered decision files for long-term design rules. Use the report files for the investigative context that led to those decisions.

View file

@ -17,12 +17,15 @@ This file is the first stop for future Codex sessions working in this repository
1. `docs/architecture/REPOSITORY_OVERVIEW.md`
2. `docs/architecture/PANEL_AGENT_FLOW.md`
3. `docs/modules/MODULE_INDEX.md`
4. `docs/modules/GAMEMANAGER.md`
5. `docs/features/STATUS_SYSTEM.md`
6. `docs/features/XML_SYSTEM.md`
7. `docs/modules/SCHEDULER.md`
8. `docs/modules/SERVER_CONTENT_MANAGER.md`
3. `docs/architecture/API_REFERENCE.md`
4. `docs/modules/MODULE_INDEX.md`
5. `docs/modules/GAMEMANAGER.md`
6. `docs/features/STATUS_SYSTEM.md`
7. `docs/features/XML_SYSTEM.md`
8. `docs/modules/SCHEDULER.md`
9. `docs/modules/SERVER_CONTENT_MANAGER.md`
10. `docs/decisions/`
11. `docs/games/`
## Important Files By Topic
@ -76,6 +79,20 @@ This file is the first stop for future Codex sessions working in this repository
- `Agent_Linux/ogp_agent.pl`
- `Agent-Windows/ogp_agent.pl`
### Decisions And Historical Reports
- `docs/architecture/AI_GSP_ARCHITECTURE.md`
- `docs/decisions/0001-screen-vs-tmux.md`
- `docs/decisions/0002-status-detection.md`
- `docs/decisions/0003-companion-programs.md`
- `docs/decisions/0004-workshop-system.md`
- `docs/decisions/0005-control-path-layout.md`
- `docs/decisions/0006-installers.md`
- `docs/decisions/COMPANION_PROGRAMS_DESIGN.md`
- `docs/decisions/SCHEDULER_ACTIONS_DESIGN.md`
- `docs/decisions/STEAM_WORKSHOP_DESIGN.md`
- `docs/development/GSP_PLATFORM_IMPROVEMENT_REPORT.md`
## Common Development Workflows
### Debug a start/stop/restart issue
@ -119,6 +136,7 @@ The repository has already been mapped in these areas:
- current Server Content Manager structure
- current scheduler structure
- module-level roles and dependency patterns
- preserved investigation reports have been moved into the docs tree
## Things Intentionally Not Yet Implemented
@ -135,4 +153,3 @@ This documentation-only pass does not implement:
## Practical Rule for Future Sessions
Before scanning code broadly, read the docs layer first. Only open source files when the documentation does not already answer the question.

View file

@ -0,0 +1,39 @@
# Companion Programs
## Current State
Companion programs are not yet a first-class managed system. Current behavior is mostly script-driven and game-specific.
Important references:
- `docs/decisions/0003-companion-programs.md`
- `Agent_Linux/ogp_agent.pl`
- `Agent-Windows/ogp_agent.pl`
- `Panel/modules/config_games/schema_server_config.xml`
## What The System Needs To Do
- start companion apps with the server
- stop companion apps when the server stops
- restart companion apps when the server restarts
- track PIDs or handles
- log stdout/stderr
- avoid customer-editable privileged startup scripts
## Good Companion Examples
- BEC for Arma/DayZ
- B3
- Discord bots or bridges
- log watchers
- stats collectors
- anti-cheat helpers
## Recommended Shape
The system should be XML/admin-defined and agent-managed.
## Recommendation
Keep the design centralized and game-aware. Do not rely on one-off helper files as the source of truth.

View file

@ -0,0 +1,34 @@
# Competitor Comparison
## Reviewed Hosts / Panels
- Open Game Panel
- TCAdmin
- Pterodactyl
- GameServers.com
- Nitrado
## Comparison Themes
| Area | Common Market Pattern | GSP Opportunity |
|---|---|---|
| Workshop / mods | Often present in a game-specific or host-specific way | Build a structured, game-capability-driven server content system. |
| Backups | Usually manual plus scheduled | Make backups easy, visible, restorable, and tied to retention policy. |
| Scheduling | Restarts, warnings, backups, updates | Support safer typed actions with task logs and conflict handling. |
| Status | Basic power state plus query metadata | Use agent-truth status and honest fallback messaging. |
| File management | Built-in file manager and FTP | Keep advanced file control but make it safer and clearer. |
| RCON | Often available in host tools | Make RCON presets, warnings, and logs clean and secure. |
| Permissions | Subusers/roles | Continue improving granular permissions and support workflows. |
| Provisioning | One-click create/install | Make provisioning audit-friendly and reliable. |
| Monitoring | State, logs, alerts | Surface startup failures, unresponsive servers, and maintenance notes clearly. |
## Opportunities For GSP To Be Better
- better documentation
- better agent-truth state
- clearer status transitions
- safer advanced control for power users
- more honest error reporting
- cleaner Server Content / Workshop handling
- tighter task history and logs

View file

@ -0,0 +1,26 @@
# File Editor
## Current State
File editing is split across LiteFM, FTP, edit-config helpers, and agent remote read/write methods.
Important references:
- `Panel/modules/litefm/`
- `Panel/modules/ftp/`
- `Panel/modules/editconfigfiles/`
- `Panel/includes/lib_remote.php`
## What It Should Provide
- safe browsing inside server home roots
- text editing with syntax highlighting
- backups before save
- restore last saved version
- read-only protected paths
- large-file warnings
## Main Risk
Customer access must never extend into agent control files, shared secrets, or other users' server homes.

View file

@ -0,0 +1,25 @@
# FTP System
## Current State
GSP includes an FTP module and FTP-related provisioning fields.
Important references:
- `Panel/modules/ftp/module.php`
- `Panel/modules/user_games/module.php`
- `Panel/modules/server/module.php`
## Current Notes
- FTP remains useful for advanced users.
- The embedded FTP UI is legacy-heavy and should be treated carefully.
- FTP credentials need to be protected and easy to reset.
## Recommended Direction
- keep FTP as an advanced access method
- document it clearly
- avoid exposing control paths
- audit the legacy embedded file manager code

View file

@ -0,0 +1,27 @@
# 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/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
## Recommended Model
Installer strategy should come from game capability metadata. The agent should execute trusted strategies, not arbitrary customer commands.

View file

@ -0,0 +1,33 @@
# Logging System
## Current State
Logging comes from multiple places:
- agent screen logs
- console logs
- update logs
- scheduler logs
- admin/logger history
Important references:
- `Panel/modules/gamemanager/log.php`
- `Panel/modules/gamemanager/view_server_log.php`
- `Panel/modules/gamemanager/get_server_log.php`
- `Agent_Linux/ogp_agent.pl`
- `Agent-Windows/ogp_agent.pl`
## What Works
- live log retrieval exists
- logs can be fetched through the Panel
- the viewer can update via AJAX
## What Still Needs Cleanup
- better startup failure diagnostics
- clearer newest-log-file selection
- better error highlighting
- better downloadable log history

View file

@ -0,0 +1,38 @@
# Provisioning
## Current State
Server provisioning flows are centered in `user_games` and supported by billing and server manager modules.
Important references:
- `Panel/modules/user_games/module.php`
- `Panel/modules/user_games/add_home.php`
- `Panel/modules/user_games/edit_home.php`
- `Panel/modules/user_games/assign_home.php`
- `Panel/modules/user_games/clone_home.php`
- `Panel/modules/user_games/check_expire.php`
- `Panel/includes/api_functions.php`
- `Panel/modules/billing/module.php`
- `Panel/modules/server/module.php`
## What Provisioning Must Handle
- server home creation
- port assignment
- passwords
- FTP access
- expiration and suspension
- clone/migrate behavior
- game XML and mod selection
## Recommended Direction
Provisioning should be validated and logged more like a commercial hosting platform:
- clear create/install status
- no port collisions
- secure default passwords
- clear billing lifecycle behavior
- post-create status verification

View file

@ -0,0 +1,27 @@
# RCON System
## Current State
RCON support is part of the gamemanager and a dedicated admin RCON module.
Important references:
- `Panel/modules/gamemanager/module.php`
- `Panel/modules/gamemanager/home_handling_functions.php`
- `Panel/modules/gamemanager/rcon.php`
- `Panel/modules/rcon/module.php`
## Current Uses
- admin console commands
- warning messages before restart
- diagnostic control for supported games
- scheduler-friendly command execution
## Recommended Direction
- keep presets
- validate commands where possible
- do not expose arbitrary commands to customers by default
- log every command with user and server context

View file

@ -0,0 +1,35 @@
# Scheduler System
## Current State
The scheduler is implemented through the `cron` Panel module and agent-side `Schedule::Cron` execution.
Important references:
- `docs/modules/SCHEDULER.md`
- `Panel/modules/cron/cron.php`
- `Panel/modules/cron/shared_cron_functions.php`
- `Agent_Linux/ogp_agent.pl`
- `Agent-Windows/ogp_agent.pl`
## Current Strengths
- It can schedule server actions.
- It can schedule Steam updates and server content actions.
- It already has a visible UI and agent execution path.
## Current Weaknesses
- It is too command-string oriented.
- Customer-safe and admin-only actions are not separated cleanly enough.
- Task run history is not rich enough.
- Error reporting and conflict handling need work.
## Recommended Direction
- typed actions
- explicit permissions
- stored task history
- clear logs and results
- no customer raw shell commands by default

31
docs/games/README.md Normal file
View file

@ -0,0 +1,31 @@
# Games
This folder is reserved for game-by-game documentation.
## Current Role
The detailed game-specific behavior still lives mainly in:
- `Panel/modules/config_games/schema_server_config.xml`
- `Panel/modules/config_games/server_config_parser.php`
- `Panel/modules/gamemanager/home_handling_functions.php`
- `Panel/modules/addonsmanager/`
- the agent startup and Workshop/content scripts
## Planned Contents
Future game docs should cover:
- startup parameters
- query ports
- RCON ports
- common config files
- Workshop/mod support
- install strategies
- status quirks
- troubleshooting notes
## Current Gap
There is not yet a full game-by-game documentation catalog in this folder. That is the next obvious documentation pass after the module and architecture layers.

View file

@ -1,54 +1,54 @@
# Module Index
This is the current Panel module inventory. It is intentionally concise so future Codex sessions can decide which module to inspect in code.
This is the master module inventory for the Panel. Use it as the first stop before opening module code.
| Module | Purpose | Current State | Dependencies | Notes |
|---|---|---|---|---|
| `TS3Admin` | Teamspeak 3 admin interface | Required, legacy niche | TS3 admin files | Keep if TS3 hosting is sold. |
| `addonsmanager` | Server Content Manager | Required, actively evolving | DB tables, game XML, agent install scripts | Best current home for mods, add-ons, Workshop, and content installs. |
| `administration` | Admin utilities | Required | Core admin pages | Includes logger/watch tools. |
| `backup-restore` | Backup/restore UI | Optional, broken/testing | Hard-coded backup host/path logic | Hide until replaced. |
| `billing` | Billing, provisioning, commerce | Optional, large custom module | Payment gateways, invoices, shop/provisioning docs | Important for commercial hosting. |
| `circular` | Notification/circular messages | Optional | Panel UI | Good candidate for maintenance and announcement notices. |
| `config_games` | Game XML definitions and CLI builder | Required | XML schema/parser | Critical for startup templates, queries, custom fields, and game capabilities. |
| `cron` | Scheduler / CRON | Required | Agent scheduler methods, Panel action selection | Needs safe action registry and task history. |
| `dashboard` | Main landing dashboard | Required | Panel auth and server summaries | Should surface status, support, billing, and alerts. |
| `dsi` | Dynamic Server Image | Optional | Game imagery and cached assets | Useful for server cards and branding. |
| `editconfigfiles` | Config file shortcuts | Optional | Game config metadata | Good for surfacing common editable files. |
| `faq` | FAQ/help | Required | Site docs/content | Should link to game docs and common workflows. |
| `fast_download` | FastDL support | Required | Source/GoldSrc-style web distribution | Still useful for older Source engine communities. |
| `ftp` | FTP admin | Required | File transfer service, access rights | Needs security review but remains important. |
| `gamemanager` | Server monitor, lifecycle, logs, RCON | Required | Agent RPC, game XML, query libraries | Core customer workflow module. |
| `lgsl_with_img_mod` | LGSL server status images | Optional legacy | Query/image cache data | Secondary to agent truth. |
| `litefm` | In-panel file manager | Required | File system access rights | Should be the preferred in-panel file tool. |
| `lostpwd` | Password recovery | Required | Auth/account flow | Basic account support. |
| `modulemanager` | Module installation/configuration | Required | Module metadata | Admin maintenance tool. |
| `mysql` | MySQL hosting/admin | Required | MySQL service setup | Good future product tie-in for databases. |
| `news` | Legacy news/announcements | Optional legacy | Old CMS-like data | Consider hiding unless modernized. |
| `rcon` | RCON admin tool | Required | Server protocol support | Useful for commands, warnings, and scheduler integration. |
| `register` | Account registration | Required | Auth flow | Basic customer onboarding. |
| `server` | Server manager | Required | Agent/node management | Admin-facing node controls. |
| `settings` | Global settings | Required | Auth, site config | Admin configuration area. |
| `status` | Status page | Optional alpha | Status data | Not ready for customer-facing critical use. |
| `steam_workshop` | Legacy Workshop module | Optional deprecated | Workshop DB helpers | Hidden/deprecated in favor of `addonsmanager`. |
| `subusers` | Subuser permissions | Required | Authorization model | Important for commercial teams and communities. |
| `support` | Support landing page | Required | Ticketing/docs | Better as an entry point than the full ticket workflow. |
| `teamspeak3` | Teamspeak 3 web interface | Required if sold | TS3 service | Hide if not part of the product offering. |
| `tickets` | Support ticket system | Optional but useful | DB tables, attachments, notifications | Stronger support workflow than `support` alone. |
| `tshock` | Terraria/TShock utilities | Optional niche | Terraria/TShock game support | Expose only for supported games. |
| `update` | Panel updates | Required admin tool | Patch/update system | Admin-only maintenance. |
| `user_admin` | User management | Required | Auth/admin roles | Important for staff administration. |
| `user_games` | Server provisioning and assignment | Required | Game homes, ports, billing integration | Core provisioning path. |
| `util` | Utility tools | Required | Misc tools | Keep useful tools, hide legacy helpers that are not maintained. |
| Module | Purpose | Status | Recommendation |
|---|---|---|---|
| [`TS3Admin`](TS3Admin.md) | Teamspeak 3 admin interface | Functional / niche | Keep or hide depending on product line |
| [`administration`](administration.md) | Admin utilities and logging helpers | Functional / legacy-leaning | Keep |
| [`addonsmanager`](SERVER_CONTENT_MANAGER.md) | Server Content Manager | Functional / actively evolving | Keep / Improve |
| [`backup-restore`](backup-restore.md) | Backup and restore UI | Broken | Remove / Replace |
| [`billing`](billing.md) | Billing, provisioning, commerce | Functional / partial | Keep / Rewrite |
| [`circular`](circular.md) | Notification and circular messages | Functional | Keep / Improve |
| [`config_games`](config_games.md) | XML game definitions and CLI builder | Production / functional | Keep / Improve |
| [`cron`](SCHEDULER.md) | Scheduler / CRON | Functional / partial | Rewrite / Improve |
| [`dashboard`](dashboard.md) | Main landing dashboard | Functional | Keep / Improve |
| [`dsi`](dsi.md) | Dynamic Server Image | Legacy / functional | Keep / Audit |
| [`editconfigfiles`](editconfigfiles.md) | Config file shortcuts | Functional / partial | Keep / Improve |
| [`faq`](faq.md) | FAQ and help content | Functional | Keep / Improve |
| [`fast_download`](fast_download.md) | FastDL support | Functional | Keep |
| [`ftp`](ftp.md) | FTP administration | Functional / legacy-heavy | Keep / Rewrite |
| [`gamemanager`](GAMEMANAGER.md) | Server monitor, lifecycle, logs, RCON | Production / functional | Keep / Improve |
| [`lgsl_with_img_mod`](lgsl_with_img_mod.md) | LGSL server status images | Legacy | Deprecate / Keep as legacy |
| [`litefm`](litefm.md) | In-panel file manager | Functional | Keep / Improve |
| [`lostpwd`](lostpwd.md) | Password recovery | Functional | Keep |
| [`modulemanager`](modulemanager.md) | Module installation and access rights | Functional | Keep |
| [`mysql`](mysql.md) | MySQL hosting/admin | Functional / future-facing | Keep / Future |
| [`news`](news.md) | Legacy news / announcements | Legacy | Deprecate / Hide unless modernized |
| [`rcon`](rcon.md) | RCON admin tool | Functional | Keep / Improve |
| [`register`](register.md) | Account registration | Functional | Keep |
| [`server`](server.md) | Remote server and node manager | Production / administrative | Keep / Improve |
| [`settings`](settings.md) | Panel settings and themes | Production | Keep |
| [`status`](status.md) | Status page | Experimental / alpha | Rewrite / Deprecate |
| [`steam_workshop`](steam_workshop.md) | Legacy Workshop module | Deprecated | Deprecate / Merge |
| [`subusers`](subusers.md) | Subuser permissions | Functional | Keep / Improve |
| [`support`](support.md) | Support landing page | Functional | Keep / Merge with tickets workflow |
| [`teamspeak3`](teamspeak3.md) | Teamspeak 3 web interface | Functional if sold | Keep or hide based on product line |
| [`tickets`](tickets.md) | Support ticket system | Production / functional | Keep / Improve |
| [`tshock`](tshock.md) | Terraria/TShock utilities | Alpha / partial | Keep conditional / Improve |
| [`update`](update.md) | Panel update tooling | Production / admin-only | Keep |
| [`user_admin`](user_admin.md) | User management | Production | Keep / Improve |
| [`user_games`](user_games.md) | Server provisioning and assignment | Production / functional | Keep / Improve |
| [`util`](util.md) | Miscellaneous utility tools | Functional / mixed | Keep / Rewrite selectively |
## Dependency Notes
## Shared Dependencies
Common dependencies across many modules:
- `includes/lib_remote.php`
- `Panel/includes/lib_remote.php`
- auth/session and role checks
- `config_games` XML parsing
- DB access helpers
- database access helpers
- server home and IP/port records
## High-Value Modules
@ -65,4 +65,3 @@ The modules most likely to matter in future investigations are:
8. `billing`
9. `tickets`
10. `subusers`

52
docs/modules/TS3Admin.md Normal file
View file

@ -0,0 +1,52 @@
# TS3Admin
## Purpose
Teamspeak 3 admin interface module.
## Current Status
- Functional
- Niche
## Dependencies
- TS3 server administration data
- Teamspeak 3 service access
## Database Tables
- `ts3_homes`
## Agent Interaction
- indirect through TS3 service administration
## User Workflow
- manage TS3 service associations
## Admin Workflow
- configure TS3 homes and credentials
## Security Concerns
- Teamspeak credentials and host access
## Known Issues
- separate niche module from the game-server core
## Missing Functionality
- clearer docs and product positioning
## Suggested Future Improvements
- keep only if TS3 hosting is part of the offering
## Recommendation
- Keep / Hide depending on product line

View file

@ -0,0 +1,60 @@
# Administration
## Purpose
Admin utilities and logging helpers, including the watch logger and external link storage.
## Current Status
- Functional
- Legacy-leaning
## Dependencies
- Panel admin pages
- `adminExternalLinks` table
- `logger` table
## Database Tables
- `adminExternalLinks`
- `logger`
## Agent Interaction
- None directly
## User Workflow
- Not customer-facing
## Admin Workflow
- manage external admin links
- inspect logger records
- use watch logger tools
## Security Concerns
- admin-only access
- log visibility should be role-gated
## Known Issues
- legacy UI patterns
- limited product value compared to newer notification/support systems
## Missing Functionality
- modern audit/log search
- tighter integration with support and notifications
## Suggested Future Improvements
- merge logger views into a unified audit area
- replace old link utilities with clearer admin widgets
## Recommendation
- Keep

View file

@ -0,0 +1,62 @@
# Backup Restore
## Purpose
Backup and restore UI for game server homes.
## Current Status
- Broken
- Testing-phase messaging in code
## Dependencies
- Hard-coded backup paths and external backup host details in module code
- Manual shell execution
## Database Tables
- None declared in module metadata
## Agent Interaction
- Not a clean agent-driven workflow
## User Workflow
- Customer-facing but not production-ready
## Admin Workflow
- currently used as an experimental/testing interface only
## Security Concerns
- hard-coded paths
- hard-coded credentials style behavior
- shell command construction
- not safe as a production backup path
## Known Issues
- explicit "not working" messaging
- dry-run style behavior
- restore flow is not a real product workflow
## Missing Functionality
- real backup job model
- retention policy
- restore verification
- download/export
- agent-integrated backup execution
## Suggested Future Improvements
- replace with a managed backup system
- move backup state and logs into the Panel/agent architecture
## Recommendation
- Remove / Replace

73
docs/modules/billing.md Normal file
View file

@ -0,0 +1,73 @@
# Billing
## Purpose
Commercial billing, provisioning, invoices, orders, transactions, coupons, and payment gateway integration.
## Current Status
- Functional
- Partial / complex
## Dependencies
- Payment gateways
- provisioning flow
- server lifecycle and expiration logic
- docs under `Panel/modules/billing/docs/`
## Database Tables
- `billing_services`
- `billing_orders`
- `billing_invoices`
- `billing_transactions`
- `billing_coupons`
- `billing_config`
- `billing_paypal_webhook_events`
- `billing_paypal_errors`
## Agent Interaction
- indirect through provisioning and server lifecycle
## User Workflow
- shop/service purchase
- invoice/payment flow
- renewals
- account/service status
## Admin Workflow
- configure payment gateways
- manage coupons and pricing
- inspect invoices/transactions
- manage provisioning behavior
## Security Concerns
- payment keys and webhook secrets
- user identity and billing data
- service suspension/expiration behavior
## Known Issues
- large and complex module surface
- requires strong testing around provisioning lifecycle
## Missing Functionality
- cleaner linkage from billing events to server state
- clearer expiration/suspension docs and UX
## Suggested Future Improvements
- simplify provisioning audit
- add clearer service lifecycle feedback
- link billing more directly to support and server monitor
## Recommendation
- Keep / Rewrite

57
docs/modules/circular.md Normal file
View file

@ -0,0 +1,57 @@
# Circular
## Purpose
Admin notifications / circular messages for broadcasting announcements to users.
## Current Status
- Functional
## Dependencies
- Panel notification flow
- user recipient tracking
## Database Tables
- `circular`
- `circular_recipients`
## Agent Interaction
- None directly
## User Workflow
- receive announcements / notifications
## Admin Workflow
- create a circular message
- target recipients
- review delivery state
## Security Concerns
- message content should be sanitized
- recipient scoping must be correct
## Known Issues
- older notification pattern
## Missing Functionality
- richer maintenance scheduling integration
- email/Discord bridge
## Suggested Future Improvements
- integrate with support and maintenance alerts
- expose clearer read/unread state
## Recommendation
- Keep / Improve

View file

@ -0,0 +1,69 @@
# Config Games
## Purpose
Game XML definitions, CLI parameter generation, mod definitions, and custom field mapping.
## Current Status
- Production
- Functional
## Dependencies
- XML schema
- XML parser
- gamemanager
- user_games
- file/config editing tools
## Database Tables
- `config_homes`
- `config_mods`
## Agent Interaction
- drives startup command construction
- influences query and control protocol handling
## User Workflow
- select a game definition
- configure startup parameters
- view/edit common CLI values
- work with custom fields
## Admin Workflow
- create/update XML game configs
- define mods, CLI params, ports, and custom fields
- validate XML structure
## Security Concerns
- parameter injection
- shell escaping
- path validation
## Known Issues
- schema is powerful but broad
- some capabilities are encoded implicitly instead of declaratively
## Missing Functionality
- first-class workshop/content capability declarations
- first-class scheduler capability declarations
- richer docs metadata
## Suggested Future Improvements
- extend XML capability model
- document supported variables and examples more clearly
- tie docs generation into XML
## Recommendation
- Keep / Improve

69
docs/modules/cron.md Normal file
View file

@ -0,0 +1,69 @@
# Cron
## Purpose
Scheduler / CRON for game server automation.
## Current Status
- Functional
- Partial
## Dependencies
- Panel action selectors
- agent scheduler tasks
- server monitor and content systems
## Database Tables
- None declared by the module metadata
## Agent Interaction
- `scheduler_add_task`
- `scheduler_edit_task`
- `scheduler_del_task`
- `scheduler_list_tasks`
- `scheduler_read_tasks`
## User Workflow
- create recurring server actions
- review task list and event output
## Admin Workflow
- create server-wide tasks
- create raw command tasks
- manage server content action automation
## Security Concerns
- raw commands can be dangerous
- API tokens in callbacks need careful handling
- customer-safe actions must be separated from admin-only actions
## Known Issues
- too command-string oriented
- limited task history
- overlap and conflict rules are weak
## Missing Functionality
- typed action registry
- task run history
- notifications
- missed-run handling
## Suggested Future Improvements
- rebuild around safe actions
- add structured logs and result states
- make customer-safe actions distinct from admin actions
## Recommendation
- Rewrite / Improve

53
docs/modules/dashboard.md Normal file
View file

@ -0,0 +1,53 @@
# Dashboard
## Purpose
Main landing dashboard with widgets and quick server overview.
## Current Status
- Functional
## Dependencies
- Panel dashboard widgets
- user permissions
## Database Tables
- `widgets`
- `widgets_users`
## Agent Interaction
- indirect through monitor widgets and server summaries
## User Workflow
- view server summary widgets
- access quick links
## Admin Workflow
- manage dashboard widgets and layout
## Security Concerns
- widget visibility should respect permissions
## Known Issues
- some default widgets are legacy
## Missing Functionality
- richer status and alert surfaces
## Suggested Future Improvements
- surface lifecycle state, support, billing, and docs more prominently
## Recommendation
- Keep / Improve

52
docs/modules/dsi.md Normal file
View file

@ -0,0 +1,52 @@
# Dynamic Server Image
## Purpose
Dynamic server image and artwork management for server cards.
## Current Status
- Functional
- Legacy / niche
## Dependencies
- cached server images
- game-specific artwork assets
## Database Tables
- None declared in module metadata
## Agent Interaction
- None directly
## User Workflow
- view server images in dashboard/status contexts
## Admin Workflow
- configure imagery and defaults
## Security Concerns
- image cache and file path safety
## Known Issues
- niche module with limited platform-critical value
## Missing Functionality
- clearer integration with docs and server cards
## Suggested Future Improvements
- keep only if the product uses it heavily
## Recommendation
- Keep / Audit

View file

@ -0,0 +1,55 @@
# Edit Config Files
## Purpose
Game-specific shortcuts for editing common configuration files.
## Current Status
- Functional
- Partial
## Dependencies
- game XML
- file manager / remote read-write helpers
## Database Tables
- None declared in module metadata
## Agent Interaction
- remote file read/write
## User Workflow
- open common config files quickly
- edit and save them
## Admin Workflow
- define which files are surfaced and how
## Security Concerns
- path validation
- protected file roots
## Known Issues
- can become a simple wrapper around file editing without enough game context
## Missing Functionality
- backup-before-save
- better docs and common file shortcuts
## Suggested Future Improvements
- tie to XML docs and common config templates
## Recommendation
- Keep / Improve

51
docs/modules/faq.md Normal file
View file

@ -0,0 +1,51 @@
# F.A.Q.
## Purpose
Basic help and FAQ content for users.
## Current Status
- Functional
## Dependencies
- site help content
- docs links
## Database Tables
- None declared in module metadata
## Agent Interaction
- None directly
## User Workflow
- read help content
## Admin Workflow
- maintain FAQ content
## Security Concerns
- content sanitization
## Known Issues
- limited compared to full docs system
## Missing Functionality
- game-aware docs integration
## Suggested Future Improvements
- link FAQ entries to module and game docs
## Recommendation
- Keep / Improve

View file

@ -0,0 +1,53 @@
# Fast Download
## Purpose
FastDL support for Source/GoldSrc style content distribution.
## Current Status
- Functional
## Dependencies
- web server / FastDL setup
- access rules
## Database Tables
- `fastdl_access_rules`
- `fastdl_settings`
## Agent Interaction
- fastdl service management through agent RPC
## User Workflow
- download client assets faster from the server host
## Admin Workflow
- configure rules and server settings
## Security Concerns
- file exposure rules
- bandwidth / access control
## Known Issues
- niche feature set
## Missing Functionality
- better UI and docs
## Suggested Future Improvements
- keep for Source-family communities
## Recommendation
- Keep

59
docs/modules/ftp.md Normal file
View file

@ -0,0 +1,59 @@
# FTP
## Purpose
FTP administration and access control for server homes.
## Current Status
- Functional
- Legacy-heavy
## Dependencies
- FTP service / access credentials
- file management permissions
## Database Tables
- None declared in module metadata
## Agent Interaction
- FTP manager helpers through `lib_remote.php`
## User Workflow
- receive FTP credentials
- upload/download files through FTP client software
## Admin Workflow
- configure FTP access behavior
- manage permissions
## Security Concerns
- credentials
- root/path exposure
- embedded legacy net2ftp code
## Known Issues
- old embedded FTP UI stack
- security review needed
## Missing Functionality
- cleaner modern FTP/SFTP guidance
- clear boundary to protect agent/control files
## Suggested Future Improvements
- keep FTP as an advanced access path
- audit or replace the embedded UI layer
## Recommendation
- Keep / Rewrite

View file

@ -0,0 +1,4 @@
# gamemanager
This page is an alias for [GAMEMANAGER.md](GAMEMANAGER.md). The full module documentation lives there.

View file

@ -0,0 +1,53 @@
# LGSL With Image Mod
## Purpose
Legacy LGSL status listing and image-based server display.
## Current Status
- Legacy
- Functional for query display
## Dependencies
- LGSL query data
- cached image assets
## Database Tables
- `lgsl`
## Agent Interaction
- query-based display only
## User Workflow
- view public-facing server status images
## Admin Workflow
- manage LGSL entries
## Security Concerns
- query trust should not be treated as server truth
## Known Issues
- legacy status approach
- overlaps with modern agent status reporting
## Missing Functionality
- clearer integration with the current status model
## Suggested Future Improvements
- keep only where the image-based listing is still desired
## Recommendation
- Deprecate / Keep as legacy

61
docs/modules/litefm.md Normal file
View file

@ -0,0 +1,61 @@
# Lite File Manager
## Purpose
In-panel file manager and file editor for customer server homes.
## Current Status
- Functional
- Important core tool
## Dependencies
- file access rights
- remote file read/write/list helpers
- editor assets
## Database Tables
- None declared in module metadata
## Agent Interaction
- remote file listings
- read/write operations
## User Workflow
- browse files
- upload/download
- edit common configs
## Admin Workflow
- set file management permissions
- configure file manager behavior
## Security Concerns
- path traversal
- protected control files
- shared secret exposure
## Known Issues
- should be hardened around safe roots and backups
## Missing Functionality
- stronger backup-before-save
- better large file handling
- clearer read-only protected path UX
## Suggested Future Improvements
- make this the preferred editor and file browsing path
## Recommendation
- Keep / Improve

50
docs/modules/lostpwd.md Normal file
View file

@ -0,0 +1,50 @@
# Lost Password
## Purpose
Password recovery flow for users.
## Current Status
- Functional
## Dependencies
- auth and email recovery flow
## Database Tables
- None declared in module metadata
## Agent Interaction
- None directly
## User Workflow
- request password reset
## Admin Workflow
- not a primary admin surface
## Security Concerns
- reset tokens and email verification must be secure
## Known Issues
- basic account-management module
## Missing Functionality
- richer account recovery UX
## Suggested Future Improvements
- keep stable and simple
## Recommendation
- Keep

View file

@ -0,0 +1,52 @@
# Module Manager
## Purpose
Install and manage Panel modules and access rights.
## Current Status
- Functional
## Dependencies
- module metadata
- access rights registry
## Database Tables
- `module_access_rights`
## Agent Interaction
- None directly
## User Workflow
- none, admin-only
## Admin Workflow
- enable/disable modules
- manage access flags
## Security Concerns
- module access rights control what users can see and do
## Known Issues
- older module administration workflow
## Missing Functionality
- better module documentation and dependency graph
## Suggested Future Improvements
- surface module health and compatibility more clearly
## Recommendation
- Keep

53
docs/modules/mysql.md Normal file
View file

@ -0,0 +1,53 @@
# MySQL
## Purpose
MySQL hosting/admin module for servers and databases.
## Current Status
- Functional
- Future-facing
## Dependencies
- MySQL service setup
- server assignment
## Database Tables
- `mysql_servers`
- `mysql_databases`
## Agent Interaction
- indirect service provisioning
## User Workflow
- create/manage databases when enabled
## Admin Workflow
- configure MySQL servers and permissions
## Security Concerns
- database credentials and privilege strings
## Known Issues
- not a central focus of the current product line
## Missing Functionality
- clearer customer-facing DB hosting UX
## Suggested Future Improvements
- improve if DB hosting is part of the offering
## Recommendation
- Keep / Future

51
docs/modules/news.md Normal file
View file

@ -0,0 +1,51 @@
# NewsLister
## Purpose
Legacy news and announcement module.
## Current Status
- Legacy
- Optional
## Dependencies
- old CMS-style content
## Database Tables
- none declared in module metadata
## Agent Interaction
- None directly
## User Workflow
- view announcements/news posts
## Admin Workflow
- create/edit news content
## Security Concerns
- old content system patterns
## Known Issues
- legacy news/lister architecture
## Missing Functionality
- modern notification and maintenance messaging
## Suggested Future Improvements
- replace with circular notifications or a modern announcements system
## Recommendation
- Deprecate / Hide unless modernized

53
docs/modules/rcon.md Normal file
View file

@ -0,0 +1,53 @@
# Rcon
## Purpose
Admin RCON interface for issuing console commands to supported game servers.
## Current Status
- Functional
## Dependencies
- server control protocol support
- gamemanager
## Database Tables
- none declared in module metadata
## Agent Interaction
- sends RCON/console commands through the agent
## User Workflow
- usually not customer-facing
## Admin Workflow
- run commands
- support warning messages and diagnostics
## Security Concerns
- command validation
- log every command
## Known Issues
- command safety depends heavily on module-specific restrictions
## Missing Functionality
- richer presets and command history
## Suggested Future Improvements
- integrate more tightly with scheduler warnings and support workflows
## Recommendation
- Keep / Improve

51
docs/modules/register.md Normal file
View file

@ -0,0 +1,51 @@
# Register
## Purpose
User registration module.
## Current Status
- Functional
## Dependencies
- auth and account creation flow
## Database Tables
- none declared in module metadata
## Agent Interaction
- None directly
## User Workflow
- create an account
## Admin Workflow
- not an admin surface
## Security Concerns
- registration abuse prevention
- email validation
## Known Issues
- basic account onboarding module
## Missing Functionality
- richer onboarding / invitation flows
## Suggested Future Improvements
- keep stable and minimal
## Recommendation
- Keep

59
docs/modules/server.md Normal file
View file

@ -0,0 +1,59 @@
# Server Manager
## Purpose
Remote server/node management in the Panel.
## Current Status
- Production
- Administrative
## Dependencies
- remote server records
- port arrangements
- agent connection settings
## Database Tables
- `remote_server_ips`
- `remote_servers`
- `arrange_ports`
## Agent Interaction
- manages the agent endpoints and node-level data
## User Workflow
- not usually customer-facing
## Admin Workflow
- add/remove remote servers
- manage IPs, ports, NAT, firewall settings
- review node configuration
## Security Concerns
- encryption keys
- timeout settings
- firewall/IP exposure
## Known Issues
- admin UX is older and could be clearer
## Missing Functionality
- richer node health and capacity dashboard
## Suggested Future Improvements
- improve node monitoring and provisioning diagnostics
## Recommendation
- Keep / Improve

51
docs/modules/settings.md Normal file
View file

@ -0,0 +1,51 @@
# Settings
## Purpose
Panel settings, theme settings, and core site configuration.
## Current Status
- Production
## Dependencies
- auth/admin configuration
## Database Tables
- `settings`
## Agent Interaction
- None directly
## User Workflow
- none, admin-only
## Admin Workflow
- update panel settings
- update theme settings
## Security Concerns
- global configuration values need protection
## Known Issues
- basic settings model
## Missing Functionality
- clearer configuration grouping and validation
## Suggested Future Improvements
- improve admin UX and settings validation
## Recommendation
- Keep

52
docs/modules/status.md Normal file
View file

@ -0,0 +1,52 @@
# Status
## Purpose
Admin status page for server/node state.
## Current Status
- Experimental
- Alpha
## Dependencies
- status data
- node/server metadata
## Database Tables
- none declared in module metadata
## Agent Interaction
- may read status summaries
## User Workflow
- not a primary customer workflow
## Admin Workflow
- inspect status information
## Security Concerns
- should not expose sensitive details without permissions
## Known Issues
- alpha-grade module
## Missing Functionality
- stable dashboard integration
## Suggested Future Improvements
- replace with a proper node health/status dashboard
## Recommendation
- Rewrite / Deprecate

View file

@ -0,0 +1,55 @@
# Steam Workshop
## Purpose
Legacy standalone Steam Workshop support.
## Current Status
- Deprecated
- Compatibility only
## Dependencies
- Steam Workshop DB helpers
- legacy helper functions
## Database Tables
- `steam_workshop_game_profiles`
- `steam_workshop_server_mods`
- `steam_workshop_server_settings`
## Agent Interaction
- workshop download/update helpers
## User Workflow
- legacy workshop path only
## Admin Workflow
- legacy migration / compatibility
## Security Concerns
- should not compete with the current Server Content Manager
## Known Issues
- explicitly deprecated in code comments
## Missing Functionality
- modern unified Workshop/content UX
## Suggested Future Improvements
- keep only compatibility helpers
- migrate users into `addonsmanager`
## Recommendation
- Deprecate / Merge

52
docs/modules/subusers.md Normal file
View file

@ -0,0 +1,52 @@
# Subusers
## Purpose
Subuser permissions and delegated access management.
## Current Status
- Functional
## Dependencies
- user/group permission model
- server access rights
## Database Tables
- not declared in the module metadata file itself
## Agent Interaction
- None directly
## User Workflow
- grant access to another user
- share server management rights
## Admin Workflow
- manage permission scope and delegated access
## Security Concerns
- permissions must be scoped tightly to avoid over-sharing
## Known Issues
- module documentation is sparse in code
## Missing Functionality
- clearer UI around per-server and per-feature permissions
## Suggested Future Improvements
- tie subusers into files, scheduler, content, and support permissions more explicitly
## Recommendation
- Keep / Improve

52
docs/modules/support.md Normal file
View file

@ -0,0 +1,52 @@
# Support
## Purpose
Simple support landing page for users.
## Current Status
- Functional
- Landing page only
## Dependencies
- ticketing / docs / contact flows
## Database Tables
- none declared in module metadata
## Agent Interaction
- none directly
## User Workflow
- open support entry point
## Admin Workflow
- connect support entry points to tickets and docs
## Security Concerns
- support forms must respect auth and privacy
## Known Issues
- limited compared with the tickets module
## Missing Functionality
- server context auto-attach
- ticket creation workflow
## Suggested Future Improvements
- keep as a support landing page and route users to tickets/docs
## Recommendation
- Keep / Merge with tickets workflow

View file

@ -0,0 +1,50 @@
# Teamspeak 3 Web Interface
## Purpose
Web interface for Teamspeak 3 hosting.
## Current Status
- Functional if Teamspeak hosting is part of the offering
## Dependencies
- Teamspeak 3 service support
## Database Tables
- none declared in module metadata
## Agent Interaction
- TS3 service control and web interface integration
## User Workflow
- manage Teamspeak 3 resources
## Admin Workflow
- provide or hide TS3 support depending on the product line
## Security Concerns
- TS3 credentials and service access
## Known Issues
- separate from the game server core experience
## Missing Functionality
- clearer product documentation
## Suggested Future Improvements
- keep only if TS3 is a product line
## Recommendation
- Keep / Hide depending on product strategy

63
docs/modules/tickets.md Normal file
View file

@ -0,0 +1,63 @@
# Tickets
## Purpose
Support ticket system with messages, attachments, and settings.
## Current Status
- Production
- Functional
## Dependencies
- auth/session
- support workflows
- attachment storage
## Database Tables
- `tickets`
- `ticket_messages`
- `ticket_attachments`
- `ticket_settings`
## Agent Interaction
- indirect via server-context support requests
## User Workflow
- create ticket
- reply
- upload attachments
- track status
## Admin Workflow
- respond to tickets
- manage settings
- moderate attachments and ratings
## Security Concerns
- attachment size and file type limits
- privacy of server and billing context
## Known Issues
- should be more tightly linked to server monitor and logs
## Missing Functionality
- automatic server context attachment
- support escalation flow
## Suggested Future Improvements
- integrate server state, recent logs, and account context
## Recommendation
- Keep / Improve

4
docs/modules/ts3admin.md Normal file
View file

@ -0,0 +1,4 @@
# ts3admin
This page is an alias for [TS3Admin.md](TS3Admin.md). The full module documentation lives there.

54
docs/modules/tshock.md Normal file
View file

@ -0,0 +1,54 @@
# TShock
## Purpose
Terraria / TShock-specific support module.
## Current Status
- Alpha
- Partial
## Dependencies
- Terraria/TShock server support
- token management
## Database Tables
- `tshock`
## Agent Interaction
- token and server data used for TShock support
## User Workflow
- only for compatible Terraria servers
## Admin Workflow
- configure and manage TShock-specific settings
## Security Concerns
- token storage
- compatibility gating
## Known Issues
- alpha status
- should only appear for the right game types
## Missing Functionality
- complete docs and tighter game capability gating
## Suggested Future Improvements
- expose only when XML/game capability says Terraria/TShock
## Recommendation
- Keep conditional / Improve

55
docs/modules/update.md Normal file
View file

@ -0,0 +1,55 @@
# Update
## Purpose
Panel update and patch management.
## Current Status
- Production
- Admin-only
## Dependencies
- patch and update logs
- admin access
## Database Tables
- `update_blacklist`
- `panel_update_log`
- `update_patches`
## Agent Interaction
- indirect if patch operations touch remote systems
## User Workflow
- none, admin-only
## Admin Workflow
- inspect and apply updates
- review patch logs
## Security Concerns
- updates modify the control plane itself
## Known Issues
- can be confusing if not clearly separated from game-server updates
## Missing Functionality
- clearer update history and rollback guidance
## Suggested Future Improvements
- keep admin-only and document carefully
## Recommendation
- Keep

View file

@ -0,0 +1,58 @@
# User Admin
## Purpose
User, role, and group administration.
## Current Status
- Production
## Dependencies
- auth system
- role and group tables
## Database Tables
- `users`
- `user_groups`
- `user_role_info`
- `user_group_info`
## Agent Interaction
- none directly
## User Workflow
- account management
## Admin Workflow
- create/edit users
- manage groups and roles
- set page limits and email preferences
## Security Concerns
- password handling
- email uniqueness
- group permissions
## Known Issues
- older role/group model
## Missing Functionality
- more explicit per-feature permissions
## Suggested Future Improvements
- tie roles into server content, scheduler, files, and billing more clearly
## Recommendation
- Keep / Improve

View file

@ -0,0 +1,68 @@
# User Games
## Purpose
Server provisioning, assignment, cloning, expiration, and home management.
## Current Status
- Production
- Functional
## Dependencies
- billing lifecycle
- server manager
- game XML configs
- Panel agent provisioning calls
## Database Tables
- `user_homes`
- `user_group_remote_servers`
- `user_group_homes`
- `master_server_homes`
## Agent Interaction
- provisioning and clone operations
- installation commands
- expiration handling
## User Workflow
- get assigned a server
- edit home details
- clone or migrate when allowed
- check expiration
## Admin Workflow
- create servers
- assign homes
- migrate homes
- manage install commands and custom fields
## Security Concerns
- port allocation
- password generation
- ownership and permission boundaries
## Known Issues
- provisioning is a critical path and needs audit-grade reliability
## Missing Functionality
- clearer install/provisioning progress
- stronger post-create verification
## Suggested Future Improvements
- make provisioning more transparent and testable
## Recommendation
- Keep / Improve

51
docs/modules/util.md Normal file
View file

@ -0,0 +1,51 @@
# Utilities
## Purpose
Miscellaneous utility tools such as Steam ID conversion and game-adjacent helpers.
## Current Status
- Mixed
- Functional but partly legacy
## Dependencies
- PHP BCMath extension
## Database Tables
- None declared in module metadata
## Agent Interaction
- some helper tools may use remote data or agent info
## User Workflow
- use helper tools when relevant
## Admin Workflow
- audit utilities and decide which are still product-relevant
## Security Concerns
- utility tools should not leak secrets or overreach permissions
## Known Issues
- mixed-value tool collection
## Missing Functionality
- clear product grouping and documentation
## Suggested Future Improvements
- keep useful tools, hide obsolete ones, and document by game relevance
## Recommendation
- Keep / Rewrite selectively