added link to RL projects
This commit is contained in:
parent
a49371c3dd
commit
bb02be7daa
29 changed files with 325 additions and 36 deletions
|
|
@ -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.**
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -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 — generated at <?= h(gmdate('Y-m-d H:i:s')) ?> UTC</footer>
|
||||
<footer>GSP / Runlevel Systems Dependency Checker — safe to run at any time — generated at <?= h(gmdate('Y-m-d H:i:s')) ?> UTC</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -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".
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -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')." © <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> <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> <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')." © <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):
|
||||
|
|
|
|||
|
|
@ -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;'>🔍 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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -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
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -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
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -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;">
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ require_once('includes/lib_remote.php');
|
|||
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
|
||||
|
|
@ -142,6 +144,20 @@ function exec_ogp_module()
|
|||
foreach ((array)$colhtml as $html)
|
||||
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;'>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
12
Panel/modules/website/config/services.php
Normal file
12
Panel/modules/website/config/services.php
Normal 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',
|
||||
],
|
||||
];
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
© 2025 World Domination Software
|
||||
<a class="footer-company-link" href="https://runlevelsystems.com/" target="_blank" rel="noopener noreferrer">© 2026 Runlevel Systems</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue