Install Nuvabill in about 15 minutes
You need a normal hosting account with PHP. No command line is needed: upload, open the installer, add one cron job.
1. Check your hosting
- PHP 8.3 or newer (8.4 works too)
- PHP extensions:
pdo,openssl,mbstring,tokenizer,xml,ctype,json,fileinfo,curl,zip,intl,sodiumandbcmath - A database: MySQL 8 or MariaDB 10.6+. SQLite is fine for testing and small sites.
- Cron jobs that can run every minute
In cPanel, choose the PHP version in Select PHP Version or MultiPHP Manager, and turn on missing extensions there. The installer checks everything and tells you what is missing.
2. Upload Nuvabill
- Download
nuvabill-x.y.z.zipfrom the latest release on GitHub. - In cPanel, create a domain or subdomain, for example
billing.yourhost.com. Set its document root to a new folder and add/publicat the end, for examplebilling.yourhost.com/public. - Open File Manager, go to that folder (not the
publicfolder inside it), upload the zip and choose Extract. - In cPanel, create an empty MySQL database and a user, and give the user all privileges on the database.
Why the public folder? Only public should be reachable from the web. Your settings file (.env), the code and the database stay private. If your host cannot change the document root, Nuvabill's own .htaccess still keeps those files private.
3. Run the web installer
Open your domain in a browser. The installer:
- checks your PHP version, extensions and folder permissions,
- connects to the database you created,
- asks for your company name and email,
- creates your owner staff account.
When it finishes, the installer closes itself. Sign in to the admin area at /admin.
4. Add the cron job
One cron job runs everything: renewal invoices, reminders, suspensions, email and updates. In cPanel open Cron Jobs, choose Once Per Minute and add this command. The exact line for your server is shown in the admin area under Settings → Automation.
cd /home/USER/billing.yourhost.com && /usr/local/bin/php artisan schedule:run >> /dev/null 2>&1
The dashboard warns you if the cron job stops running.
5. Connect your business
- Servers: add your cPanel/WHM server with a WHM API token and press Test connection.
- Products: create your plans, set prices for each billing cycle and choose the WHM package.
- Settings → Payment gateways: turn on Stripe, PayPal or bank transfer. Add the webhook address that Nuvabill shows you in your Stripe or PayPal account.
- Settings → Sending email: add your SMTP details and send yourself a test email.
- Your profile: turn on two-factor login.
Your store is now live at your domain. Place a test order to see the full flow: order, invoice, payment and account setup.
Using Cloudflare
If your site is behind Cloudflare, add this line to the .env file in the Nuvabill folder, so sign-in limits and logs see your visitors' real IP addresses:
NUVABILL_TRUSTED_PROXIES=cloudflare
Use the Full (strict) SSL mode in Cloudflare, with a valid certificate on your server (cPanel AutoSSL is enough).
Updates
Nuvabill checks for new versions every day. Go to Updates in the admin area and press Update now, or let security updates install themselves at night. Every update is signed; Nuvabill checks the signature, backs up your files and database, and rolls back if something fails.
Getting help
Found a problem or have a question? Open an issue on GitHub. The read me has more details, including how to write extensions and themes.