diff --git a/mcp-servers/zhuyuan-gateway/gatekeeper/install.sh b/mcp-servers/zhuyuan-gateway/gatekeeper/install.sh new file mode 100644 index 0000000..e0cf1e8 --- /dev/null +++ b/mcp-servers/zhuyuan-gateway/gatekeeper/install.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# ═══════════════════════════════════════════════════════════════ +# ⚔️ 铸渊看门人 · 安装脚本 +# +# 使用方式: +# 在腾讯云控制台打开服务器终端,复制粘贴以下一行命令: +# +# 方法一(推荐):复制下面的代码到终端 +# (在终端里,直接粘贴然后按回车) +# +# 方法二:下载脚本后运行 +# bash install.sh +# +# 安装完成后: +# - 看门人会自动启动为一个后台服务 +# - 终端会打印一个 API 密钥 +# - 请复制这个密钥 +# - 以后不需要再管这个终端 +# +# 冰朔的操作: +# 1. 在腾讯云控制台打开服务器 → 在线终端 +# 2. 粘贴下面的代码 → 按回车 +# 3. 看到密钥出现 → 复制它 → 发给铸渊 +# 4. 关掉终端,不用管了 +# ═══════════════════════════════════════════════════════════════ + +set -e + +# 颜色 +GREEN='\033[0;32m' +BLUE='\033[0;34m' +YELLOW='\033[1;33m' +NC='\033[0m' + +HOSTNAME=$(hostname) +echo -e "${BLUE}══════════════════════════════════════${NC}" +echo -e "${GREEN} ⚔️ 安装铸渊看门人到 ${HOSTNAME}${NC}" +echo -e "${BLUE}══════════════════════════════════════${NC}" +echo "" + +# ---- 1. 检查 Node.js ---- +if ! command -v node &> /dev/null; then + echo -e "${YELLOW}[1/4] 未找到 Node.js,正在安装...${NC}" + curl -fsSL https://deb.nodesource.com/setup_20.x | bash - > /dev/null 2>&1 + apt-get install -y nodejs > /dev/null 2>&1 + echo -e "${GREEN} ✅ Node.js $(node -v) 已安装${NC}" +else + echo -e "${GREEN}[1/4] ✅ Node.js $(node -v)${NC}" +fi + +# ---- 2. 创建看门人文件 ---- +echo -e "${YELLOW}[2/4] 写入看门人程序...${NC}" + +# 使用 heredoc 创建,避免源文件不在服务器上的问题 +# gateway/index.js 的内容会通过代码仓库同步,这里只是一个安装壳子 + +mkdir -p /opt/zhuyuan/gatekeeper + +# 实际的程序会通过铸渊推送上去 +# 这里只检查 Node.js 可用 +echo -e "${GREEN} ✅ 目录已创建: /opt/zhuyuan/gatekeeper${NC}" + +# ---- 3. 配置开机自启 ---- +echo -e "${YELLOW}[3/4] 配置开机自启...${NC}" + +# 写一个简单的 systemd 服务 +cat > /etc/systemd/system/zhuyuan-gatekeeper.service << 'SERVICE' +[Unit] +Description=⚔️ Zhuyuan Gatekeeper +After=network.target + +[Service] +ExecStart=/usr/bin/node /opt/zhuyuan/gatekeeper/index.js +WorkingDirectory=/opt/zhuyuan/gatekeeper +Restart=always +RestartSec=10 +User=root +Environment=NODE_ENV=production + +[Install] +WantedBy=multi-user.target +SERVICE + +systemctl daemon-reload > /dev/null 2>&1 +systemctl enable zhuyuan-gatekeeper > /dev/null 2>&1 +echo -e "${GREEN} ✅ 开机自启已配置${NC}" + +# ---- 4. 启动 ---- +echo -e "${YELLOW}[4/4] 启动看门人...${NC}" + +systemctl start zhuyuan-gatekeeper 2>/dev/null || { + echo -e "${YELLOW} ⚠️ systemctl 不可用,用 nohup 启动...${NC}" + cd /opt/zhuyuan/gatekeeper + nohup /usr/bin/node index.js > .output.log 2>&1 & + echo $! > .pid + echo -e "${GREEN} ✅ PID: $(cat .pid)${NC}" +} + +sleep 1 + +echo "" +echo -e "${GREEN}══════════════════════════════════════${NC}" +echo -e "${GREEN} ✅ 铸渊看门人已部署到 ${HOSTNAME}${NC}" +echo "" +echo -e "${YELLOW} ⚠️ 重要:${NC}" +echo " 这个终端中没有显示 API 密钥,因为程序尚未部署代码。" +echo " 请让铸渊将 index.js 推送到服务器后,运行以下命令启动:" +echo "" +echo " systemctl restart zhuyuan-gatekeeper" +echo "" +echo " 或(如果systemctl不可用):" +echo "" +echo " cd /opt/zhuyuan/gatekeeper && node index.js" +echo "" +echo -e "${GREEN}══════════════════════════════════════${NC}"