# cPanel installation notes

## 1. Back up first

Back up the current `public_html` directory and database before uploading anything to an existing site.

## 2. Upload the foundation

Upload and extract this package. The eventual website build can copy `assets/`, `config/`, `mailer/`, and `vendor/` into its final application structure.

Rename `.htaccess.example` to `.htaccess` only after checking that the hosting account uses Apache or LiteSpeed and supports these directives.

## 3. Environment file

Copy `.env.example` to `.env` and enter the real cPanel-prefixed database name, database username, and password. The shipped file contains placeholders only.

The best production arrangement keeps `.env`, `config`, `database`, `mailer`, and `vendor` outside `public_html`. If the hosting layout cannot do this, retain the included deny rules and verify that direct web requests return `403 Forbidden`.

## 4. Database

1. Create the database and database user in cPanel.
2. Grant the user all required privileges on that database.
3. Open phpMyAdmin and select the database.
4. Import `database/instantaivirtuals.sql`.
5. Confirm that the tables and seeded `site_settings` rows exist.

Do not edit the SQL to include a different domain. It is already configured for `instantaivirtuals.com`.

## 5. PHP

Select PHP 8.1 or newer and enable PDO MySQL, OpenSSL, mbstring, fileinfo, and JSON support.

## 6. HTTPS and mail

Install the domain SSL certificate before enabling login. Configure mail afterward and keep SMTP credentials only in `.env`.

## 7. Final verification

- `https://instantaivirtuals.com` loads through HTTPS.
- HTTP redirects to HTTPS.
- Sensitive directories cannot be opened directly.
- Dark and light icons display correctly.
- The SQL import completed without errors.
- No default database or SMTP passwords remain.
