#!/usr/bin/env sh set -eu if [ -f /app/.env ]; then set -a . /app/.env set +a fi : "${PORT:=7860}" : "${CAPTCHA_INTERNAL_HOST:=127.0.0.1}" : "${CAPTCHA_INTERNAL_PORT:=9876}" : "${CAPTCHA_PROVIDER_URL:=http://${CAPTCHA_INTERNAL_HOST}:${CAPTCHA_INTERNAL_PORT}}" : "${BROWSER_BACKEND:=cloak}" : "${POOL_SIZE:=0}" export PORT CAPTCHA_PROVIDER_URL BROWSER_BACKEND POOL_SIZE mkdir -p /app/data supervise_captcha() { while true; do echo "[space] starting captcha provider on ${CAPTCHA_INTERNAL_HOST}:${CAPTCHA_INTERNAL_PORT}" set +e ( cd /app/captcha-provider HOST="${CAPTCHA_INTERNAL_HOST}" PORT="${CAPTCHA_INTERNAL_PORT}" node server.js ) code="$?" set -e echo "[space] captcha provider exited with ${code}, restarting in 2s" sleep 2 done } supervise_proxy() { while true; do echo "[space] starting zai2api proxy on 0.0.0.0:${PORT}" set +e /app/zai2api code="$?" set -e echo "[space] zai2api proxy exited with ${code}, restarting in 2s" sleep 2 done } cleanup() { kill "${CAPTCHA_SUP_PID:-}" "${PROXY_SUP_PID:-}" 2>/dev/null || true wait 2>/dev/null || true } trap 'cleanup; exit 0' INT TERM EXIT supervise_captcha & CAPTCHA_SUP_PID="$!" supervise_proxy & PROXY_SUP_PID="$!" wait