fedi-feed-router/docker/dev/podman/container-start.sh
2025-08-09 13:48:25 +02:00

73 lines
1.9 KiB
Bash
Executable file

#!/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