5.3 KiB
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
pricing.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
Pricing and Platform Reference
Internal pricing planning remains in:
pricing/gameservers_world_pricing_catalog.xlsx
Public website summary values are centralized in:
Panel/modules/website/config/pricing.php
Optional environment-specific overrides can be placed in:
Panel/modules/website/config/config.phpPanel/modules/website/config/config.local.php
Public pricing guidance currently exposes:
- standard hosting starts at
$0.50per slot - selected lightweight legacy servers can start around
$4per month - most standard plans use a
16-slot minimum - fixed-cap or small co-op games may use different slot limits
- custom development and complex integration work are quoted separately
Platform wording is also centralized in config/pricing.php so hardware references stay secondary and easy to update. The website should keep customization, legacy-game support, fair pricing, backups, and monitored capacity as the primary sales message. Hardware copy should remain a small platform note rather than a headline feature.
Pages currently displaying pricing or platform summary copy:
index.phpserverlist.phppricing.php
If pricing or example host details change later:
- Update the workbook if it is the internal reference source
- Update
config/pricing.phpwith the approved public summary - Override values in
config.phporconfig.local.phponly when deployment-specific differences are required - Recheck homepage, server catalog, and pricing page copy for consistency
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