web.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/bin/bash
  2. set -e
  3. echo "🚀 Starting evals web service..."
  4. wait_for_db() {
  5. echo "⏳ Waiting for database..."
  6. # postgresql://user:password@host:port/database
  7. DB_HOST=$(echo $DATABASE_URL | sed -n 's/.*@\([^:]*\):.*/\1/p')
  8. DB_PORT=$(echo $DATABASE_URL | sed -n 's/.*:\([0-9]*\)\/.*/\1/p')
  9. DB_USER=$(echo $DATABASE_URL | sed -n 's/.*\/\/\([^:]*\):.*/\1/p')
  10. DB_NAME=$(echo $DATABASE_URL | sed -n 's/.*\/\([^?]*\).*/\1/p')
  11. DB_HOST=${DB_HOST:-db}
  12. DB_PORT=${DB_PORT:-5432}
  13. DB_USER=${DB_USER:-postgres}
  14. DB_NAME=${DB_NAME:-evals_development}
  15. until pg_isready -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" > /dev/null 2>&1; do
  16. echo "⏳ Database not ready yet, waiting 2 seconds..."
  17. sleep 2
  18. done
  19. echo "✅ Database is ready"
  20. }
  21. run_migrations() {
  22. echo "🔄 Running database migrations..."
  23. if pnpm --filter @roo-code/evals db:migrate; then
  24. echo "✅ Database migrations completed successfully!"
  25. else
  26. echo "❌ Database migration failed!"
  27. exit 1
  28. fi
  29. }
  30. main() {
  31. wait_for_db
  32. run_migrations
  33. echo "🌐 Starting web service..."
  34. pnpm --filter @roo-code/web-evals start
  35. }
  36. main "$@"