[铸渊] 新增 gatekeeper 安装脚本

This commit is contained in:
bingshuo 2026-05-16 22:48:44 +08:00
parent 64b57cfca0
commit d575398dce

View 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}"