- 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
- Full nixpanel-website monorepo: web (React/Vite) + api (Fastify)
- Add /install page with one-liner, manual steps, requirements,
software table, firewall ports, service management, and update/uninstall
- Add Install link to header nav and footer
- Add 'Install guide' CTA button to home page hero
- Add 'outline' variant to Button component
- Add .gitignore and .gitattributes
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>