Files
beaver_project/router-proxy/start-proxy.sh
steven_li 9d6cde2d23 feat: 将项目从nano重命名为beaver并更新相关配置
- 将所有环境变量前缀从NANO_改为BEAVER_
- 更新README.md文档内容,包括项目介绍、组件说明和快速开始指南
- 修改.gitignore文件,添加auth-portal运行时路径排除规则
- 更新app-instance镜像标签从nano/app-instance改为beaver/app-instance
- 增强技能安全检查器,支持工具前缀白名单功能
- 添加技能草稿重新检查安全性API端点
- 扩展证据选择器,收集工具调用名称用于技能学习
- 改进技能合成器,基于实际调用的工具生成工具提示
- 优化路由超时处理机制,增加重试逻辑
- 更新后端架构文档,添加可视化入口和基础概念说明
- 实现在WebSocket消息中传递工具迭代次数信息
2026-05-20 18:01:06 +08:00

68 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
RENDER_SCRIPT="${SCRIPT_DIR}/render-routes.py"
PROXY_IMAGE="${PROXY_IMAGE:-nginx:1.27-alpine}"
PROXY_CONTAINER_NAME="${PROXY_CONTAINER_NAME:-beaver-router-proxy}"
PROXY_NETWORK_NAME="${PROXY_NETWORK_NAME:-beaver-instance-edge}"
PROXY_HTTP_PORT="${PROXY_HTTP_PORT:-8088}"
REGISTRY_PATH="${REGISTRY_PATH:-${SCRIPT_DIR}/../app-instance/runtime/registry/instances.json}"
OUTPUT_PATH="${OUTPUT_PATH:-${SCRIPT_DIR}/runtime/conf.d/instances.conf}"
REPLACE=0
usage() {
cat <<'EOF'
Usage:
./start-proxy.sh [--replace]
EOF
}
while [[ $# -gt 0 ]]; do
case "$1" in
--replace)
REPLACE=1
shift
;;
--help|-h)
usage
exit 0
;;
*)
printf '[start-proxy] unknown argument: %s\n' "$1" >&2
exit 1
;;
esac
done
python3 "$RENDER_SCRIPT" --registry "$REGISTRY_PATH" --output "$OUTPUT_PATH" >/dev/null
if ! docker network inspect "$PROXY_NETWORK_NAME" >/dev/null 2>&1; then
docker network create "$PROXY_NETWORK_NAME" >/dev/null
fi
if docker container inspect "$PROXY_CONTAINER_NAME" >/dev/null 2>&1; then
if [[ "$REPLACE" -eq 1 ]]; then
docker rm -f "$PROXY_CONTAINER_NAME" >/dev/null
else
printf '[start-proxy] container already running: %s\n' "$PROXY_CONTAINER_NAME"
exit 0
fi
fi
mkdir -p "${SCRIPT_DIR}/runtime/conf.d"
docker run -d \
--name "$PROXY_CONTAINER_NAME" \
--restart unless-stopped \
--network "$PROXY_NETWORK_NAME" \
-p "${PROXY_HTTP_PORT}:80" \
-v "${SCRIPT_DIR}/nginx.conf:/etc/nginx/nginx.conf:ro" \
-v "${SCRIPT_DIR}/runtime/conf.d:/etc/nginx/conf.d:ro" \
"$PROXY_IMAGE" >/dev/null
printf 'container_name=%s\n' "$PROXY_CONTAINER_NAME"
printf 'network_name=%s\n' "$PROXY_NETWORK_NAME"
printf 'http_port=%s\n' "$PROXY_HTTP_PORT"