# Installation (any server with PHP 8.2+)

Requirements: PHP ≥ 8.2 with `pdo_mysql, mbstring, openssl, curl, json, ctype, tokenizer, xml, fileinfo, zip, intl(optional)`; MySQL 5.7+/MariaDB 10.3+; HTTPS.

1. Upload & extract `voiceorder-saas.zip` (see [cPanel guide](CPANEL_DEPLOYMENT.md) for the recommended directory layout).
2. `cp .env.example .env` and fill `APP_URL`, `DB_*`, `MAIL_*`, and the one-time `VOICEORDER_ADMIN_*`.
3. `php artisan key:generate --force`
4. `php artisan migrate --force`
5. `php artisan db:seed --force` – creates the super admin (from `.env`), default settings and a **disabled, credential-less** "TZSMM Connect" provider. Then **remove `VOICEORDER_ADMIN_PASSWORD` from `.env`**.
   Alternative without storing a password: `php artisan voiceorder:create-admin you@example.com` (prompts).
6. `php artisan config:cache && php artisan route:cache && php artisan view:cache`
7. Add the cron job ([Cron setup](CRON.md)).
8. Log in at `/login` → **Voice API Management** → open the provider, enter the API key / webhook secret, set the real cost per call, run the checks, activate.
9. **Pricing & settings**: set default price, retry limits, contact email, manual-payment instructions.
10. Publish the plugin: **Plugin releases** → upload `voiceorder-wordpress-plugin.zip` as the first release (optional; needed only for auto-updates).

Never ship `.env`, `storage/`, `vendor/` or `database/*.sqlite` through a public URL.
