#!/usr/bin/env sh set -eu PROJECT_DIR="/opt/people-flow" CONFIG_TEMPLATE="${PROJECT_DIR}/config/config.example.yaml" CONFIG_PATH="${CONFIG_PATH:-${PROJECT_DIR}/config/local.yaml}" OUTPUT_DIR="${OUTPUT_DIR:-${PROJECT_DIR}/outputs}" RTSP_URL="${RTSP_URL:-}" API_HOST="${API_HOST:-0.0.0.0}" API_PORT="${API_PORT:-18082}" mkdir -p "${OUTPUT_DIR}" "$(dirname "${CONFIG_PATH}")" if [ ! -f "${CONFIG_PATH}" ]; then cp "${CONFIG_TEMPLATE}" "${CONFIG_PATH}" fi python - "$CONFIG_PATH" "$RTSP_URL" "$OUTPUT_DIR" <<'PY' from pathlib import Path import sys import yaml config_path = Path(sys.argv[1]) rtsp_url = sys.argv[2] output_dir = sys.argv[3] raw = yaml.safe_load(config_path.read_text(encoding="utf-8")) or {} runtime = raw.setdefault("runtime", {}) if rtsp_url: runtime["rtsp_url"] = rtsp_url runtime["output_dir"] = output_dir yolo = raw.setdefault("yolo", {}) yolo.setdefault("model_path", "weights/yolo11n.pt") config_path.write_text( yaml.safe_dump(raw, allow_unicode=True, sort_keys=False), encoding="utf-8", ) PY exec python main.py --config "${CONFIG_PATH}" manage-api --host "${API_HOST}" --port "${API_PORT}"