mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-07-19 19:53:03 +08:00
feat: v0.6.0 — 公益AI接口 + Agent灵魂借尸还魂 + 知识库 + 全局AI诊断 + 官网改版
This commit is contained in:
85
deploy.sh
Normal file
85
deploy.sh
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
# ClawPanel Web 版一键部署脚本
|
||||
# 适用于 WSL / Docker / 远程服务器
|
||||
# 用法: curl -fsSL https://raw.githubusercontent.com/qingchencloud/clawpanel/main/deploy.sh | bash
|
||||
|
||||
set -e
|
||||
|
||||
REPO="qingchencloud/clawpanel"
|
||||
INSTALL_DIR="$HOME/.clawpanel-web"
|
||||
PORT="${CLAWPANEL_PORT:-9099}"
|
||||
|
||||
echo ""
|
||||
echo " ClawPanel Web 版 一键部署脚本"
|
||||
echo " =============================="
|
||||
echo ""
|
||||
|
||||
# ── 工具函数 ──
|
||||
fetch() {
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
curl -fsSL "$1"
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
wget -qO- "$1"
|
||||
else
|
||||
echo "❌ 需要 curl 或 wget,请先安装"; exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
download() {
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
curl -fsSL -o "$2" "$1"
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
wget -qO "$2" "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
# ── 检查依赖 ──
|
||||
echo "[1/5] 检查依赖..."
|
||||
command -v node >/dev/null 2>&1 || { echo "❌ 需要 Node.js,请先安装: https://nodejs.org/"; exit 1; }
|
||||
command -v npm >/dev/null 2>&1 || { echo "❌ 需要 npm"; exit 1; }
|
||||
echo " node $(node -v) / npm $(npm -v)"
|
||||
|
||||
# ── 获取最新版本号 ──
|
||||
echo "[2/5] 获取最新版本..."
|
||||
LATEST=$(fetch "https://api.github.com/repos/$REPO/releases/latest" 2>/dev/null | grep '"tag_name"' | sed -E 's/.*"v?([^"]+)".*/\1/' || echo "")
|
||||
if [ -z "$LATEST" ]; then
|
||||
echo " 无法获取最新版本,使用 main 分支"
|
||||
DOWNLOAD_URL="https://github.com/$REPO/archive/refs/heads/main.tar.gz"
|
||||
else
|
||||
echo " 最新版本: v$LATEST"
|
||||
DOWNLOAD_URL="https://github.com/$REPO/archive/refs/tags/v$LATEST.tar.gz"
|
||||
fi
|
||||
|
||||
# ── 下载并解压 ──
|
||||
echo "[3/5] 下载源码..."
|
||||
TMP_FILE=$(mktemp /tmp/clawpanel-XXXXXX.tar.gz)
|
||||
trap "rm -f $TMP_FILE" EXIT
|
||||
download "$DOWNLOAD_URL" "$TMP_FILE"
|
||||
if [ ! -s "$TMP_FILE" ]; then
|
||||
echo "❌ 下载失败,请检查网络连接"; exit 1
|
||||
fi
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
tar xzf "$TMP_FILE" -C "$INSTALL_DIR" --strip-components=1
|
||||
echo " 解压到 $INSTALL_DIR"
|
||||
|
||||
# ── 安装依赖并构建 ──
|
||||
echo "[4/5] 安装依赖..."
|
||||
cd "$INSTALL_DIR"
|
||||
npm install 2>&1 | tail -1
|
||||
|
||||
echo "[5/5] 构建前端..."
|
||||
npx vite build --mode development 2>&1 | tail -2
|
||||
|
||||
echo ""
|
||||
echo " ==============================="
|
||||
echo " ClawPanel Web 版部署完成!"
|
||||
echo " ==============================="
|
||||
echo ""
|
||||
echo " 启动: cd $INSTALL_DIR && npx serve dist -l $PORT"
|
||||
IP=$(hostname -I 2>/dev/null | awk '{print $1}' || echo "localhost")
|
||||
echo " 访问: http://$IP:$PORT"
|
||||
echo ""
|
||||
echo " 提示: 需要本地 OpenClaw Gateway 运行中(默认端口 3456)"
|
||||
echo " 安装: npm i -g @qingchencloud/openclaw-zh"
|
||||
echo " 启动: openclaw start"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user