#!/bin/bash # Start ever-jobs NestJS API in background (ts-node mode, no webpack needed), then Streamlit. # If ever-jobs fails to start within 180s, Streamlit still launches # (dedicated scrapers for LinkedIn/Indeed/Glassdoor/Remotive/WWR still work; ever-jobs skipped). echo "=== Starting ever-jobs API on port 3001 ===" cd /app/vendor/ever-jobs npx nest start api & EVER_JOBS_PID=$! echo "Waiting for ever-jobs to be ready (up to 180s — ts-node compiles on first start)..." READY=0 for i in $(seq 1 90); do if curl -sf http://localhost:3001/health > /dev/null 2>&1; then echo "ever-jobs ready after ${i}x2s" READY=1 break fi sleep 2 done if [ $READY -eq 0 ]; then echo "WARNING: ever-jobs did not start in time — 160+ platforms will be skipped this session." echo " LinkedIn/Indeed/Glassdoor/Remotive/WeWorkRemotely still work normally." fi echo "=== Starting Streamlit ===" cd /app exec streamlit run ui.py --server.port=7860 --server.address=0.0.0.0