fixed sales pitxh
This commit is contained in:
parent
e448b415ff
commit
48afc9d770
675 changed files with 248 additions and 83827 deletions
|
|
@ -104,8 +104,9 @@ textarea {
|
|||
|
||||
.brand-logo,
|
||||
.footer-logo {
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
width: auto;
|
||||
height: 44px;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.brand-copy {
|
||||
|
|
@ -123,6 +124,10 @@ textarea {
|
|||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.brand-copy {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.primary-nav {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
|
@ -443,6 +448,15 @@ textarea {
|
|||
color: var(--accent-strong);
|
||||
}
|
||||
|
||||
.kicker {
|
||||
color: #b6d8ff;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.card-actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
return [
|
||||
'site_name' => 'Gameservers.World',
|
||||
'site_tagline' => 'Virtual private game servers with dedicated resources and full configuration access.',
|
||||
'meta_description' => 'Virtual private game servers with dedicated resources, predictable performance, full configuration access, mod support, and real human support.',
|
||||
'site_tagline' => 'Developer-backed game hosting with full server access, mod support, daily backups, and optional custom engineering help through Runlevel Systems.',
|
||||
'meta_description' => 'Affordable virtual private game servers backed by developers, software engineers, and infrastructure specialists. Launch a standard server or get help with mods, automation, integrations, and custom tooling.',
|
||||
|
||||
// Leave null to derive the base path from the current request.
|
||||
// Example: '/sales'
|
||||
|
|
@ -36,4 +36,3 @@ return [
|
|||
['name' => 'Dublin, Ireland', 'region' => 'EU coverage', 'host' => 'dub-game-1.iaregamer.com'],
|
||||
],
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ foreach ($websiteConfigFiles as $configFile) {
|
|||
|
||||
$websiteDefaults = [
|
||||
'site_name' => 'Gameservers.World',
|
||||
'site_tagline' => 'Virtual private game servers with dedicated resources and full configuration access.',
|
||||
'meta_description' => 'Virtual private game servers with dedicated resources, predictable performance, full configuration access, mod support, and real human support.',
|
||||
'site_tagline' => 'Developer-backed game hosting with full server access, mod support, daily backups, and optional custom engineering help through Runlevel Systems.',
|
||||
'meta_description' => 'Affordable virtual private game servers backed by developers, software engineers, and infrastructure specialists. Launch a standard server or get help with mods, automation, integrations, and custom tooling.',
|
||||
'base_path' => null,
|
||||
'public_base_url' => null,
|
||||
'billing_base_url' => '/billing',
|
||||
|
|
@ -442,6 +442,21 @@ function website_fetch_services(int $limit = 0): array
|
|||
return $rows;
|
||||
}
|
||||
|
||||
function website_custom_project_url(): string
|
||||
{
|
||||
$supportUrl = trim((string)website_config('support_url', ''));
|
||||
if ($supportUrl !== '') {
|
||||
return $supportUrl;
|
||||
}
|
||||
|
||||
$discordUrl = trim((string)website_config('discord_url', ''));
|
||||
if ($discordUrl !== '') {
|
||||
return $discordUrl;
|
||||
}
|
||||
|
||||
return website_url('support.php');
|
||||
}
|
||||
|
||||
function website_fetch_doc_index(): array
|
||||
{
|
||||
$docsRoot = website_billing_docs_root();
|
||||
|
|
@ -503,4 +518,3 @@ function website_render(string $pageTemplate, array $context = []): void
|
|||
require WEBSITE_ROOT_DIR . '/pages/' . $pageTemplate;
|
||||
require WEBSITE_INCLUDE_DIR . '/footer.php';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,10 +11,11 @@ $supportEmail = trim((string)website_config('support_email', ''));
|
|||
<div class="container footer-grid">
|
||||
<div>
|
||||
<a class="footer-brand" href="<?= website_escape(website_url('index.php')) ?>">
|
||||
<img src="<?= website_escape(website_asset('images/logo-sm.png')) ?>" alt="Gameservers.World logo" class="footer-logo">
|
||||
<img src="<?= website_escape(website_asset('images/dark-logo.png')) ?>" alt="Gameservers.World logo" class="footer-logo">
|
||||
<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>
|
||||
</div>
|
||||
<div>
|
||||
<h2>Explore</h2>
|
||||
|
|
@ -32,6 +33,7 @@ $supportEmail = trim((string)website_config('support_email', ''));
|
|||
<li><a href="<?= website_escape(login_url()) ?>">Customer Login</a></li>
|
||||
<li><a href="<?= website_escape(panel_url()) ?>">Control Panel</a></li>
|
||||
<li><a href="<?= website_escape(website_url('docs.php')) ?>">Server Guides</a></li>
|
||||
<li><a href="<?= website_escape(website_custom_project_url()) ?>">Request Custom Work</a></li>
|
||||
<?php if ($discordUrl !== ''): ?>
|
||||
<li><a href="<?= website_escape($discordUrl) ?>" target="_blank" rel="noopener noreferrer">Discord</a></li>
|
||||
<?php endif; ?>
|
||||
|
|
@ -41,12 +43,12 @@ $supportEmail = trim((string)website_config('support_email', ''));
|
|||
<h2>Need Help?</h2>
|
||||
<ul class="footer-links">
|
||||
<?php if ($supportUrl !== ''): ?>
|
||||
<li><a href="<?= website_escape($supportUrl) ?>" target="_blank" rel="noopener noreferrer">Support Portal</a></li>
|
||||
<li><a href="<?= website_escape($supportUrl) ?>" target="_blank" rel="noopener noreferrer">Discuss a Custom Project</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if ($supportEmail !== ''): ?>
|
||||
<li><a href="mailto:<?= website_escape($supportEmail) ?>"><?= website_escape($supportEmail) ?></a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="<?= website_escape(website_url('support.php')) ?>">Contact Options</a></li>
|
||||
<li><a href="<?= website_escape(website_url('support.php')) ?>">Support and Integration Help</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -54,4 +56,3 @@ $supportEmail = trim((string)website_config('support_email', ''));
|
|||
<script src="<?= website_escape(website_asset('js/site.js')) ?>" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
|||
|
|
@ -25,10 +25,9 @@ $bodyClass = $bodyClass ?? '';
|
|||
<meta name="twitter:title" content="<?= website_escape($pageTitle) ?>">
|
||||
<meta name="twitter:description" content="<?= website_escape($metaDescription) ?>">
|
||||
<meta name="twitter:image" content="<?= website_escape($socialImage) ?>">
|
||||
<link rel="icon" type="image/png" href="<?= website_escape(website_asset('images/logo-sm.png')) ?>">
|
||||
<link rel="icon" type="image/png" href="<?= website_escape(website_asset('images/dark-logo.png')) ?>">
|
||||
<link rel="stylesheet" href="<?= website_escape(website_asset('css/site.css')) ?>">
|
||||
</head>
|
||||
<body class="<?= website_escape($bodyClass) ?>">
|
||||
<?php require WEBSITE_INCLUDE_DIR . '/navigation.php'; ?>
|
||||
<main class="site-main">
|
||||
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@ $navLinks = [
|
|||
<header class="site-header">
|
||||
<div class="container header-shell">
|
||||
<a class="brand" href="<?= website_escape(website_url('index.php')) ?>">
|
||||
<img src="<?= website_escape(website_asset('images/logo-sm.png')) ?>" alt="Gameservers.World logo" class="brand-logo">
|
||||
<img src="<?= website_escape(website_asset('images/dark-logo.png')) ?>" alt="Gameservers.World logo" class="brand-logo">
|
||||
<span class="brand-copy">
|
||||
<span class="brand-name"><?= website_escape(website_config('site_name')) ?></span>
|
||||
<span class="brand-tagline">Virtual private game servers</span>
|
||||
<span class="brand-tagline">Developer-backed game hosting</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ $navLinks = [
|
|||
</nav>
|
||||
|
||||
<div class="header-actions" data-header-actions>
|
||||
<a class="button button-secondary" href="<?= website_escape(login_url()) ?>">Login</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(website_custom_project_url()) ?>">Custom Projects</a>
|
||||
<a class="button button-primary" href="<?= website_escape(panel_url()) ?>">Control Panel</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -11,11 +11,10 @@ website_render(
|
|||
'home.php',
|
||||
[
|
||||
'activePage' => 'home',
|
||||
'pageTitle' => 'Gameservers.World - Virtual private game servers',
|
||||
'pageTitle' => 'Gameservers.World - Game Hosting Backed by Developers',
|
||||
'metaDescription' => website_config('meta_description'),
|
||||
'canonicalPath' => 'index.php',
|
||||
'services' => $services,
|
||||
'locations' => is_array($locations) ? $locations : [],
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,8 @@ website_render(
|
|||
[
|
||||
'activePage' => 'locations',
|
||||
'pageTitle' => 'Locations - Gameservers.World',
|
||||
'metaDescription' => 'Current Gameservers.World hosting regions and deployment guidance.',
|
||||
'metaDescription' => 'Current Gameservers.World hosting regions, deployment guidance, and practical notes for latency-sensitive communities.',
|
||||
'canonicalPath' => 'locations.php',
|
||||
'locations' => website_config('locations', []),
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ foreach ($docIndex as $entry) {
|
|||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1><?= $docEntry !== null ? website_escape($docEntry['name']) : 'Documentation' ?></h1>
|
||||
<p><?= $docEntry !== null ? website_escape((string)($docEntry['description'] ?? '')) : 'Browse customer guides, panel references, and game-specific setup documentation without depending on billing configuration.' ?></p>
|
||||
<p><?= $docEntry !== null ? website_escape((string)($docEntry['description'] ?? '')) : 'Browse server setup guides, GSP references, mod and Workshop help, and troubleshooting material for both ordinary hosting customers and communities doing more specialized work.' ?></p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ foreach ($docIndex as $entry) {
|
|||
<section>
|
||||
<div class="section-heading">
|
||||
<h2><?= website_escape($categoryLabels[$category] ?? ucwords($category)) ?></h2>
|
||||
<p><?= website_escape(($categoryLabels[$category] ?? $category) . ' available through the shared GSP documentation set.') ?></p>
|
||||
<p><?= website_escape(($categoryLabels[$category] ?? $category) . ' to help you configure, troubleshoot, and extend the server you are actually trying to run.') ?></p>
|
||||
</div>
|
||||
<div class="doc-grid">
|
||||
<?php foreach ($entries as $entry): ?>
|
||||
|
|
@ -63,9 +63,8 @@ foreach ($docIndex as $entry) {
|
|||
<?php else: ?>
|
||||
<div class="empty-state">
|
||||
<h2>Documentation is unavailable</h2>
|
||||
<p>No documentation source directory was found. Check that the billing module docs directory is present alongside the website module.</p>
|
||||
<p>Documentation is temporarily unavailable. Contact support if you need help with setup, mods, Workshop content, or a custom server configuration.</p>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,22 @@ $hasBilling = website_billing_available();
|
|||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1>Game Servers</h1>
|
||||
<p>Available services are pulled from the existing billing catalog when the database is configured. This page no longer reaches into billing includes with hardcoded filesystem paths, so it stays up even when billing config is missing.</p>
|
||||
<p>Order a standard hosted server or use the catalog as the starting point for something more customized. Individual servers can be reviewed for mod setups, scripts, automation, integrations, and community-specific requirements.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Standard hosting is available</h3>
|
||||
<p>Use the catalog for ordinary game-server hosting with GSP access, full configuration and file control, monitored capacity, and daily backups.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Need something unusual?</h3>
|
||||
<p>Custom development, integration, and engineering work can be scoped separately for a reasonable additional fee. No build work starts without an agreed estimate.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -29,7 +44,7 @@ $hasBilling = website_billing_available();
|
|||
<h3><?= website_escape($serviceName) ?></h3>
|
||||
<div class="service-meta"><?= website_escape((string)($service['cfg_game_key'] ?? '')) ?></div>
|
||||
</header>
|
||||
<p><?= website_escape($description !== '' ? $description : 'Dedicated resources, full configuration access, and GSP panel management.') ?></p>
|
||||
<p><?= website_escape($description !== '' ? $description : 'Virtual private hosting with full configuration access, mod support, GSP panel management, and optional custom engineering help.') ?></p>
|
||||
<div class="section-divider"></div>
|
||||
<div class="service-price"><?= $price > 0 ? '$' . number_format($price, 2) . ' / month' : 'Contact for pricing' ?></div>
|
||||
<div class="card-actions">
|
||||
|
|
@ -49,13 +64,12 @@ $hasBilling = website_billing_available();
|
|||
<p><?= website_escape((string)website_config('admin_notice')) ?></p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('support.php')) ?>">Contact Support</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(website_url('index.php')) ?>">Return Home</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(website_custom_project_url()) ?>">Discuss a Custom Server</a>
|
||||
</div>
|
||||
<?php if (!website_billing_config_present()): ?>
|
||||
<p class="muted">Billing configuration is missing or unreadable. Public pages still load, but service data cannot be queried until billing or panel database credentials are configured.</p>
|
||||
<p class="muted">If you already know what you want to build, contact support and we can review the request directly even while the public catalog is unavailable.</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,41 +3,43 @@
|
|||
declare(strict_types=1);
|
||||
|
||||
$discordUrl = trim((string)website_config('discord_url', ''));
|
||||
$customProjectUrl = website_custom_project_url();
|
||||
?>
|
||||
<section class="hero">
|
||||
<div class="container hero-layout">
|
||||
<div>
|
||||
<div class="eyebrow">Dedicated resources. Full control. Real support.</div>
|
||||
<h1>Virtual private game servers with predictable resources and full configuration access.</h1>
|
||||
<p><?= website_escape(website_config('site_tagline')) ?> Gameservers.World focuses on stable capacity, older community-favorite titles, mod support, and a control panel that gives customers practical access instead of a stripped-down toy interface.</p>
|
||||
<div class="eyebrow">Game hosting backed by developers</div>
|
||||
<h1>Host it. Mod it. Build it.</h1>
|
||||
<p>Launch an affordable virtual private game server or work with the team behind Runlevel Systems on the parts that make your community specific: mods, scripts, automation, integrations, admin tools, custom GSP workflows, and unusual server setups that do not fit a generic hosting template.</p>
|
||||
<div class="hero-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('serverlist.php')) ?>">View Game Servers</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(panel_url()) ?>">Open Control Panel</a>
|
||||
<a class="button button-secondary" href="<?= website_escape($customProjectUrl) ?>">Discuss a Custom Project</a>
|
||||
<a class="button button-ghost" href="<?= website_escape(panel_url()) ?>">Open Control Panel</a>
|
||||
</div>
|
||||
<div class="hero-points">
|
||||
<div class="hero-point">
|
||||
<strong>Never oversold</strong>
|
||||
<span class="muted">Dedicated resources stay dedicated. Predictable performance is the product, not an upgrade.</span>
|
||||
<strong>Affordable hosting first</strong>
|
||||
<span class="muted">You can order a normal hosted server without custom work, then decide later whether you need help extending it.</span>
|
||||
</div>
|
||||
<div class="hero-point">
|
||||
<strong>Mod and Workshop support</strong>
|
||||
<span class="muted">Common modding workflows, Workshop content, and file access stay available where the game allows it.</span>
|
||||
<strong>Never-oversold capacity</strong>
|
||||
<span class="muted">Host systems are actively monitored so customers are not crowded onto overloaded nodes.</span>
|
||||
</div>
|
||||
<div class="hero-point">
|
||||
<strong>Control and customization</strong>
|
||||
<span class="muted">Startup parameters, configs, backups, and updates are managed through the GSP panel without hiding the important controls.</span>
|
||||
<strong>Real engineering help</strong>
|
||||
<span class="muted">Developers, software engineers, game developers, and infrastructure specialists are available when a server needs more than a restart button.</span>
|
||||
</div>
|
||||
<div class="hero-point">
|
||||
<strong>Real people</strong>
|
||||
<span class="muted">Documentation exists, but you can still talk to someone when an old modpack or legacy title gets awkward.</span>
|
||||
<strong>Customization is available</strong>
|
||||
<span class="muted">Files, configs, startup parameters, supported mods, Workshop content, and custom tooling can be reviewed case by case.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hero-visual">
|
||||
<img src="<?= website_escape(website_asset('images/banner.png')) ?>" alt="Gameservers.World supported games collage">
|
||||
<div class="hero-visual-card">
|
||||
<strong>Built for hosted communities that want actual control</strong>
|
||||
<p>Use the GSP panel for server start/stop, config editing, Workshop or mod workflows, logs, file access, and routine maintenance without depending on fragile manual shell work.</p>
|
||||
<strong>More than hosting</strong>
|
||||
<p>Gameservers.World hosts the server. Runlevel Systems provides the development, integration, and infrastructure expertise behind it.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -47,20 +49,20 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
<div class="container">
|
||||
<div class="stats-grid">
|
||||
<div class="stat-card">
|
||||
<strong>Dedicated</strong>
|
||||
<span>No noisy-neighbor overselling.</span>
|
||||
<strong>128 GB RAM</strong>
|
||||
<span>Host specification, not a per-customer dedicated allocation.</span>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<strong>Full access</strong>
|
||||
<span>Configs, startup parameters, files, backups, and updates.</span>
|
||||
<strong>32 CPU cores</strong>
|
||||
<span>Capacity is managed for stable game performance and headroom.</span>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<strong>Legacy-friendly</strong>
|
||||
<span>Older and community-favorite games stay part of the catalog.</span>
|
||||
<strong>2 TB SSD</strong>
|
||||
<span>Fast storage on monitored hosts instead of overloaded bargain nodes.</span>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<strong>Operational help</strong>
|
||||
<span>Human support when the docs are not enough.</span>
|
||||
<strong>Daily backups</strong>
|
||||
<span>Recover from failed updates, bad changes, or configuration mistakes with help from support.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -69,25 +71,26 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="section-heading">
|
||||
<h2>Why Gameservers.World</h2>
|
||||
<p>The website now makes the actual sales proposition explicit: dedicated capacity, access to the knobs that matter, and hosting for both current and older multiplayer titles without burying customers behind fragile shared-hosting abstractions.</p>
|
||||
<div class="kicker">More than hosting</div>
|
||||
<h2>Gameservers.World can host a standard server or help build something more specific.</h2>
|
||||
<p>Some customers want a clean server with good support and full access. Others need custom scripts, mod workflows, database connections, Discord integrations, migration help, or tools built around a long-running community. Both use cases belong here.</p>
|
||||
</div>
|
||||
<div class="feature-grid">
|
||||
<article class="feature-card">
|
||||
<h3>Dedicated resources</h3>
|
||||
<p>Capacity is reserved for the server you pay for. CPU and memory planning are aimed at stable behavior, not squeezing one more tenant onto the node.</p>
|
||||
<h3>Developer-backed hosting</h3>
|
||||
<p>Runlevel Systems brings development and engineering experience behind the hosting service, not just sales copy and a billing page.</p>
|
||||
</article>
|
||||
<article class="feature-card">
|
||||
<h3>Mod support</h3>
|
||||
<p>Workshop and addon workflows are supported where the underlying game tooling allows it, with file access and update paths that customers can actually use.</p>
|
||||
<h3>Custom server builds</h3>
|
||||
<p>Individual servers can be configured around startup parameters, file layouts, admin tooling, automation, or game-specific quirks.</p>
|
||||
</article>
|
||||
<article class="feature-card">
|
||||
<h3>Panel control</h3>
|
||||
<p>Customers manage their service through GSP rather than opening tickets for every config tweak, reboot, backup, or startup parameter change.</p>
|
||||
<h3>Mod and Workshop integration</h3>
|
||||
<p>Supported games can use GSP content workflows, dedicated Workshop support, and hands-on help with mod setup or compatibility issues.</p>
|
||||
</article>
|
||||
<article class="feature-card">
|
||||
<h3>Real support</h3>
|
||||
<p>When an old title, community mod, or provisioning edge case gets weird, support is available through documentation plus direct assistance.</p>
|
||||
<h3>Infrastructure expertise</h3>
|
||||
<p>Linux, Windows Server, databases, networking, logs, backups, monitoring, and deployment are part of the same practical support surface.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -96,17 +99,27 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="section-heading">
|
||||
<h2>Current locations</h2>
|
||||
<p>Locations are configured data, not marketing filler. These reflect the currently documented host regions from the existing Gameservers.World site content.</p>
|
||||
<div class="kicker">What we can build</div>
|
||||
<h2>Custom work can extend the server beyond the control panel.</h2>
|
||||
<p>Tell us what you want your server to do. We will review the game, its tools, and the technical limits, then help design a practical solution. Not every request is possible, but unusual requests do not get dismissed out of hand.</p>
|
||||
</div>
|
||||
<div class="location-grid">
|
||||
<?php foreach ($locations as $location): ?>
|
||||
<article class="location-card">
|
||||
<h3><?= website_escape((string)($location['name'] ?? '')) ?></h3>
|
||||
<p><?= website_escape((string)($location['region'] ?? '')) ?></p>
|
||||
<small><?= website_escape((string)($location['host'] ?? '')) ?></small>
|
||||
</article>
|
||||
<?php endforeach; ?>
|
||||
<div class="feature-grid">
|
||||
<article class="feature-card">
|
||||
<h3>Server scripts and automation</h3>
|
||||
<p>Startup and update automation, scheduled workflows, restart logic, migration helpers, and practical server-side tooling.</p>
|
||||
</article>
|
||||
<article class="feature-card">
|
||||
<h3>Mods, maps, and content</h3>
|
||||
<p>Mod configuration, Workshop collections, custom maps, custom content packaging, and community-specific content workflows.</p>
|
||||
</article>
|
||||
<article class="feature-card">
|
||||
<h3>Integrations and data</h3>
|
||||
<p>APIs, web dashboards, Discord integrations, external applications, databases, launchers, and admin utilities.</p>
|
||||
</article>
|
||||
<article class="feature-card">
|
||||
<h3>GSP extensions</h3>
|
||||
<p>Custom GSP modules, game-specific fixes, monitoring workflows, and operational improvements when a project needs more than the default panel path.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -114,8 +127,49 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="section-heading">
|
||||
<h2>Popular and supported game servers</h2>
|
||||
<p>These cards are driven from the existing billing catalog when configuration is available. The site does not invent fake availability if the billing catalog is offline.</p>
|
||||
<div class="kicker">Hosting platform</div>
|
||||
<h2>Stable hosting without overcrowded nodes.</h2>
|
||||
<p>Gameservers.World provides virtual private game servers on carefully managed hosts with 128 GB RAM, 32 CPU cores, and 2 TB SSD storage. Those are host specifications, not dedicated per-customer guarantees. The practical commitment is monitored capacity, performance headroom, and daily backups.</p>
|
||||
</div>
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Real server access</h3>
|
||||
<p>Edit files and configurations, adjust startup parameters, manage supported server content, review logs, and run updates or scheduled tasks through GSP.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Windows and Linux experience</h3>
|
||||
<p>The team works across game servers that expect different operating systems, toolchains, runtime quirks, and documentation quality.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="section-heading">
|
||||
<div class="kicker">Modding and game development support</div>
|
||||
<h2>Support for current, older, and community-maintained games.</h2>
|
||||
<p>Some communities need help with abandoned dedicated-server software, badly documented mod stacks, or workflows that mix game servers, websites, databases, and custom scripts. That is where developer-backed hosting matters.</p>
|
||||
</div>
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>What we understand</h3>
|
||||
<p>Game development, mod development, PHP, Perl, C#, Unity, Linux, Windows Server, networking, databases, SteamCMD, Steam Workshop, dedicated-server software, automation, deployment, and troubleshooting.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>How we approach unusual requests</h3>
|
||||
<p>We host standard servers every day, but we also help revive older multiplayer titles, evaluate unsupported configurations, and scope custom work when a community needs something more specific.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="section-heading">
|
||||
<div class="kicker">Supported games and locations</div>
|
||||
<h2>Live catalog where available, honest fallback where it is not.</h2>
|
||||
<p>Available games and public pricing come from the active service catalog when configuration is available. The site does not invent availability or publish stale game lists just to fill space.</p>
|
||||
</div>
|
||||
<?php if (!empty($services)): ?>
|
||||
<div class="service-grid">
|
||||
|
|
@ -131,7 +185,7 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
<h3><?= website_escape($serviceName) ?></h3>
|
||||
<div class="service-price"><?= $price > 0 ? '$' . number_format($price, 2) . ' / month' : 'Contact for pricing' ?></div>
|
||||
</header>
|
||||
<p><?= website_escape(trim((string)($service['description'] ?? 'Dedicated hosting with full configuration access.')) ?: 'Dedicated hosting with full configuration access.') ?></p>
|
||||
<p><?= website_escape(trim((string)($service['description'] ?? 'Virtual private hosting with full configuration access, real support, and optional customization help.')) ?: 'Virtual private hosting with full configuration access, real support, and optional customization help.') ?></p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-primary" href="<?= website_escape($orderUrl) ?>">Order</a>
|
||||
<a class="button button-ghost" href="<?= website_escape(website_url('serverlist.php')) ?>">Catalog</a>
|
||||
|
|
@ -141,7 +195,7 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
</div>
|
||||
<?php else: ?>
|
||||
<div class="empty-state">
|
||||
<h3>Catalog visibility depends on billing data</h3>
|
||||
<h3>Current game catalog unavailable</h3>
|
||||
<p><?= website_escape((string)website_config('admin_notice')) ?></p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-secondary" href="<?= website_escape(website_url('support.php')) ?>">Contact Support</a>
|
||||
|
|
@ -155,24 +209,18 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="section-heading">
|
||||
<h2>How it works</h2>
|
||||
<p>The public site and the control plane are now separated cleanly: the website explains the service, the billing catalog handles order-specific data, and GSP runs the operational lifecycle.</p>
|
||||
<div class="kicker">Real support</div>
|
||||
<h2>Talk to people who understand what is under the hood.</h2>
|
||||
<p>Support is not limited to “restart it and send a ticket.” Customers can get help with setup, configuration, mods, Workshop, performance troubleshooting, automation questions, and practical recovery from bad changes.</p>
|
||||
</div>
|
||||
<div class="flow-grid">
|
||||
<article class="flow-step">
|
||||
<span class="flow-step-number">1</span>
|
||||
<h3>Choose a server</h3>
|
||||
<p>Browse the supported game catalog, confirm the available plan, and select a region that matches your community.</p>
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Ordinary hosting is available</h3>
|
||||
<p>Order a standard server, use the panel, and get practical support without being forced into a custom project.</p>
|
||||
</article>
|
||||
<article class="flow-step">
|
||||
<span class="flow-step-number">2</span>
|
||||
<h3>Configure it</h3>
|
||||
<p>Use the GSP panel to set startup parameters, edit configs, install supported content, and keep backups or updates under control.</p>
|
||||
</article>
|
||||
<article class="flow-step">
|
||||
<span class="flow-step-number">3</span>
|
||||
<h3>Manage through GSP</h3>
|
||||
<p>Operate the service through the panel for lifecycle, monitoring, logs, file access, and routine administrative work.</p>
|
||||
<article class="summary-card">
|
||||
<h3>Custom help is available too</h3>
|
||||
<p>If you need scripts, integrations, workflow changes, or development help, we can scope that separately and quote it before work begins.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -187,11 +235,11 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
<div class="panel-preview-stats">
|
||||
<div class="section-heading">
|
||||
<h2>GSP control panel</h2>
|
||||
<p>Customers do not get a fake storefront-only experience. They manage hosted servers through the same GSP platform that handles starts, stops, files, logs, addons, scheduling, and provisioning workflows.</p>
|
||||
<p>Start, stop, and restart servers. Edit files and configurations. Review logs. Install supported content. Manage Workshop workflows where the game allows it. Schedule tasks, run updates, work with backups, and monitor server state from one place.</p>
|
||||
</div>
|
||||
<div class="summary-card">
|
||||
<h3>Operational access</h3>
|
||||
<p>Start and stop servers, manage files, inspect logs, update Workshop content, and adjust configuration safely from the panel.</p>
|
||||
<h3>Built by the same team</h3>
|
||||
<p>GSP itself is developed and customized by the same engineering team, which means new workflows or modules can be evaluated when a project calls for them.</p>
|
||||
</div>
|
||||
<div class="stack-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(panel_url()) ?>">Open Control Panel</a>
|
||||
|
|
@ -204,22 +252,36 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Documentation and support</h3>
|
||||
<p>Game-specific docs, panel guidance, and troubleshooting live in the same repo and can be served without depending on billing configuration.</p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-secondary" href="<?= website_escape(website_url('docs.php')) ?>">Documentation</a>
|
||||
<a class="button button-ghost" href="<?= website_escape(website_url('support.php')) ?>">Support</a>
|
||||
</div>
|
||||
<div class="section-heading">
|
||||
<div class="kicker">How custom work operates</div>
|
||||
<h2>Simple process, scoped before work begins.</h2>
|
||||
<p>Custom coding and integration work is quoted separately, but the goal is practical, reasonable pricing rather than inflated enterprise consulting rates. No custom work starts without agreement on scope and cost.</p>
|
||||
</div>
|
||||
<div class="flow-grid">
|
||||
<article class="flow-step">
|
||||
<span class="flow-step-number">1</span>
|
||||
<h3>Tell us what you want</h3>
|
||||
<p>Explain the server, the game, the community, and what you want it to do differently.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Panel and login routing</h3>
|
||||
<p>The Control Panel and Login actions are configuration-driven. The public site no longer assumes a fragile `/panel/` path under the marketing domain.</p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(login_url()) ?>">Login</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(panel_url()) ?>">Control Panel</a>
|
||||
</div>
|
||||
<article class="flow-step">
|
||||
<span class="flow-step-number">2</span>
|
||||
<h3>We evaluate the limits</h3>
|
||||
<p>We review the game, its tools, the operating requirements, and what is practical to build or integrate.</p>
|
||||
</article>
|
||||
<article class="flow-step">
|
||||
<span class="flow-step-number">3</span>
|
||||
<h3>We scope and price it</h3>
|
||||
<p>Custom coding, integration, or engineering work is discussed up front before any build work begins.</p>
|
||||
</article>
|
||||
<article class="flow-step">
|
||||
<span class="flow-step-number">4</span>
|
||||
<h3>We build and deploy</h3>
|
||||
<p>Once approved, we implement, test, and help deploy the agreed changes.</p>
|
||||
</article>
|
||||
<article class="flow-step">
|
||||
<span class="flow-step-number">5</span>
|
||||
<h3>We maintain if needed</h3>
|
||||
<p>Ongoing help can be discussed for communities that need support beyond the initial delivery.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -229,12 +291,13 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
<div class="container">
|
||||
<div class="cta-panel">
|
||||
<div>
|
||||
<h2>Ready to deploy a server?</h2>
|
||||
<p>Browse the current game catalog, confirm the right location, and manage the result through GSP.</p>
|
||||
<h2>Have an idea for your server?</h2>
|
||||
<p>Whether you need ordinary hosting, a complicated mod setup, or something that has never been packaged into a hosting panel before, tell us what you are trying to build.</p>
|
||||
</div>
|
||||
<div class="stack-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('serverlist.php')) ?>">View Game Servers</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(panel_url()) ?>">Open Control Panel</a>
|
||||
<a class="button button-secondary" href="<?= website_escape($customProjectUrl) ?>">Request Custom Development</a>
|
||||
<a class="button button-ghost" href="<?= website_escape(website_url('support.php')) ?>">Contact Support</a>
|
||||
<?php if ($discordUrl !== ''): ?>
|
||||
<a class="button button-ghost" href="<?= website_escape($discordUrl) ?>" target="_blank" rel="noopener noreferrer">Discord</a>
|
||||
<?php endif; ?>
|
||||
|
|
@ -242,4 +305,3 @@ $discordUrl = trim((string)website_config('discord_url', ''));
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ $locations = is_array($locations) ? $locations : [];
|
|||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1>Locations</h1>
|
||||
<p>Deployment regions are configured data. Large or latency-sensitive communities should choose a region that matches where the players actually are, not just where the cheapest machine happened to be.</p>
|
||||
<p>Choose a region that fits where your players are, what game you run, and how sensitive your mod stack or server software is to latency and host performance. Stable hosting matters more than crowding customers onto the cheapest node.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -30,13 +30,12 @@ $locations = is_array($locations) ? $locations : [];
|
|||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Regional fit matters</h3>
|
||||
<p>Pick a region based on player distribution and the specific game. Older titles and mod-heavy servers can be more sensitive to latency and disk performance than the average commodity hosting page admits.</p>
|
||||
<p>Older titles, community-maintained games, and mod-heavy servers often react badly to poor latency and overloaded hosts. Pick the region that fits the community, not just the first checkbox in a generic order form.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Need a different region?</h3>
|
||||
<p>If the catalog does not list the region you need yet, contact support. The site copy now makes this explicit instead of hiding the conversation behind a dead link.</p>
|
||||
<p>If the catalog does not list the region or deployment arrangement you need, ask. Some communities need something unusual, and that can be reviewed directly.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ declare(strict_types=1);
|
|||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1>Pricing</h1>
|
||||
<p>Gameservers.World pricing is catalog-driven. The public site does not hardcode fake plan availability; it shows live service rows when the billing catalog is available and falls back to guidance when it is not.</p>
|
||||
<p>Standard hosting prices come from the live game-server catalog. Custom coding, integration, and engineering work are separate so customers only pay for extra build work when they actually need it.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -13,12 +13,12 @@ declare(strict_types=1);
|
|||
<div class="container">
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>What you are paying for</h3>
|
||||
<p>Dedicated resources, full configuration access, mod and Workshop support where available, control through GSP, backups, and support from people who know the game hosting side of the product.</p>
|
||||
<h3>Hosting and support</h3>
|
||||
<p>Standard pricing covers virtual private game hosting, GSP access, full file and configuration control, mod and Workshop help where supported, monitored capacity, and daily backups.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>How pricing is presented</h3>
|
||||
<p>Plan data comes from the billing catalog. That keeps the marketing site aligned with the actual services table instead of drifting into stale hardcoded prices.</p>
|
||||
<h3>Custom work is quoted separately</h3>
|
||||
<p>Small changes should not get enterprise-consulting pricing, but custom coding is not implied to be free. Scope and price are discussed before work begins.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -53,3 +53,17 @@ declare(strict_types=1);
|
|||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Reasonable scoping</h3>
|
||||
<p>If you want a custom server script, migration helper, integration, monitoring workflow, or game-specific fix, the first step is a practical discussion about what the game allows and what the work should cost.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>What is not claimed</h3>
|
||||
<p>The site does not invent exact prices outside the catalog, promise unlimited development, or pretend every unusual request is technically possible.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ $loginUnavailable = $loginUnavailable ?? false;
|
|||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1>Support</h1>
|
||||
<p>Documentation should handle the routine cases. Support exists for the ones that are still operationally messy: mods, legacy engines, provisioning issues, and the inevitable edge cases around community-maintained titles.</p>
|
||||
<p>Support covers ordinary hosting questions, but it also extends to mod setups, Workshop issues, configuration mistakes, migration work, automation ideas, unusual server requirements, and the kinds of problems that appear when a community wants more than a stock setup.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -18,34 +18,34 @@ $loginUnavailable = $loginUnavailable ?? false;
|
|||
<div class="container">
|
||||
<?php if ($loginUnavailable): ?>
|
||||
<div class="alert">
|
||||
Login URL is not configured for this deployment. Set <code>login_url</code> in the website config to route customers to the active panel login.
|
||||
Customer login routing is not configured for this deployment yet. Use the support options below and the panel URL can be provided directly.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="support-grid">
|
||||
<article class="support-card">
|
||||
<h3>Customer login</h3>
|
||||
<p>Access existing servers, files, logs, and administrative workflows through the configured GSP panel login.</p>
|
||||
<h3>Hosting support</h3>
|
||||
<p>Get help with setup, configuration, files, logs, backups, updates, startup parameters, and routine server administration through the configured GSP panel.</p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(login_url()) ?>">Login</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(panel_url()) ?>">Panel</a>
|
||||
</div>
|
||||
</article>
|
||||
<article class="support-card">
|
||||
<h3>Documentation</h3>
|
||||
<p>Server guides, panel references, and troubleshooting content are available even if billing configuration is missing.</p>
|
||||
<h3>Modding and troubleshooting</h3>
|
||||
<p>Use the documentation set for server guides, panel workflows, Workshop help, and technical troubleshooting across current and older multiplayer games.</p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('docs.php')) ?>">Open Docs</a>
|
||||
</div>
|
||||
</article>
|
||||
<article class="support-card">
|
||||
<h3>Direct help</h3>
|
||||
<p>Use Discord, a support portal, or email depending on what is configured for this deployment.</p>
|
||||
<h3>Custom development and integration</h3>
|
||||
<p>Need custom scripts, dashboards, GSP extensions, automation, database work, Discord integration, monitoring, or a review of an unusual server idea? Start the conversation here and we can scope it honestly.</p>
|
||||
<div class="card-actions">
|
||||
<?php if ($discordUrl !== ''): ?>
|
||||
<a class="button button-primary" href="<?= website_escape($discordUrl) ?>" target="_blank" rel="noopener noreferrer">Discord</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($supportUrl !== ''): ?>
|
||||
<a class="button button-secondary" href="<?= website_escape($supportUrl) ?>" target="_blank" rel="noopener noreferrer">Support Portal</a>
|
||||
<a class="button button-secondary" href="<?= website_escape($supportUrl) ?>" target="_blank" rel="noopener noreferrer">Request Help</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($supportEmail !== ''): ?>
|
||||
<a class="button button-ghost" href="mailto:<?= website_escape($supportEmail) ?>">Email</a>
|
||||
|
|
@ -55,4 +55,3 @@ $loginUnavailable = $loginUnavailable ?? false;
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,8 @@ website_render(
|
|||
[
|
||||
'activePage' => 'pricing',
|
||||
'pageTitle' => 'Pricing - Gameservers.World',
|
||||
'metaDescription' => 'Pricing guidance and available game server plans for Gameservers.World.',
|
||||
'metaDescription' => 'Standard game hosting pricing plus honest guidance on separately quoted custom development and integration work.',
|
||||
'canonicalPath' => 'pricing.php',
|
||||
'services' => website_fetch_services(),
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -11,9 +11,8 @@ website_render(
|
|||
[
|
||||
'activePage' => 'servers',
|
||||
'pageTitle' => 'Game Servers - Gameservers.World',
|
||||
'metaDescription' => 'Browse supported game server packages, locations, and ordering options for Gameservers.World.',
|
||||
'metaDescription' => 'Browse supported game servers, live pricing where available, and developer-backed hosting options with mod, automation, and custom integration help.',
|
||||
'canonicalPath' => 'serverlist.php',
|
||||
'services' => $services,
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@ website_render(
|
|||
[
|
||||
'activePage' => 'support',
|
||||
'pageTitle' => 'Support - Gameservers.World',
|
||||
'metaDescription' => 'Support, Discord, documentation, and control panel access for Gameservers.World customers.',
|
||||
'metaDescription' => 'Get help with hosting, mods, Workshop, automation, integrations, and custom server development for Gameservers.World projects.',
|
||||
'canonicalPath' => 'support.php',
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue