File size: 1,276 Bytes
bbe37cc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/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