Replace React/Vite frontend + Fastify API with a single PHP application. - Front controller router in public/index.php (clean URLs via .htaccess) - Session-based auth (no JWT) — register, login, verify email, forgot/reset password, logout - Stripe checkout sessions, billing portal, webhook handler (checkout.session.completed, subscription.updated/deleted) - License IP change via internal licensing server API - PHP classes: DB (PDO), Auth, Mailer (PHPMailer), StripeClient - Views: home, pricing, install, login, register, dashboard, verify-email, forgot-password, reset-password, 404 - Tailwind CSS via CDN — no build step required - Composer dependencies: stripe/stripe-php, phpmailer/phpmailer, vlucas/phpdotenv, ramsey/uuid - CSRF protection on all POST forms - PRG pattern with session flash messages Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
52 lines
3.0 KiB
PHP
52 lines
3.0 KiB
PHP
<?php $pageTitle = 'NixPanel — Modern Web Hosting Control Panel'; ?>
|
|
<?php
|
|
$features = [
|
|
['icon' => '⚡', 'title' => 'Lightning Fast', 'body' => 'Built for performance. Nginx support, PHP-FPM pools, and optimized defaults out of the box.'],
|
|
['icon' => '🔒', 'title' => 'Security First', 'body' => "Hardened defaults, Let's Encrypt SSL automation, Fail2ban, and two-factor auth."],
|
|
['icon' => '🌐', 'title' => 'Full DNS Control', 'body' => 'Manage BIND9 zones and records directly from the panel. No third-party DNS required.'],
|
|
['icon' => '📊', 'title' => 'Complete Control', 'body' => 'Manage email, databases, cron jobs, FTP accounts, and subdomains in one clean dashboard.'],
|
|
['icon' => '🔄', 'title' => 'Easy Migration', 'body' => 'Moving from cPanel? Import your accounts with a single command using our migration tool.'],
|
|
['icon' => '💳', 'title' => 'Simple Licensing', 'body' => 'Tied to your server IP. No per-user fees, no surprises. Upgrade or cancel anytime.'],
|
|
];
|
|
?>
|
|
|
|
<section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-20 text-center">
|
|
<div class="inline-flex items-center gap-2 bg-brand-900/40 border border-brand-500/30 text-brand-400 text-xs font-medium px-3 py-1.5 rounded-full mb-6">
|
|
Now in public beta
|
|
</div>
|
|
<h1 class="text-5xl sm:text-6xl font-extrabold text-white leading-tight tracking-tight">
|
|
The hosting control panel<br>
|
|
<span class="text-brand-500">you actually want to use.</span>
|
|
</h1>
|
|
<p class="mt-6 text-lg text-gray-400 max-w-2xl mx-auto">
|
|
NixPanel is a modern, open-source alternative to cPanel. Manage your Linux server,
|
|
host sites, and control everything from a clean, fast dashboard.
|
|
</p>
|
|
<div class="mt-10 flex flex-col sm:flex-row gap-4 justify-center">
|
|
<a href="/register" class="btn-primary text-base px-7 py-3">Get started free</a>
|
|
<a href="/install" class="btn-outline text-base px-7 py-3">Install guide</a>
|
|
<a href="/pricing" class="btn-secondary text-base px-7 py-3">View pricing</a>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
|
|
<h2 class="text-3xl font-bold text-white text-center mb-12">Everything you need to run a server</h2>
|
|
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
<?php foreach ($features as $f): ?>
|
|
<div class="card">
|
|
<div class="text-3xl mb-3"><?= $f['icon'] ?></div>
|
|
<h3 class="font-semibold text-white mb-2"><?= e($f['title']) ?></h3>
|
|
<p class="text-sm text-gray-400"><?= e($f['body']) ?></p>
|
|
</div>
|
|
<?php endforeach ?>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
|
|
<div class="bg-brand-900/20 border border-brand-500/20 rounded-2xl p-12 text-center">
|
|
<h2 class="text-3xl font-bold text-white mb-4">Ready to take control?</h2>
|
|
<p class="text-gray-400 mb-8">Start free. Upgrade when you need more.</p>
|
|
<a href="/register" class="btn-primary text-base px-8 py-3">Create your account</a>
|
|
</div>
|
|
</section>
|