File size: 1,745 Bytes
27d974a
39cfcd1
27d974a
 
 
 
 
 
 
 
39cfcd1
27d974a
 
 
39cfcd1
27d974a
 
 
39cfcd1
27d974a
 
 
 
 
 
 
 
 
 
 
 
 
 
39cfcd1
27d974a
 
 
 
39cfcd1
27d974a
 
 
 
39cfcd1
27d974a
 
 
 
 
 
 
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
#!/usr/bin/env bash
# Start self-hosted LanguageTool (optional) then the rewrite API.
set -euo pipefail

LT_HOME="${LANGUAGETOOL_HOME:-/opt/languagetool}"
LT_PORT="${LANGUAGETOOL_PORT:-8010}"
LT_JAVA_OPTS="${LANGUAGETOOL_JAVA_OPTS:--Xms256m -Xmx1024m}"

start_languagetool() {
  if [[ "${LANGUAGE_TOOL_EMBEDDED:-true}" != "true" ]]; then
    echo "[rewrite-api] Embedded LanguageTool disabled"
    return 0
  fi
  if [[ ! -f "${LT_HOME}/languagetool-server.jar" ]]; then
    echo "[rewrite-api] LanguageTool jar not found; rewrites will use mechanics cleanup only"
    return 0
  fi

  echo "[rewrite-api] Starting LanguageTool on :${LT_PORT} ..."
  # shellcheck disable=SC2086
  java ${LT_JAVA_OPTS} -cp "${LT_HOME}/languagetool-server.jar" \
    org.languagetool.server.HTTPServer \
    --port "${LT_PORT}" \
    --public \
    --allow-origin "*" \
    >/tmp/languagetool.log 2>&1 &
  echo $! >/tmp/languagetool.pid

  export LANGUAGE_TOOL_URL="${LANGUAGE_TOOL_URL:-http://127.0.0.1:${LT_PORT}}"
  export LANGUAGE_TOOL_ENABLED="${LANGUAGE_TOOL_ENABLED:-true}"

  for i in $(seq 1 90); do
    if curl -fsS "http://127.0.0.1:${LT_PORT}/v2/languages" >/dev/null 2>&1; then
      echo "[rewrite-api] LanguageTool HTTP up (attempt ${i}) — prewarming check..."
      curl -fsS -X POST "http://127.0.0.1:${LT_PORT}/v2/check" \
        --data-urlencode "language=en-US" \
        --data-urlencode "text=She go to the store yesterday." \
        >/dev/null 2>&1 || true
      echo "[rewrite-api] LanguageTool ready"
      return 0
    fi
    sleep 2
  done
  echo "[rewrite-api] WARNING: LanguageTool did not become ready"
}

start_languagetool

HOST="${HOST:-0.0.0.0}"
PORT="${PORT:-7860}"
exec uvicorn app.main:app --host "${HOST}" --port "${PORT}"