# Install on cPanel

Install Open Core HR on a cPanel account that supports SSH, Composer, cron and persistent workers.

This recipe requires compatible web/CLI PHP, Terminal/SSH, Composer, cron and persistent worker support. cPanel alone does not guarantee these capabilities.

1. In **Select PHP Version** or **MultiPHP Manager**, select compatible PHP and its required extensions. Confirm the Terminal and cron PHP binary uses the same compatible version.
2. In **MySQL Databases**, create the database and user, assign permissions on this database, and record the full prefixed names privately.
3. Extract the backend outside `public_html`, for example `/home/account/open-core-hr/backend`.
4. In **Domains**, set the application hostname's document root to `/home/account/open-core-hr/backend/public`.
5. Enable HTTPS with the host's SSL/AutoSSL controls.
6. Open Terminal, change into `backend`, and follow [preparation](https://czappstudio.com/docs/installation/prepare) and [configuration](https://czappstudio.com/docs/installation/configuration).
7. In **Cron Jobs**, run the scheduler every minute using absolute paths:

```bash
/path/to/php /home/account/open-core-hr/backend/artisan schedule:run >> /home/account/open-core-hr/backend/storage/logs/scheduler.log 2>&1
```

Use the provider's actual compatible PHP binary. Monitor and rotate this log. Ask the provider to supervise `queue:work` and Reverb if needed; see [services](https://czappstudio.com/docs/installation/services).

If the host cannot set `public` as the document root or run required services, use a compatible plan or VPS. Moving the front controller into a public repository root is not an approved workaround.

Finish the [installation checklist](https://czappstudio.com/docs/installation/checklist). cPanel acceptance remains pending.
