complete codex docs
This commit is contained in:
parent
b5dcf01a8c
commit
3cefad183d
62 changed files with 2730 additions and 50 deletions
112
README.md
Normal file
112
README.md
Normal 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/`
|
||||
129
docs/architecture/API_REFERENCE.md
Normal file
129
docs/architecture/API_REFERENCE.md
Normal 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.
|
||||
|
||||
29
docs/decisions/0001-screen-vs-tmux.md
Normal file
29
docs/decisions/0001-screen-vs-tmux.md
Normal 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.
|
||||
|
||||
32
docs/decisions/0002-status-detection.md
Normal file
32
docs/decisions/0002-status-detection.md
Normal 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.
|
||||
|
||||
29
docs/decisions/0003-companion-programs.md
Normal file
29
docs/decisions/0003-companion-programs.md
Normal 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.
|
||||
|
||||
26
docs/decisions/0004-workshop-system.md
Normal file
26
docs/decisions/0004-workshop-system.md
Normal 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.
|
||||
|
||||
26
docs/decisions/0005-control-path-layout.md
Normal file
26
docs/decisions/0005-control-path-layout.md
Normal 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.
|
||||
|
||||
28
docs/decisions/0006-installers.md
Normal file
28
docs/decisions/0006-installers.md
Normal 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
21
docs/decisions/README.md
Normal 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.
|
||||
|
||||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
39
docs/features/COMPANION_PROGRAMS.md
Normal file
39
docs/features/COMPANION_PROGRAMS.md
Normal 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.
|
||||
|
||||
34
docs/features/COMPETITOR_COMPARISON.md
Normal file
34
docs/features/COMPETITOR_COMPARISON.md
Normal 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
|
||||
|
||||
26
docs/features/FILE_EDITOR.md
Normal file
26
docs/features/FILE_EDITOR.md
Normal 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.
|
||||
|
||||
25
docs/features/FTP_SYSTEM.md
Normal file
25
docs/features/FTP_SYSTEM.md
Normal 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
|
||||
|
||||
27
docs/features/INSTALLERS.md
Normal file
27
docs/features/INSTALLERS.md
Normal 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.
|
||||
|
||||
33
docs/features/LOGGING_SYSTEM.md
Normal file
33
docs/features/LOGGING_SYSTEM.md
Normal 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
|
||||
|
||||
38
docs/features/PROVISIONING.md
Normal file
38
docs/features/PROVISIONING.md
Normal 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
|
||||
|
||||
27
docs/features/RCON_SYSTEM.md
Normal file
27
docs/features/RCON_SYSTEM.md
Normal 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
|
||||
|
||||
35
docs/features/SCHEDULER_SYSTEM.md
Normal file
35
docs/features/SCHEDULER_SYSTEM.md
Normal 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
31
docs/games/README.md
Normal 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.
|
||||
|
||||
|
|
@ -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
52
docs/modules/TS3Admin.md
Normal 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
|
||||
|
||||
60
docs/modules/administration.md
Normal file
60
docs/modules/administration.md
Normal 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
|
||||
|
||||
62
docs/modules/backup-restore.md
Normal file
62
docs/modules/backup-restore.md
Normal 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
73
docs/modules/billing.md
Normal 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
57
docs/modules/circular.md
Normal 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
|
||||
|
||||
69
docs/modules/config_games.md
Normal file
69
docs/modules/config_games.md
Normal 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
69
docs/modules/cron.md
Normal 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
53
docs/modules/dashboard.md
Normal 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
52
docs/modules/dsi.md
Normal 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
|
||||
|
||||
55
docs/modules/editconfigfiles.md
Normal file
55
docs/modules/editconfigfiles.md
Normal 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
51
docs/modules/faq.md
Normal 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
|
||||
|
||||
53
docs/modules/fast_download.md
Normal file
53
docs/modules/fast_download.md
Normal 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
59
docs/modules/ftp.md
Normal 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
|
||||
|
||||
4
docs/modules/gamemanager.md
Normal file
4
docs/modules/gamemanager.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# gamemanager
|
||||
|
||||
This page is an alias for [GAMEMANAGER.md](GAMEMANAGER.md). The full module documentation lives there.
|
||||
|
||||
53
docs/modules/lgsl_with_img_mod.md
Normal file
53
docs/modules/lgsl_with_img_mod.md
Normal 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
61
docs/modules/litefm.md
Normal 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
50
docs/modules/lostpwd.md
Normal 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
|
||||
|
||||
52
docs/modules/modulemanager.md
Normal file
52
docs/modules/modulemanager.md
Normal 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
53
docs/modules/mysql.md
Normal 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
51
docs/modules/news.md
Normal 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
53
docs/modules/rcon.md
Normal 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
51
docs/modules/register.md
Normal 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
59
docs/modules/server.md
Normal 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
51
docs/modules/settings.md
Normal 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
52
docs/modules/status.md
Normal 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
|
||||
|
||||
55
docs/modules/steam_workshop.md
Normal file
55
docs/modules/steam_workshop.md
Normal 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
52
docs/modules/subusers.md
Normal 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
52
docs/modules/support.md
Normal 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
|
||||
|
||||
50
docs/modules/teamspeak3.md
Normal file
50
docs/modules/teamspeak3.md
Normal 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
63
docs/modules/tickets.md
Normal 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
4
docs/modules/ts3admin.md
Normal 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
54
docs/modules/tshock.md
Normal 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
55
docs/modules/update.md
Normal 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
|
||||
|
||||
58
docs/modules/user_admin.md
Normal file
58
docs/modules/user_admin.md
Normal 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
|
||||
|
||||
68
docs/modules/user_games.md
Normal file
68
docs/modules/user_games.md
Normal 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
51
docs/modules/util.md
Normal 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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue