| .. | ||
| assets | ||
| config | ||
| includes | ||
| pages | ||
| doc_asset.php | ||
| docs.php | ||
| index.php | ||
| locations.php | ||
| login.php | ||
| pricing.php | ||
| README.md | ||
| serverlist.php | ||
| support.php | ||
Gameservers.World Website Module
This module is the public Gameservers.World sales and documentation website.
Purpose
- Keep the public site inside the GSP repository at
Panel/modules/website/ - Remove location-dependent include logic from the old standalone
Website/tree - Keep marketing pages working even when billing configuration is missing
- Centralize URL and filesystem path handling so the site is portable
Structure
Panel/modules/website/
index.php
serverlist.php
docs.php
login.php
pricing.php
locations.php
support.php
doc_asset.php
includes/
bootstrap.php
footer.php
header.php
navigation.php
paths.php
assets/
css/
js/
images/
pages/
home.php
game_servers.php
documentation.php
pricing.php
locations.php
support.php
config/
config.example.php
URL helpers
The website uses a central bootstrap instead of scattered relative paths.
website_url('serverlist.php')website_asset('css/site.css')panel_url()login_url()billing_url('order.php?service_id=1')documentation_url('minecraft')
Billing and database behavior
The public site does not include Panel/modules/billing/includes/config.inc.php directly.
Instead it:
- Parses
Panel/includes/config.inc.phpwhen present - Parses
Panel/modules/billing/includes/config.inc.phpwhen present - Uses the discovered database values only for pages that need catalog data
- Falls back cleanly when no usable billing or panel DB config is available
Effects:
index.php,docs.php,locations.php,pricing.php, andsupport.phpstill loadserverlist.phpshows a clean fallback message instead of a fatal include error- shared navigation never crashes because billing config is missing
Documentation source
Customer documentation is read from the existing billing docs directory:
Panel/modules/billing/docs/
This keeps the website portable without duplicating the documentation tree.
Deployment
Preferred Apache approach:
- Point the Gameservers.World vhost
DocumentRoottoPanel/modules/website - Expose billing separately under
/billing/with an ApacheAlias - Set
panel_url,login_url, andbilling_base_urlinconfig/config.phporconfig/config.local.php
Example:
<VirtualHost *:80>
ServerName gameservers.world
ServerAlias www.gameservers.world
DocumentRoot /var/www/html/GSP/Panel/modules/website
<Directory /var/www/html/GSP/Panel/modules/website>
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
Alias /billing /var/www/html/GSP/Panel/modules/billing
<Directory /var/www/html/GSP/Panel/modules/billing>
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
</VirtualHost>
Alternate front-controller approach:
- Keep a tiny public
index.phpoutside the repo tree that requiresPanel/modules/website/index.php - Do not duplicate the full website into a second location
Configuration
- Copy
config/config.example.phptoconfig/config.phporconfig/config.local.php - Set:
public_base_urlbilling_base_urlpanel_urllogin_url- support links
- Keep any environment-specific config out of Git
Manual link checks
Verify:
index.phpserverlist.phpdocs.phppricing.phplocations.phpsupport.phplogin.php- header navigation
- footer links
- mobile navigation
- asset URLs
billing_url()destinations
Portability notes
- No
/var/www/html/...filesystem assumptions - No
gameservers.world/panelassumptions - No repeated
../../../path climbing - Internal page links and assets route through helpers
- Database config is optional for non-catalog pages