35 lines
830 B
Bash
35 lines
830 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/env.sh"
|
|
|
|
PID_FILE="${PID_DIR}/backend.pid"
|
|
LOG_FILE="${LOG_DIR}/backend.log"
|
|
|
|
if is_running "${PID_FILE}"; then
|
|
echo "Backend is already running (pid $(cat "${PID_FILE}"))."
|
|
echo "URL: http://${HOST_IP}:${BACKEND_PORT}"
|
|
exit 0
|
|
fi
|
|
|
|
rm -f "${PID_FILE}"
|
|
|
|
echo "Starting backend..."
|
|
echo "Log: ${LOG_FILE}"
|
|
|
|
setsid bash -c '
|
|
cd "$0" || exit 1
|
|
exec env \
|
|
GATEWAY_CORS_ORIGINS="$1" \
|
|
PYTHONPATH=. \
|
|
uv run uvicorn app.gateway.app:app \
|
|
--host "$2" \
|
|
--port "$3" \
|
|
--reload
|
|
' "${BACKEND_DIR}" "${GATEWAY_CORS_ORIGINS}" "${BACKEND_HOST}" "${BACKEND_PORT}" \
|
|
>"${LOG_FILE}" 2>&1 &
|
|
|
|
echo "$!" >"${PID_FILE}"
|
|
echo "Backend started (pid $(cat "${PID_FILE}"))."
|
|
echo "URL: http://${HOST_IP}:${BACKEND_PORT}"
|