#!/bin/bash # Copy development environment configuration to backend cp /var/www/html/docker/dev/podman/.env.dev /var/www/html/backend/.env # Setup nginx configuration for development cp /var/www/html/docker/dev/podman/nginx.conf /etc/nginx/sites-available/default # Install/update dependencies echo "Installing PHP dependencies..." cd /var/www/html/backend composer install --no-interaction # Ensure APP_KEY is set in backend/.env ENV_APP_KEY="${APP_KEY}" if [ -n "$ENV_APP_KEY" ]; then echo "Using APP_KEY from environment" sed -i "s|^APP_KEY=.*|APP_KEY=${ENV_APP_KEY}|" /var/www/html/backend/.env || true fi # Generate application key if still missing CURRENT_APP_KEY=$(grep "^APP_KEY=" /var/www/html/backend/.env | cut -d'=' -f2) if [ -z "$CURRENT_APP_KEY" ]; then echo "Generating application key..." php artisan key:generate --force fi # Verify APP_KEY APP_KEY=$(grep "^APP_KEY=" /var/www/html/backend/.env | cut -d'=' -f2) if [ -n "$APP_KEY" ]; then echo "✅ APP_KEY successfully set." else echo "❌ ERROR: APP_KEY not set!" fi # Wait for database to be ready echo "Waiting for database..." while ! mysql -h db -u ffr_user -pffr_password --connect-timeout=2 -e "SELECT 1" >/dev/null 2>&1; do echo "Database not ready, waiting..." sleep 1 done echo "Database connection established!" # Run migrations and seeders php artisan migrate --force php artisan db:seed --force # Build frontend if not already built cd /var/www/html/frontend if [ ! -d "dist" ]; then echo "Building React frontend..." npm run build fi # Start services echo "Starting services..." # Start React dev server cd /var/www/html/frontend npm run dev -- --host 0.0.0.0 --port 5173 & # Start Laravel backend cd /var/www/html/backend php artisan serve --host=127.0.0.1 --port=8000 & # Start Horizon (manages queue workers in dev) php artisan horizon & # Start nginx nginx -g "daemon off;" & # Wait for background processes wait