Skip to content

Production Checklist

lpachecob edited this page Mar 24, 2026 · 1 revision

βœ… Production Deployment Checklist

A checklist for deploying BOUNDLY applications to production.


πŸš€ Pre-Deployment

Environment Setup

  • Copy .env.example to .env
  • Set APP_ENV=production
  • Set APP_DEBUG=false
  • Generate APP_KEY with php artisan key:generate
  • Configure database connection (MySQL/PostgreSQL)
  • Configure cache driver (redis, file, memcached)
  • Set LOG_CHANNEL=daily or your preferred log driver

Security

  • Set strong APP_KEY
  • Configure REQUEST_SIGNING_SECRET (if using HMAC)
  • Set BOUNDLY_AUTH_GUARD to your auth provider
  • Enable CORS if needed:
    'cors' => [
        'enabled' => true,
        'allowed_origins' => ['https://yourdomain.com'],
    ],
  • Review IP access control (if needed):
    'ip_access' => [
        'enabled' => true,
        'whitelist' => ['your-office-ip/32'],
    ],

Performance

  • Set BOUNDLY_DISABLE_CACHE=false (production)
  • Run php artisan core:cache to pre-compile metadata
  • Configure response cache if needed:
    'cache' => [
        'response' => [
            'enabled' => true,
            'store' => 'redis',
            'ttl' => 60,
        ],
    ],

πŸ“¦ Deployment

Option 1: Traditional Server (SSH/cPanel)

# Connect to server
ssh user@your-server.com

# Pull latest code
cd /var/www/boundly
git pull origin main

# Install dependencies
composer install --optimize-autoloader --no-dev

# Run deploy script
bash deploy.sh

# Restart PHP-FPM
sudo systemctl restart php-fpm

Option 2: Laravel Forge

Add these commands to Forge Deploy Script:

php artisan core:migrate --force
php artisan core:cache

Option 3: Envoyer

Create a deployment hook:

php artisan core:migrate --force
php artisan core:cache

Option 4: Custom CI/CD

# GitHub Actions example
- name: Deploy
  run: |
    ssh user@server "cd /var/www/app && bash deploy.sh"

πŸ”§ Post-Deployment

Verify Health

# Check health endpoint
curl https://your-domain.com/api/health

# Expected response:
{
  "success": true,
  "data": {
    "status": "healthy",
    "timestamp": "2026-..."
  }
}

Run Tests (Optional)

composer test

Clear Caches (If needed)

php artisan optimize:clear
php artisan core:cache

πŸ“Š Monitoring

BOUNDLY provides hooks for connecting your preferred monitoring tool.

Sentry (Error Tracking)

// .env
MONITORING_API_KEY=your-sentry-dsn
// config/boundly.php
'monitoring' => [
    'enabled' => true,
    'provider' => 'sentry',
    'api_key' => env('MONITORING_API_KEY'),
],

Then install Sentry SDK:

composer require sentry/sentry-laravel

Grafana/Prometheus

Configure your metrics endpoint using BOUNDLY's health checks and logging.

Custom Hook

Create your own monitoring provider by implementing a contract in Infrastructure/LaravelEngine/Providers/.


πŸ”’ Production Environment Variables

Variable Required Description
APP_ENV βœ… Set to production
APP_DEBUG βœ… Set to false
APP_KEY βœ… Generated with key:generate
APP_URL βœ… Your production URL
DB_CONNECTION βœ… Database driver
DB_HOST βœ… Database host
DB_DATABASE βœ… Database name
DB_USERNAME βœ… Database user
DB_PASSWORD βœ… Database password
CACHE_DRIVER βœ… redis, file, etc.
LOG_CHANNEL βœ… Log driver
BOUNDLY_AUTH_GUARD ❌ Auth guard (default: sanctum)
REQUEST_SIGNING_SECRET ❌ For HMAC signing
MONITORING_API_KEY ❌ For error tracking

πŸ†˜ Troubleshooting

Database Connection Failed

  1. Check .env database credentials
  2. Verify database server is accessible
  3. Check firewall rules

500 Error After Deploy

  1. Run php artisan optimize:clear
  2. Check storage/logs/laravel.log
  3. Verify APP_KEY is set

Health Check Failing

# Check individual services
php artisan core:health --detailed

Cache Issues

php artisan cache:clear
php artisan core:cache

πŸ“š Resources


Back to: Home πŸͺ„

Clone this wiki locally