[铸渊] 新增 gatekeeper 安装脚本
This commit is contained in:
parent
64b57cfca0
commit
d575398dce
116
mcp-servers/zhuyuan-gateway/gatekeeper/install.sh
Normal file
116
mcp-servers/zhuyuan-gateway/gatekeeper/install.sh
Normal file
@ -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}"
|
||||
Loading…
x
Reference in New Issue
Block a user