57 lines
2.3 KiB
Bash
57 lines
2.3 KiB
Bash
#!/bin/bash
|
||
# 光湖驱动引擎 v2.1 · 毛毛服务器一键部署
|
||
# 粘贴到服务器终端回车即可
|
||
set -e
|
||
echo "⚡ 光湖驱动引擎 v2.1 · 毛毛服务器 175.178.176.145"
|
||
|
||
echo "[1/5] 环境: $(lsb_release -ds 2>/dev/null||cat /etc/os-release|head -1), $(nproc)核, $(free -h|grep Mem|awk '{print $2}')"
|
||
|
||
echo "[2/5] 安装Node.js..."
|
||
if command -v node &>/dev/null; then echo " $(node -v)"; else
|
||
apt-get update -qq && apt-get install -y -qq curl
|
||
curl -fsSL https://deb.nodesource.com/setup_22.x|bash -
|
||
apt-get install -y nodejs && echo " $(node -v)"
|
||
fi
|
||
|
||
echo "[3/5] 部署gatekeeper..."
|
||
mkdir -p /opt/guanghu /var/log/guanghu
|
||
# 尝试从仓库下载
|
||
curl -fsSL -o /opt/guanghu/gatekeeper.js \
|
||
"https://guanghulab.com/code/bingshuo/guanghulab/raw/branch/main/_deploy/gatekeeper.js" 2>/dev/null \
|
||
|| curl -fsSL -o /opt/guanghu/gatekeeper.js \
|
||
"https://gitee.com/lingdianyuanhe/zero-point-prokaryotic/raw/main/_deploy/gatekeeper.js" 2>/dev/null \
|
||
|| { echo " 下载失败,请手动上传gatekeeper.js到/opt/guanghu/"; exit 1; }
|
||
echo " $(wc -c < /opt/guanghu/gatekeeper.js) bytes"
|
||
|
||
echo "[4/5] systemd服务..."
|
||
cat > /etc/systemd/system/guanghu-engine.service << 'SVC'
|
||
[Unit]
|
||
Description=光湖驱动引擎 v2.1
|
||
After=network.target
|
||
[Service]
|
||
Type=simple;User=root;WorkingDirectory=/opt/guanghu
|
||
ExecStartPre=/bin/bash -c 'fuser -k 3910/tcp 2>/dev/null;sleep 1;true'
|
||
ExecStart=/usr/bin/node /opt/guanghu/gatekeeper.js 3910
|
||
Restart=always;RestartSec=3
|
||
StandardOutput=append:/var/log/guanghu/engine.log
|
||
StandardError=append:/var/log/guanghu/engine.log
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
SVC
|
||
systemctl daemon-reload && systemctl enable guanghu-engine
|
||
|
||
echo "[5/5] 防火墙+启动..."
|
||
apt-get install -y -qq ufw 2>/dev/null; ufw --force enable 2>/dev/null
|
||
ufw allow 3910/tcp;ufw allow 80/tcp;ufw allow 22/tcp
|
||
systemctl restart guanghu-engine;sleep 2
|
||
|
||
echo "════════════════════════════════════════"
|
||
if systemctl is-active --quiet guanghu-engine; then
|
||
S=$(cat /root/.gk/secret)
|
||
echo "✅ 成功! 端口3910 密钥:$S"
|
||
echo "curl -X POST http://175.178.176.145:3910/ping -H 'Authorization: Bearer $S'"
|
||
else
|
||
echo "❌ 失败 journalctl -u guanghu-engine -n 30"
|
||
fi
|
||
echo "════════════════════════════════════════"
|