# Production Deployment Checklist - Kevron Suites & Apartments

This checklist outlines the mandatory steps for deploying the Kevron Suites and Apartments platform to production at `https://kevronapartments.com`.

---

## 1. Environment & Server Initialization
- `[ ]` Ensure server is configured for PHP 8.2+ and Nginx/Apache.
- `[ ]` Clone repository and execute `composer install --no-dev --optimize-autoloader`.
- `[ ]` Run production assets build: `npm install && npm run build`.
- `[ ]` Configure `.env` values:
  - `APP_ENV=production`
  - `APP_DEBUG=false`
  - `APP_URL=https://kevronapartments.com`
  - `APP_TIMEZONE=Africa/Lagos`
- `[ ]` Set secure application key: `php artisan key:generate`.
- `[ ]` Run database migrations: `php artisan migrate --force`.
- `[ ]` Link public storage directory: `php artisan storage:link`.

---

## 2. Performance Optimization
- `[ ]` Cache configuration: `php artisan config:cache`.
- `[ ]` Cache routing schema: `php artisan route:cache`.
- `[ ]` Compile and cache Blade views: `php artisan view:cache`.
- `[ ]` Enable OpCache inside `php.ini` for faster script execution.

---

## 3. Security, SSL & Webhooks
- `[ ]` Enforce Let's Encrypt SSL certificates (HTTPS).
- `[ ]` Configure custom Paystack and Flutterwave webhook endpoints `/api/payments/webhook`.
- `[ ]` Add `PAYSTACK_WEBHOOK_SECRET` and `FLUTTERWAVE_WEBHOOK_SECRET` inside `.env`.
- `[ ]` Restrict public access to secure storage paths (`storage/app/secure/*`).

---

## 4. Backups, Schedules & Monitoring
- `[ ]` Setup standard database daily backup cron jobs.
- `[ ]` Configure error tracking integrations (e.g. Sentry) for real-time exception logging.
- `[ ]` Run Laravel scheduler to check expired pending holds: `* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1`.
