added link to RL projects

This commit is contained in:
Frank Harris 2026-06-16 16:28:05 -05:00
parent a49371c3dd
commit bb02be7daa
29 changed files with 325 additions and 36 deletions

View file

@ -1,6 +1,6 @@
# GSP / WDS Panel — Installer Guide
# GSP / Runlevel Systems Panel — Installer Guide
> **GSP is a heavily customized fork of OGP maintained by WDS.**
> **GSP is a heavily customized fork of OGP maintained by Runlevel Systems.**
---

View file

@ -1,10 +1,10 @@
<?php
/*
* GSP - Game Server Panel (WDS)
* GSP - Game Server Panel (Runlevel Systems)
* Copyright (C) 2008 - 2018 The OGP Development Team
* GSP customizations (C) WDS / GameServerPanel
* GSP customizations (C) Runlevel Systems / GameServerPanel
*
* GSP is a heavily customized fork of OGP maintained by WDS.
* GSP is a heavily customized fork of OGP maintained by Runlevel Systems.
* https://github.com/GameServerPanel/GSP
*
* Dependency Check Page check.php
@ -333,7 +333,7 @@ foreach ($rows as $r) {
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GSP / WDS Dependency Check</title>
<title>GSP / Runlevel Systems Dependency Check</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
@ -394,7 +394,7 @@ foreach ($rows as $r) {
<div class="container">
<div class="header">
<h1>🔍 GSP / WDS Dependency Check</h1>
<h1>🔍 GSP / Runlevel Systems Dependency Check</h1>
<p>This page checks the server environment for GSP panel compatibility.
Items marked <strong>Warning</strong> or <strong>Missing</strong> are non-blocking.
Items marked <strong>Error</strong> (e.g. unwritable <code>includes/</code> directory) <em>will</em> cause
@ -508,7 +508,7 @@ sudo systemctl restart apache2'
</tbody>
</table>
<footer>GSP / WDS Dependency Checker safe to run at any time &mdash; generated at <?= h(gmdate('Y-m-d H:i:s')) ?> UTC</footer>
<footer>GSP / Runlevel Systems Dependency Checker safe to run at any time &mdash; generated at <?= h(gmdate('Y-m-d H:i:s')) ?> UTC</footer>
</div>
</body>
</html>

View file

@ -3,10 +3,10 @@
## 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
**GSP (Game Server Panel)** maintained by Runlevel Systems. 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.
but has been adapted for the GSP/Runlevel Systems environment.
---
@ -101,7 +101,7 @@ 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".
Panel** and **Runlevel Systems** instead of "Open Game Panel".
---

View file

@ -1,6 +1,6 @@
# GameServer Panel Admin Guide
This document mirrors the internal WDS wiki entry so it can be viewed directly from the repository, packaged with releases, or imported into another wiki. It explains how we deploy, operate, and extend the GameServer Panel (GSP) fork of Open Game Panel.
This document mirrors the internal Runlevel Systems operations guide so it can be viewed directly from the repository, packaged with releases, or imported into another wiki. It explains how we deploy, operate, and extend the GameServer Panel (GSP) fork of Open Game Panel.
## Overview
@ -146,6 +146,6 @@ The full human-readable version is provided in [`documentation/xml-notes.md`](./
- **No panelStart wrapper** The agent handles PID tracking, console logs, and restart logic. Keep commands clean.
- **Logging** Agents write `ogp_agent.log`, `ogp_agent.pid`, `ogp_agent_run.pid`, and individual `console.log` files.
- **Stats database** Optional MySQL credentials in `Cfg/Config.pm` feed resource monitoring cron jobs.
- **Password rotation** Update credentials in `content/staff-passwords.txt` on the WDS website and regenerate secrets in the panel/agents at the same time.
- **Password rotation** Update credentials in `content/staff-passwords.txt` in the Runlevel Systems operations store and regenerate secrets in the panel/agents at the same time.
For deeper schema commentary, consult [`documentation/xml-notes.md`](./xml-notes.md) or import the Markdown into your preferred wiki.

View file

@ -54,6 +54,22 @@ function discordmsg($msg, $webhook) {
return $result;
}
function gsp_company_name(): string {
return 'Runlevel Systems';
}
function gsp_company_url(): string {
return 'https://runlevelsystems.com/';
}
function gsp_project_request_url(): string {
return 'https://runlevelsystems.com/start-project.php';
}
function gsp_panel_footer_copyright(): string {
return "\u{00A9} 2026 " . gsp_company_name();
}
//read_expire() converts a time stamp to a human readable form
//Used as a count down to when the user's account expires
@ -1108,4 +1124,3 @@ function deleteMysqlAddonDatabasesForGameServerHome($home_id){
return false;
}
?>

View file

@ -218,11 +218,11 @@ class OGPView {
if ( is_object($db) && array_key_exists( "OGPDatabase", class_parents($db) ) ) {
$footer .= "<div class=\"footer center\">";
$footer .= get_lang_f('cur_theme', !empty($_SESSION['users_theme']) ? $_SESSION['users_theme'] : @$panel_settings['theme']) . " - " . $db->getNbOfQueries()." ".get_lang('queries_executed');
$footer .= "<br />".get_lang('copyright')." &copy; <a href=\"http://www.opengamepanel.org\">Open Game Panel</a> " . date("Y") . " - ".get_lang('all_rights_reserved')." - <span class='versionInfo'>".get_lang('show_version')."</span><br /><div class='inline-block OGPVersionArea'><span class='version hide'>" . get_lang('version') . ":</span>&nbsp; <span class='hide versionNumber'>".@$panel_settings['ogp_version']."</span> <span class='copyVersionResult' lang='" . get_lang('copied') . "'></span></div></div>";
$footer .= "<br /><a class='footer-company-link' href=\"" . htmlspecialchars(gsp_company_url(), ENT_QUOTES, 'UTF-8') . "\" target=\"_blank\" rel=\"noopener noreferrer\">" . htmlspecialchars(gsp_panel_footer_copyright(), ENT_QUOTES, 'UTF-8') . "</a> - <span class='versionInfo'>".get_lang('show_version')."</span><br /><div class='inline-block OGPVersionArea'><span class='version hide'>" . get_lang('version') . ":</span>&nbsp; <span class='hide versionNumber'>".@$panel_settings['ogp_version']."</span> <span class='copyVersionResult' lang='" . get_lang('copied') . "'></span></div></div>";
}
else
{
$footer .= "<div class='footer center'>".get_lang('copyright')." &copy; <a href=\"http://www.opengamepanel.org\">Open Game Panel</a> " . date("Y") . " - ".get_lang('all_rights_reserved').".</div>";
$footer .= "<div class='footer center'><a class='footer-company-link' href=\"" . htmlspecialchars(gsp_company_url(), ENT_QUOTES, 'UTF-8') . "\" target=\"_blank\" rel=\"noopener noreferrer\">" . htmlspecialchars(gsp_panel_footer_copyright(), ENT_QUOTES, 'UTF-8') . "</a></div>";
}
// Add our magnific popup holder to the page (hidden element):

View file

@ -1,11 +1,11 @@
<?php
/*
*
* GSP - Game Server Panel (WDS)
* GSP - Game Server Panel (Runlevel Systems)
* Copyright (C) 2008 - 2018 The OGP Development Team
* GSP customizations (C) WDS / GameServerPanel
* GSP customizations (C) Runlevel Systems / GameServerPanel
*
* GSP is a heavily customized fork of OGP maintained by WDS.
* GSP is a heavily customized fork of OGP maintained by Runlevel Systems.
* https://github.com/GameServerPanel/GSP
*
* This program is free software; you can redistribute it and/or
@ -120,8 +120,8 @@ function install() {
}
echo "</tr>\n</table>\n";
echo "<div id=\"install-title\">GSP / WDS Panel Installer</div>";
echo "<p>Welcome to the <strong>GSP (Game Server Panel)</strong> installer, maintained by WDS.</p>";
echo "<div id=\"install-title\">GSP / Runlevel Systems Panel Installer</div>";
echo "<p>Welcome to the <strong>GSP (Game Server Panel)</strong> installer, maintained by Runlevel Systems.</p>";
echo "<p style='margin:8px 0;'><a href='check.php' style='background:#1565c0;color:#fff;padding:6px 14px;border-radius:5px;text-decoration:none;font-weight:bold;'>&#x1F50D; Run Dependency Check</a></p>";
echo "<p>GSP is a heavily customized fork of OGP. This installer will:</p>";
echo "<ul>
@ -515,7 +515,7 @@ function gsp_disable_installer() {
$stub = <<<'STUB'
<?php
/*
* GSP / WDS Installer bootstrap stub
* GSP / Runlevel Systems Installer bootstrap stub
*
* The full installer has been moved to install.php.bak after a successful
* installation to prevent accidental re-runs.

View file

@ -3,7 +3,7 @@
> **Module:** `Panel/modules/addonsmanager`
> **Status:** Phase 1 complete — UI/language cleanup, category map, VARCHAR(32) migration, installer documentation
> **Branch:** Panel-unstable
> **Maintained by:** WDS (GSP is a heavily customized fork of OGP)
> **Maintained by:** Runlevel Systems (GSP is a heavily customized fork of OGP)
---

View file

@ -2,7 +2,7 @@
<?php
/*
*
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
*
* Server Content Installer (module: addonsmanager, page: addons)
* ─────────────────────────────────────────────────────────────────────────────

View file

@ -2,7 +2,7 @@
<?php
/*
*
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
*
* Admin page: Server Content Manager (module: addonsmanager)
* ─────────────────────────────────────────────────────────────────────────────

View file

@ -1,7 +1,7 @@
<?php
/*
*
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
*
* Module: addonsmanager Server Content Manager
* ─────────────────────────────────────────────────────────────────────────────

View file

@ -1,7 +1,7 @@
<?php
/*
*
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
*
* Monitor button: Server Content (module: addonsmanager)
* ─────────────────────────────────────────────────────────────────────────────

View file

@ -1,7 +1,7 @@
<?php
/*
*
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
*
* Server Content Category Map
* ─────────────────────────────────────────────────────────────────────────────

View file

@ -1,7 +1,7 @@
<?php
/*
*
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
*
* User page: Server Content (module: addonsmanager, page: user_addons)
* ─────────────────────────────────────────────────────────────────────────────

View file

@ -7,7 +7,7 @@ require_once(dirname(__DIR__) . '/billing_bootstrap.php');
<a href="<?php echo htmlspecialchars(function_exists('billing_url') ? billing_url('privacy.php') : 'privacy.php', ENT_QUOTES, 'UTF-8'); ?>">Privacy</a> |
<a href="<?php echo htmlspecialchars(function_exists('billing_url') ? billing_url('tos.php') : 'tos.php', ENT_QUOTES, 'UTF-8'); ?>">TOS</a> |
<a href="<?php echo htmlspecialchars(function_exists('billing_url') ? billing_url('server_status.php') : 'server_status.php', ENT_QUOTES, 'UTF-8'); ?>">Server Status</a> |
<a href="https://worlddomination.dev" target="_blank" rel="noopener">Worlddomination.dev</a>
<a href="https://runlevelsystems.com/" target="_blank" rel="noopener noreferrer">Runlevel Systems</a>
</div>
<div class="last-updated" style="color:#999;font-size:0.9em;">

View file

@ -40,3 +40,109 @@
height:18px;
overflow: hidden;
}
.dragbox.bloc.rounded {
background: linear-gradient(180deg, rgba(10, 18, 32, 0.92) 0%, rgba(14, 25, 45, 0.94) 100%);
border: 1px solid rgba(77, 160, 255, 0.18);
border-radius: 8px;
box-shadow: 0 14px 32px rgba(0, 0, 0, 0.22);
}
.dragbox.bloc.rounded > h4,
.dashboard-promo-card > h4,
.dashboard-secondary-card > h4 {
margin: 0 0 12px;
padding-bottom: 12px;
border-bottom: 1px solid rgba(77, 160, 255, 0.18);
color: #e6f0ff;
letter-spacing: 0.04em;
}
.dragbox-content {
padding: 4px 2px 2px;
color: #d2def4;
}
.dashboard-service-grid {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 16px;
margin-top: 20px;
}
.dashboard-promo-card,
.dashboard-secondary-card {
padding: 18px 20px;
background: linear-gradient(180deg, rgba(12, 22, 40, 0.94) 0%, rgba(8, 16, 29, 0.96) 100%);
border: 1px solid rgba(77, 160, 255, 0.2);
border-radius: 8px;
box-shadow: 0 16px 36px rgba(0, 0, 0, 0.24);
}
.dashboard-promo-card {
border-left: 3px solid #48c4f5;
}
.dashboard-promo-card p,
.dashboard-secondary-card p {
margin: 0 0 12px;
color: #d2def4;
}
.dashboard-card-note {
color: #9fb5d8;
}
.dashboard-cta-button,
.dashboard-support-link {
display: inline-block;
padding: 10px 16px;
border-radius: 6px;
text-decoration: none;
font-weight: 600;
}
.dashboard-cta-button {
background: linear-gradient(180deg, #5ac7f7 0%, #2f9fde 100%);
border: 1px solid rgba(107, 214, 255, 0.55);
color: #04111f;
}
.dashboard-cta-button:hover,
.dashboard-cta-button:focus {
color: #04111f;
text-decoration: none;
box-shadow: 0 0 0 3px rgba(90, 199, 247, 0.18);
}
.dashboard-support-link {
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.12);
color: #f0f5ff;
}
.dashboard-support-link:hover,
.dashboard-support-link:focus {
color: #ffffff;
text-decoration: none;
box-shadow: 0 0 0 3px rgba(90, 199, 247, 0.12);
}
@media (max-width: 991px) {
.dashboard-service-grid {
grid-template-columns: 1fr;
}
}
@media (max-width: 430px) {
.dashboard-promo-card,
.dashboard-secondary-card {
padding: 16px;
}
.dashboard-cta-button,
.dashboard-support-link {
width: 100%;
text-align: center;
}
}

View file

@ -31,6 +31,8 @@ function exec_ogp_module()
{
global $db, $settings, $loggedInUserInfo;
$projectRequestUrl = htmlspecialchars(gsp_project_request_url(), ENT_QUOTES, 'UTF-8');
$isAdmin = $db->isAdmin($_SESSION['user_id']);
$user_id = $_SESSION['user_id'];
@ -85,7 +87,7 @@ function exec_ogp_module()
// Support Resources quick link
$title[4] = 'Support Resources';
$content[4] ='Need help? Visit the support section to open tickets or review documentation.';
$content[4] ='Need routine help? Use the support section for tickets, service problems, documentation, and troubleshooting with existing features.';
$href[4] = 'home.php?m=tickets';
// Support
@ -143,6 +145,20 @@ function exec_ogp_module()
echo $html.'</div>';
}
echo "<div class='dashboard-service-grid'>
<div class='dashboard-promo-card'>
<h4>CUSTOM SERVER DEVELOPMENT</h4>
<p>Need something beyond the standard server options? Our developers can customize, repair, automate, or extend your game server with mods, scripts, integrations, migrations, and server-specific tools.</p>
<p class='dashboard-card-note'>Tell us what you want to build or improve, and we will review the request with you.</p>
<a class='dashboard-cta-button' href='{$projectRequestUrl}'>Request Custom Development</a>
</div>
<div class='dashboard-secondary-card'>
<h4>Support and Troubleshooting</h4>
<p>Use support when something is broken, you need routine troubleshooting, or you need help with the features already included with your service.</p>
<a class='dashboard-support-link' href='home.php?m=tickets'>Open Support Resources</a>
</div>
</div>";
// Server Status Link - Available to all users
echo "<div style='margin-top:20px;'>
<div class='bloc rounded' >

View file

@ -3,7 +3,7 @@
*
* OGP - Open Game Panel
* Copyright (C) 2008 - 2018 The OGP Development Team
* GSP / WDS customisation Migrate replaces the old Clone feature.
* GSP / Runlevel Systems customisation Migrate replaces the old Clone feature.
*
* This page lets an admin copy all files from one game server to another
* server of the SAME game type, using rsync (Linux) or robocopy (Windows

View file

@ -41,6 +41,7 @@ Panel/modules/website/
config/
config.example.php
pricing.php
services.php
```
## URL helpers
@ -123,9 +124,40 @@ Alternate front-controller approach:
- `billing_base_url`
- `panel_url`
- `login_url`
- Runlevel Systems company and project-request URLs
- support links
3. Keep any environment-specific config out of Git
## Runlevel Systems Project Request Integration
The website keeps its custom-development CTA URL centralized in:
- `Panel/modules/website/config/services.php`
Optional overrides can be placed in:
- `Panel/modules/website/config/config.php`
- `Panel/modules/website/config/config.local.php`
The current project request URL is:
- `https://runlevelsystems.com/start-project.php`
Homepage CTA location:
- `Panel/modules/website/pages/home.php`
Shared footer branding location:
- `Panel/modules/website/includes/footer.php`
The public wording distinguishes between ordinary support and project work:
- support is for troubleshooting, service issues, and existing features
- project requests are for custom scripts, mods, integrations, automation, migrations, dashboards, and GSP feature work
Use the shared config values instead of scattering the Runlevel Systems URL or company name through templates.
## Pricing and Platform Reference
Internal pricing planning remains in:

View file

@ -20,6 +20,15 @@ return [
'panel_url' => 'https://panel.iaregamer.com/',
'login_url' => 'https://panel.iaregamer.com/',
'company' => [
'name' => 'Runlevel Systems',
'url' => 'https://runlevelsystems.com/',
'copyright' => "\u{00A9} 2026 Runlevel Systems",
],
'services' => [
'project_request_url' => 'https://runlevelsystems.com/start-project.php',
],
// Optional support links.
'discord_url' => 'https://discord.gg/replace-me',
'support_url' => 'https://gameservers.world/support',

View file

@ -0,0 +1,12 @@
<?php
return [
'company' => [
'name' => 'Runlevel Systems',
'url' => 'https://runlevelsystems.com/',
'copyright' => "\u{00A9} 2026 Runlevel Systems",
],
'services' => [
'project_request_url' => 'https://runlevelsystems.com/start-project.php',
],
];

View file

@ -16,6 +16,7 @@ ini_set('display_errors', '0');
$websiteConfig = [];
$websiteConfigFiles = [
WEBSITE_CONFIG_DIR . '/pricing.php',
WEBSITE_CONFIG_DIR . '/services.php',
WEBSITE_CONFIG_DIR . '/config.php',
WEBSITE_CONFIG_DIR . '/config.local.php',
];
@ -40,6 +41,14 @@ $websiteDefaults = [
'billing_base_url' => '/billing',
'panel_url' => 'https://panel.iaregamer.com/',
'login_url' => 'https://panel.iaregamer.com/',
'company' => [
'name' => 'Runlevel Systems',
'url' => 'https://runlevelsystems.com/',
'copyright' => "\u{00A9} 2026 Runlevel Systems",
],
'services' => [
'project_request_url' => 'https://runlevelsystems.com/start-project.php',
],
'discord_url' => null,
'support_url' => null,
'support_email' => null,
@ -445,6 +454,15 @@ function website_fetch_services(int $limit = 0): array
function website_custom_project_url(): string
{
$services = website_config('services', []);
$projectUrl = '';
if (is_array($services)) {
$projectUrl = trim((string)($services['project_request_url'] ?? ''));
}
if ($projectUrl !== '') {
return $projectUrl;
}
$supportUrl = trim((string)website_config('support_url', ''));
if ($supportUrl !== '') {
return $supportUrl;

View file

@ -5,6 +5,10 @@ declare(strict_types=1);
$discordUrl = trim((string)website_config('discord_url', ''));
$supportUrl = trim((string)website_config('support_url', ''));
$supportEmail = trim((string)website_config('support_email', ''));
$company = website_config('company', []);
$companyName = trim((string)($company['name'] ?? 'Runlevel Systems'));
$companyUrl = trim((string)($company['url'] ?? 'https://runlevelsystems.com/'));
$companyCopyright = trim((string)($company['copyright'] ?? "\u{00A9} 2026 Runlevel Systems"));
?>
</main>
<footer class="site-footer">
@ -15,7 +19,8 @@ $supportEmail = trim((string)website_config('support_email', ''));
<span><?= website_escape(website_config('site_name')) ?></span>
</a>
<p class="footer-copy"><?= website_escape(website_config('site_tagline')) ?></p>
<p class="footer-copy">Hosting is provided by Gameservers.World. Development, integration, and infrastructure expertise come from Runlevel Systems.</p>
<p class="footer-copy">Hosting is provided by Gameservers.World. Development, integration, and infrastructure expertise come from <?= website_escape($companyName) ?>.</p>
<p class="footer-copy"><a href="<?= website_escape($companyUrl) ?>" target="_blank" rel="noopener noreferrer"><?= website_escape($companyCopyright) ?></a></p>
</div>
<div>
<h2>Explore</h2>

View file

@ -143,6 +143,23 @@ $platformBackupNote = trim((string)($platform['daily_backups_note'] ?? ''));
</div>
</section>
<section class="section">
<div class="container">
<div class="cta-panel cta-panel-inline">
<div>
<div class="kicker">Runlevel Systems</div>
<h2>Need More Than Standard Hosting?</h2>
<p>Gameservers.World is backed by Runlevel Systems developers. We can help customize your server with mods, scripts, integrations, automation, migrations, and features built around your community.</p>
<p>We host the server. We can also help build what runs on it.</p>
</div>
<div class="stack-actions">
<a class="button button-primary" href="<?= website_escape($customProjectUrl) ?>">Request Custom Development</a>
<a class="button button-secondary" href="<?= website_escape(website_url('support.php')) ?>">Support and Troubleshooting</a>
</div>
</div>
</div>
</section>
<section class="section">
<div class="container">
<div class="section-heading">

View file

@ -1,9 +1,9 @@
<div class="col col-lg-12 footer">
<!-- Footer -->
Join our Discord server for support and any questions</br>
<span class="footer-support-note">Join our Discord server for support and routine account questions.</span></br>
<div class="copy">
<!-- copyright -->
&#169; 2025 World Domination Software
<a class="footer-company-link" href="https://runlevelsystems.com/" target="_blank" rel="noopener noreferrer">&#169; 2026 Runlevel Systems</a>
</div>
</div>

View file

@ -242,12 +242,34 @@ h4.collapse,
}
.col.footer {
background-color: rgba(26, 28, 34, 0.5);
padding: 40px;
padding: 28px 24px;
margin-top: 40px;
border-top: 1px solid rgba(90, 199, 247, 0.2);
}
.footer.center {
text-align: left !important;
}
.footer-company-link,
.footer-company-link:hover,
.footer-company-link:focus {
color: #7fd9ff;
text-decoration: none;
}
.copy {
margin-top: 8px;
color: #e6eefc;
}
.footer-support-note {
color: #c7d5ee;
}
.last-updated-ssi {
color: #9eaec6 !important;
}
@media (max-width: 430px) {
.col.footer {
padding: 20px 16px;
}
}
.hidden, .hide {
display: none !important;
}

View file

@ -31,6 +31,12 @@ GSP owns:
GSP does not own the OS-level execution engine. That responsibility belongs to the Linux and Windows agent repositories.
## Brand relationship
- `GSP` is the control panel and orchestration product
- `Gameservers.World` is the public hosting and sales surface
- `Runlevel Systems` is the current company identity behind the development, engineering, integration, and infrastructure work
## Canonical runtime model
User action

View file

@ -44,6 +44,7 @@ Main landing dashboard with widgets and quick server overview.
## Missing Functionality
- richer status and alert surfaces
- clear separation between support requests and custom project work
## Suggested Future Improvements
@ -53,3 +54,17 @@ Main landing dashboard with widgets and quick server overview.
- Keep / Improve
## Runlevel Systems Project Request Integration
- Dashboard render file: `Panel/modules/dashboard/dashboard.php`
- Dashboard styles: `Panel/modules/dashboard/dashboard.css`
- Shared Panel project URL helper: `Panel/includes/functions.php`
Current project request URL:
- `https://runlevelsystems.com/start-project.php`
Dashboard behavior:
- support remains the path for routine troubleshooting, service issues, and existing features
- the custom-development CTA is separate and points users at Runlevel Systems for project work such as custom scripts, mods, integrations, automation, migrations, dashboards, and advanced server tooling

View file

@ -78,3 +78,19 @@ Platform rules:
- hardware details are secondary website information
- customization, legacy-game support, backups, monitored capacity, and developer-backed help remain the main sales points
- example host specifications should be updated in the central config rather than scattered across templates
## Runlevel Systems Project Request Integration
- Services config: `Panel/modules/website/config/services.php`
- Shared footer branding: `Panel/modules/website/includes/footer.php`
- Homepage CTA: `Panel/modules/website/pages/home.php`
Current project request URL:
- `https://runlevelsystems.com/start-project.php`
Branding rules:
- official company name: `Runlevel Systems`
- official company URL: `https://runlevelsystems.com/`
- website pages should distinguish ordinary support from separately scoped project work