moved website outside of panel folder

This commit is contained in:
Frank Harris 2026-05-13 20:00:40 -04:00
parent 92ac778956
commit 08f07dca97
10328 changed files with 90 additions and 501 deletions

View file

@ -1,16 +0,0 @@
- Auto-detect which server configs actually support Steam Workshop before showing adapter controls.
- Allow players/admins to reorder selected Workshop mods in the new picker UI so load order matches game expectations.
- Surface pagination controls in the Workshop picker so users can request additional batches from the new Steam Web API search endpoint.
- Add an admin-facing toggle that makes it clear when the HTML scraper fallback is in use and lets staff force API-only mode if Valve ever objects.
- Add Workshop result preview thumbnails and author links in the picker for easier browsing.
- Add a lightweight admin UI report that flags remaining PHP files still relying on legacy PHP 7 constructs not covered by the automated compatibility pass.
- Add a side-by-side before/after diff preview panel to the config_games top-level XML section editor before section saves.
- Add an integration smoke test that exercises paid checkout, free checkout, and add-to-cart on installs with/without `period_start` to prevent billing schema drift regressions.
- Add a storefront visual-regression check at 375px and 430px breakpoints covering login, order, and cart pages to prevent mobile overflow regressions.
- Complete a full pass over all `modules/billing/docs/*` game guides to standardize OS/Workshop/RCON capability statements against current XML-backed server support.
- Add an automated billing provisioning integration test fixture that verifies arrange_ports exact/fallback allocation, duplicate-port protection, and home_id linkage after paid/free checkout.
- Add a billing UI badge/filter that distinguishes "pending install" vs "installed" states directly in customer/server order views.
- Add an admin billing orders "provisioning details" drawer that reads `modules/billing/logs/provisioning.log` and shows the latest mechanism/result/error per order without leaving the panel.
- Add an automated end-to-end check that verifies `create_servers.php` skips already-installed homes while still retrying existing-home orders with missing executable/IP-port/mod prerequisites.
- Add a repeatable QA fixture that exercises `modules/billing/logs/provisioning_trace.log` writability failures and verifies payment success pages surface the traced provision result for paid and free orders.
- Add an admin/serverlist UI badge that shows detected service OS variant (Windows/Linux/Any) from XML metadata next to each purchasable service row.

View file

@ -1,128 +0,0 @@
# GSP Installer Differences from Original OGP `install.php`
## Overview
`install.php` in this repository is a customized installer for the
**GSP (Game Server Panel)** maintained by WDS. It is based on the original
OGP installer at
<https://github.com/OpenGamePanel/OGP-Website/blob/master/install.php>
but has been adapted for the GSP/WDS environment.
---
## Key differences
### 1. Default table prefix: `gsp_`
The original OGP installer defaults to `ogp_`. Our installer defaults to
`gsp_` (the `$table_prefix` form field pre-fills with `gsp_`). You may
change this during installation.
### 2. Config file now includes `$db_port`
The generated `includes/config.inc.php` includes a `$db_port` variable:
```php
$db_host="HOST";
$db_port="3306";
$db_user="USER";
$db_pass="PASSWORD";
$db_name="DATABASE";
$table_prefix="gsp_";
$db_type="mysql";
```
Existing config files that predate this installer and lack `$db_port`
continue to work because the parameter defaults to `NULL` (MySQL default
port 3306).
### 3. MySQLi connection uses the port
`includes/database_mysqli.php` `OGPDatabaseMySQL::connect()` now
accepts an optional `$db_port` argument and passes it to `mysqli_connect()`:
```php
$this->link = mysqli_connect($db_host, $db_user, $db_pass, $db_name, $port);
```
`includes/helpers.php` `createDatabaseConnection()` likewise accepts
and forwards `$db_port`.
All panel entry points (`home.php`, `index.php`, `ogp_api.php`,
`server_status.php`, `modules/billing/cron-shop.php`,
`modules/billing/includes/panel_bridge.php`) pass
`isset($db_port) ? $db_port : NULL` when calling
`createDatabaseConnection()`.
### 4. Default admin account created automatically
After modules are installed, the installer automatically creates an `admin`
account with password `admin` using the existing `OGPDatabaseMySQL::addUser()`
method (which stores passwords as `MD5`). If an admin user already exists it
is **not** duplicated.
**Change the default password immediately after your first login.**
### 5. No prerequisite checks
Step 0 shows a welcome screen and language selector only. The original OGP
installer checks for required PHP extensions, Pear, etc. GSP skips those
checks because the deployment environment is pre-validated by our bootstrap
scripts.
### 6. All modules installed automatically
Every directory found under `modules/` is installed via
`install_module()`. Prerequisite failures for individual modules are treated
as warnings (not hard failures) so that the overall installation succeeds
even if optional dependencies are missing.
### 7. `ogp_``gsp_` table migration (optional, safe)
If the database already contains tables prefixed with `ogp_`:
* For each `ogp_X` table, if the corresponding `gsp_X` table does **not**
exist, it is renamed to `gsp_X`.
* If `gsp_X` already exists, the rename is skipped silently.
* The installer never aborts due to pre-existing tables.
This allows upgrading an existing OGP installation to GSP without losing data.
### 8. MD5 password hashing (legacy)
The `OGPDatabaseMySQL::addUser()` method stores passwords using `MD5()`.
This is legacy behaviour inherited from OGP and matches the existing panel
login system. MD5 is cryptographically broken for new systems; however,
changing the hashing scheme requires coordinated changes to the login code
(`index.php`, `modules/register/`, etc.) and is outside the scope of the
installer. Operators are strongly advised to audit and upgrade the hashing
scheme in a follow-up change.
### 9. Branding
The installer title and default site settings reference **GSP Game Server
Panel** and **WDS** instead of "Open Game Panel".
---
## Running the installer
1. Upload/deploy the panel files.
2. Ensure `includes/config.inc.php` is writable (or does not exist yet).
3. Open `https://yoursite/install.php` in a browser.
4. Select your language and click **Next**.
5. Enter database credentials and click **Next**.
6. The installer writes config, migrates tables (if needed), installs
modules, and creates the default admin account.
7. **Delete `install.php`** from the server after installation.
8. Optionally `chmod 644 includes/config.inc.php` for security.
---
## Rollback
* To re-run the installer, simply navigate to `install.php` again.
* If the wrong prefix was chosen, edit `includes/config.inc.php` manually or
re-run `install.php`.
* Renamed (`ogp_``gsp_`) tables can be manually renamed back with
`RENAME TABLE gsp_X TO ogp_X` in MySQL.