feat: rewrite website in PHP, drop Node.js stack

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]>
This commit is contained in:
NixReaper
2026-04-05 11:29:58 -05:00
co-authored by Claude Sonnet 4.6
parent 72f5cc1060
commit faf0818dde
69 changed files with 1733 additions and 2616 deletions
+10
View File
@@ -0,0 +1,10 @@
<?php $pageTitle = '404 — NixPanel'; ?>
<div class="min-h-[80vh] flex items-center justify-center px-4 text-center">
<div>
<p class="text-8xl font-extrabold text-brand-600 mb-4">404</p>
<h1 class="text-2xl font-bold text-white mb-3">Page not found</h1>
<p class="text-gray-400 mb-8">The page you're looking for doesn't exist.</p>
<a href="/" class="btn-primary px-8 py-3">Go home</a>
</div>
</div>