any2human / scripts /start.sh
idnameraj's picture
Upload 126 files
39cfcd1 verified
Raw
History Blame Contribute Delete
1.75 kB
#!/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}"