docker-laravel-stack/scripts/setup-laravel.sh

52 lines
1.6 KiB
Bash
Raw Permalink Normal View History

2025-10-31 11:29:14 -04:00
#!/bin/bash
# =========================================================
# Laravel Setup Script
# =========================================================
# Load environment variables
if [ -f .env ]; then
export $(grep -v '^#' .env | sed 's/#.*//' | grep -E '^[A-Z0-9_]+=')
else
echo "❌ .env file not found. Exiting."
exit 1
fi
# Get project name from .env or default to 'app'
PROJECT_NAME=${PROJECT_NAME:-app}
APP_PATH="./laravel/$PROJECT_NAME"
# Create Laravel project if it doesn't exist
if [ ! -d "$APP_PATH" ]; then
echo "📦 Creating Laravel project in $APP_PATH..."
docker exec -it php bash -c "composer create-project --prefer-dist laravel/laravel $APP_PATH"
else
echo "✅ Laravel project already exists at $APP_PATH"
fi
# Copy .env.example if .env is missing
if [ ! -f "$APP_PATH/.env" ]; then
echo "📄 Copying .env.example to .env..."
docker exec -it php bash -c "cp $APP_PATH/.env.example $APP_PATH/.env"
else
echo "✅ .env already exists in $APP_PATH"
fi
# Generate APP_KEY if not set
APP_KEY_VALUE=$(docker exec -it php bash -c "cd $APP_PATH && php artisan key:generate --show")
if ! grep -q "^APP_KEY=" "$APP_PATH/.env"; then
echo "🔑 Setting APP_KEY in .env..."
sed -i "s|^APP_KEY=.*|APP_KEY=$APP_KEY_VALUE|" "$APP_PATH/.env"
else
echo "✅ APP_KEY already set"
fi
# Install Composer dependencies
echo "📦 Installing Composer dependencies..."
docker exec -it php bash -c "cd $APP_PATH && composer install"
# Set correct permissions
echo "🔧 Fixing permissions..."
docker exec -it php bash -c "chown -R www-data:www-data $APP_PATH"
echo "🎉 Laravel setup complete for project '$PROJECT_NAME'"