#!/bin/bash set -e echo "Starting Dify services..." # Start API server in background cd /app/api echo "Starting API server on port 7860..." gunicorn --bind 0.0.0.0:7860 \ --workers 1 \ --worker-class gevent \ --timeout 200 \ --preload \ app:app & # Start Next.js web server cd /app/web echo "Starting Next.js server on port 3000..." # Ensure standalone directory exists if [ ! -d ".next/standalone" ]; then echo "Error: Next.js standalone build not found" exit 1 fi # Copy static files if they exist if [ -d ".next/static" ]; then mkdir -p .next/standalone/.next cp -r .next/static .next/standalone/.next/ fi # Copy public files if they exist if [ -d "public" ]; then cp -r public .next/standalone/ fi cd .next/standalone echo "Starting Next.js standalone server..." NODE_ENV=production \ NEXT_TELEMETRY_DISABLED=1 \ node server.js & # Wait for both processes wait