Commit Graph
2 Commits
Author SHA1 Message Date
NixReaper 29c18c5af8 fix: rename setInterval to setBilling, add deploy.sh
- pricing.php: rename setInterval() to setBilling() to stop shadowing
  the native window.setInterval — the billing toggle was silently broken
- deploy.sh: full automated deploy script for nixpanel.io
  - DocumentRoot set to public/ (fixes /pricing, /login 404s)
  - AllowOverride All so public/.htaccess handles all routing
  - PHP 8.3-FPM via Apache mod_proxy_fcgi
  - composer install, DB migrations, .env setup, SSL via certbot
2026-04-25 05:37:31 -05:00
NixReaperandClaude Sonnet 4.6 faf0818dde 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]>
2026-04-05 11:29:58 -05:00