|
|
@@ -1,16 +1,17 @@
|
|
|
#!/bin/sh
|
|
|
set -e
|
|
|
|
|
|
+# Include app binaries in our path
|
|
|
export PATH="/app/.venv/bin:$PATH"
|
|
|
+
|
|
|
+# Shared config
|
|
|
: "${ROOM_CAL_DATA_HOME:=/config}"
|
|
|
export ROOM_CAL_DATA_HOME
|
|
|
-
|
|
|
if [ -z "$TZ" ] && [ -f "$ROOM_CAL_DATA_HOME/config.json" ]; then
|
|
|
TZ=$(python3 -c "import json,sys; print(json.load(open('$ROOM_CAL_DATA_HOME/config.json')).get('timezone',''))" 2>/dev/null || true)
|
|
|
fi
|
|
|
: "${TZ:=UTC}"
|
|
|
export TZ
|
|
|
-
|
|
|
if [ -z "$ROOM_CAL_API_URL" ] && [ -f "$ROOM_CAL_DATA_HOME/config.json" ]; then
|
|
|
ROOM_CAL_API_URL=$(python3 -c "import json,sys; print(json.load(open('$ROOM_CAL_DATA_HOME/config.json')).get('api_url',''))" 2>/dev/null || true)
|
|
|
fi
|
|
|
@@ -18,26 +19,37 @@ export ROOM_CAL_API_URL
|
|
|
|
|
|
SERVICE="${1:-api}"
|
|
|
|
|
|
+# MCP
|
|
|
if [ "$SERVICE" = "mcp" ]; then
|
|
|
: "${FASTMCP_HOST:=0.0.0.0}"
|
|
|
: "${FASTMCP_PORT:=8001}"
|
|
|
: "${FASTMCP_LOG_LEVEL:=INFO}"
|
|
|
: "${FASTMCP_ENABLE_RICH_LOGGING:=false}"
|
|
|
: "${FASTMCP_ENABLE_RICH_TRACEBACKS:=false}"
|
|
|
-
|
|
|
export FASTMCP_TRANSPORT=http
|
|
|
export FASTMCP_HOST FASTMCP_PORT FASTMCP_LOG_LEVEL
|
|
|
export FASTMCP_ENABLE_RICH_LOGGING FASTMCP_ENABLE_RICH_TRACEBACKS
|
|
|
|
|
|
exec room-mcp
|
|
|
-else
|
|
|
- : "${API_HOST:=0.0.0.0}"
|
|
|
- : "${API_PORT:=8000}"
|
|
|
- : "${LOG_LEVEL:=info}"
|
|
|
+fi
|
|
|
|
|
|
- LOG_CONFIG=/etc/uvicorn_log.json
|
|
|
- [ -f /config/uvicorn_log.json ] && LOG_CONFIG=/config/uvicorn_log.json
|
|
|
+# Shared API config
|
|
|
+: "${API_HOST:=0.0.0.0}"
|
|
|
+: "${API_PORT:=8000}"
|
|
|
+: "${LOG_LEVEL:=info}"
|
|
|
+LOG_CONFIG=/etc/uvicorn_log.json
|
|
|
+[ -f "${ROOM_CAL_DATA_HOME}/uvicorn_log.json" ] && LOG_CONFIG="${ROOM_CAL_DATA_HOME}/uvicorn_log.json"
|
|
|
|
|
|
+# Calc-only API
|
|
|
+if [ "$SERVICE" = "calc" ]; then
|
|
|
+ exec uvicorn "room_cal.api.calc_app:app" \
|
|
|
+ --host "$API_HOST" \
|
|
|
+ --port "$API_PORT" \
|
|
|
+ --log-config "$LOG_CONFIG" \
|
|
|
+ --log-level "$LOG_LEVEL"
|
|
|
+
|
|
|
+# Standard API
|
|
|
+else
|
|
|
exec uvicorn "room_cal.api:create_app" --factory \
|
|
|
--host "$API_HOST" \
|
|
|
--port "$API_PORT" \
|