合并test分支代码

This commit is contained in:
2026-07-30 12:48:46 +08:00
parent 5a28775f84
commit 2ad151e44b
2 changed files with 0 additions and 95 deletions
-6
View File
@@ -51,12 +51,6 @@ type User struct {
CreatedAt string `json:"createdAt"` CreatedAt string `json:"createdAt"`
} }
<<<<<<< HEAD
// ============================================================
// 数据库初始化
=======
>>>>>>> test
func InitDB() error { func InitDB() error {
// 确保 data 目录存在 // 确保 data 目录存在
if err := os.MkdirAll("./data", 0755); err != nil { if err := os.MkdirAll("./data", 0755); err != nil {
-89
View File
@@ -1,14 +1,7 @@
#!/bin/bash #!/bin/bash
# ============================================================ # ============================================================
<<<<<<< HEAD
# frpc-console 一键部署脚本(Docker 优先)
# 支持:Linux x86_64 / ARM64 / ARMv7
# 自动安装:git / curl / wget / Docker
#
=======
# frpc-console 一键部署脚本 (Docker 优先) # frpc-console 一键部署脚本 (Docker 优先)
>>>>>>> test
# 用法: # 用法:
# run-deploy.sh 引导后自动执行 # run-deploy.sh 引导后自动执行
# ============================================================ # ============================================================
@@ -29,27 +22,12 @@ WORK_DIR="/tmp/frpc-console-build"
DEFAULT_PORT=9300 DEFAULT_PORT=9300
DEFAULT_DEPLOY_DIR="/opt/frpc-console" DEFAULT_DEPLOY_DIR="/opt/frpc-console"
IMAGE_NAME="frpc-console" IMAGE_NAME="frpc-console"
<<<<<<< HEAD
# ---------- 状态变量 ----------
OS=""
OS_VERSION=""
ARCH=""
HAS_GIT=false
HAS_CURL=false
HAS_WGET=false
HAS_DOCKER=false
NEED_INSTALL_GIT=false
NEED_INSTALL_CURL=false
NEED_INSTALL_WGET=false
=======
KEEP_IMAGES=3 KEEP_IMAGES=3
# ---------- 状态变量 ---------- # ---------- 状态变量 ----------
OS=""; OS_VERSION=""; ARCH="" OS=""; OS_VERSION=""; ARCH=""
HAS_GIT=false; HAS_CURL=false; HAS_WGET=false; HAS_DOCKER=false HAS_GIT=false; HAS_CURL=false; HAS_WGET=false; HAS_DOCKER=false
NEED_INSTALL_GIT=false; NEED_INSTALL_CURL=false; NEED_INSTALL_WGET=false NEED_INSTALL_GIT=false; NEED_INSTALL_CURL=false; NEED_INSTALL_WGET=false
>>>>>>> test
PORT=${DEFAULT_PORT} PORT=${DEFAULT_PORT}
DEPLOY_DIR=${DEFAULT_DEPLOY_DIR} DEPLOY_DIR=${DEFAULT_DEPLOY_DIR}
DATA_DIR="${DEPLOY_DIR}/data" DATA_DIR="${DEPLOY_DIR}/data"
@@ -274,12 +252,8 @@ generate_plan() {
PLAN="${PLAN} • 安装必要工具:${pkgs}\n" PLAN="${PLAN} • 安装必要工具:${pkgs}\n"
fi fi
PLAN="${PLAN} • 拉取 frpc-console 源码 (${BRANCH} 分支)\n" PLAN="${PLAN} • 拉取 frpc-console 源码 (${BRANCH} 分支)\n"
<<<<<<< HEAD
PLAN="${PLAN} • 构建 Docker 镜像(源码内编译)\n"
=======
PLAN="${PLAN} • 构建 Docker 镜像: ${IMAGE_NAME}:${IMAGE_TAG}\n" PLAN="${PLAN} • 构建 Docker 镜像: ${IMAGE_NAME}:${IMAGE_TAG}\n"
PLAN="${PLAN} • 目标版本: ${TARGET_VERSION}\n" PLAN="${PLAN} • 目标版本: ${TARGET_VERSION}\n"
>>>>>>> test
if [ "$CONTAINER_EXISTS" = true ]; then if [ "$CONTAINER_EXISTS" = true ]; then
PLAN="${PLAN} • 停止并删除旧容器\n" PLAN="${PLAN} • 停止并删除旧容器\n"
fi fi
@@ -348,22 +322,6 @@ do_deploy() {
print_subtitle "开始部署" print_subtitle "开始部署"
echo "" echo ""
<<<<<<< HEAD
# ----- 事务前钩子:备份数据库 -----
print_step "备份数据库..."
BACKUP_DIR="/tmp/frpc-console/db-backups"
mkdir -p "$BACKUP_DIR"
DB_FILE="${DEPLOY_DIR}/frpc-console.db"
if [ -f "$DB_FILE" ]; then
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/frpc-console.db.$TIMESTAMP"
cp "$DB_FILE" "$BACKUP_FILE"
print_info "已备份: $BACKUP_FILE"
if command -v sqlite3 &> /dev/null; then
if ! sqlite3 "$DB_FILE" "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='users';" 2>/dev/null | grep -q "^1$"; then
print_warn "数据库文件无效,将删除,由容器全新初始化"
rm -f "$DB_FILE"
=======
# ----- 事务前钩子:备份数据库(仅降级时) ----- # ----- 事务前钩子:备份数据库(仅降级时) -----
BACKUP_DIR="" BACKUP_DIR=""
if [ -n "$CURRENT_VERSION" ] && [ -n "$TARGET_VERSION" ]; then if [ -n "$CURRENT_VERSION" ] && [ -n "$TARGET_VERSION" ]; then
@@ -387,7 +345,6 @@ do_deploy() {
if [ -d "$DEPLOY_DIR" ]; then if [ -d "$DEPLOY_DIR" ]; then
cp -r "$DEPLOY_DIR" "$BACKUP_DIR/frpc-console" cp -r "$DEPLOY_DIR" "$BACKUP_DIR/frpc-console"
print_success "备份完成: $BACKUP_DIR" print_success "备份完成: $BACKUP_DIR"
>>>>>>> test
else else
print_warn "部署目录不存在,跳过备份" print_warn "部署目录不存在,跳过备份"
fi fi
@@ -396,8 +353,6 @@ do_deploy() {
print_info "首次部署,跳过版本比对" print_info "首次部署,跳过版本比对"
fi fi
<<<<<<< HEAD
=======
# ----- 安装必要工具 ----- # ----- 安装必要工具 -----
if [ "$NEED_INSTALL_GIT" = true ] || [ "$NEED_INSTALL_CURL" = true ] || [ "$NEED_INSTALL_WGET" = true ]; then if [ "$NEED_INSTALL_GIT" = true ] || [ "$NEED_INSTALL_CURL" = true ] || [ "$NEED_INSTALL_WGET" = true ]; then
print_step "安装必要工具..." print_step "安装必要工具..."
@@ -422,22 +377,15 @@ do_deploy() {
print_success "必要工具安装完成" print_success "必要工具安装完成"
fi fi
>>>>>>> test
# ----- 拉取代码 ----- # ----- 拉取代码 -----
print_step "拉取代码..." print_step "拉取代码..."
rm -rf "$WORK_DIR" rm -rf "$WORK_DIR"
git clone --depth 1 --branch "$BRANCH" "$REPO_URL" "$WORK_DIR" git clone --depth 1 --branch "$BRANCH" "$REPO_URL" "$WORK_DIR"
cd "$WORK_DIR" cd "$WORK_DIR"
mkdir -p bin static mkdir -p bin static
<<<<<<< HEAD
print_success "代码拉取完成"
# ----- 停止旧容器(拉取代码之后)-----
=======
print_success "代码拉取完成 (分支: ${BRANCH})" print_success "代码拉取完成 (分支: ${BRANCH})"
# ----- 停止旧容器 ----- # ----- 停止旧容器 -----
>>>>>>> test
if [ "$CONTAINER_EXISTS" = true ]; then if [ "$CONTAINER_EXISTS" = true ]; then
print_step "停止旧容器..." print_step "停止旧容器..."
if [ "$CONTAINER_RUNNING" = true ]; then if [ "$CONTAINER_RUNNING" = true ]; then
@@ -448,21 +396,6 @@ do_deploy() {
fi fi
# ----- 准备部署目录 ----- # ----- 准备部署目录 -----
<<<<<<< HEAD
print_step "准备部署目录..."
mkdir -p "$DEPLOY_DIR"
mkdir -p "$DATA_DIR"
if [ -f "$DB_FILE" ]; then
print_info "数据库文件存在,将保留"
else
print_info "数据库文件不存在,容器启动时将自动创建"
fi
# ----- 构建 Docker 镜像(内部自动处理 go.mod 降级)-----
print_step "构建 Docker 镜像..."
docker build -t "${IMAGE_NAME}:latest" .
print_success "Docker 镜像构建完成: ${IMAGE_NAME}:latest"
=======
print_step "准备部署目录..." print_step "准备部署目录..."
mkdir -p "$DEPLOY_DIR" mkdir -p "$DEPLOY_DIR"
mkdir -p "$DATA_DIR" mkdir -p "$DATA_DIR"
@@ -535,7 +468,6 @@ docker build --no-cache \
docker tag "${IMAGE_NAME}:${IMAGE_TAG}" "${IMAGE_NAME}:preview" docker tag "${IMAGE_NAME}:${IMAGE_TAG}" "${IMAGE_NAME}:preview"
print_info "已标记 ${IMAGE_NAME}:preview" print_info "已标记 ${IMAGE_NAME}:preview"
fi fi
>>>>>>> test
# ----- 启动新容器 ----- # ----- 启动新容器 -----
print_step "启动 frpc-console 容器..." print_step "启动 frpc-console 容器..."
@@ -544,11 +476,7 @@ docker build --no-cache \
--name frpc-console \ --name frpc-console \
--restart=always \ --restart=always \
--network host \ --network host \
<<<<<<< HEAD
-v ${DEPLOY_DIR}:/app \
=======
-v ${DEPLOY_DIR}/data:/app/data \ -v ${DEPLOY_DIR}/data:/app/data \
>>>>>>> test
-e PORT=${PORT} \ -e PORT=${PORT} \
-e TZ=Asia/Shanghai \ -e TZ=Asia/Shanghai \
${IMAGE_NAME}:${IMAGE_TAG} ${IMAGE_NAME}:${IMAGE_TAG}
@@ -560,14 +488,6 @@ docker build --no-cache \
exit 1 exit 1
fi fi
<<<<<<< HEAD
# ----- 检查 frpc 子进程 -----
print_step "检查 frpc 状态..."
sleep 3
if docker ps --format '{{.Names}}' | grep -q "^frpc-console$"; then
if docker exec frpc-console ps aux 2>/dev/null | grep -q "[f]rpc -c"; then
print_success "frpc 进程运行正常"
=======
# ----- 写入版本文件 ----- # ----- 写入版本文件 -----
print_step "写入版本文件..." print_step "写入版本文件..."
echo "$TARGET_VERSION" > "${DEPLOY_DIR}/data/version.ini" echo "$TARGET_VERSION" > "${DEPLOY_DIR}/data/version.ini"
@@ -582,7 +502,6 @@ docker build --no-cache \
PID=$(cat "$PID_FILE" 2>/dev/null | tr -d ' \n') PID=$(cat "$PID_FILE" 2>/dev/null | tr -d ' \n')
if [ -n "$PID" ] && kill -0 "$PID" 2>/dev/null; then if [ -n "$PID" ] && kill -0 "$PID" 2>/dev/null; then
print_success "frpc 进程运行正常 (PID: $PID)" print_success "frpc 进程运行正常 (PID: $PID)"
>>>>>>> test
else else
print_warn "frpc 进程未运行(PID 文件存在但进程已退出,可能配置为空)" print_warn "frpc 进程未运行(PID 文件存在但进程已退出,可能配置为空)"
fi fi
@@ -590,11 +509,7 @@ docker build --no-cache \
print_warn "frpc 进程未运行(PID 文件不存在,请导入 TOML 后重试)" print_warn "frpc 进程未运行(PID 文件不存在,请导入 TOML 后重试)"
fi fi
<<<<<<< HEAD
# ----- 事务后钩子:检测数据库 -----
=======
# ----- 验证数据库 ----- # ----- 验证数据库 -----
>>>>>>> test
print_step "验证数据库状态..." print_step "验证数据库状态..."
if docker exec frpc-console sqlite3 /app/frpc-console.db "SELECT COUNT(*) FROM users;" 2>/dev/null | grep -q "^[0-9]"; then if docker exec frpc-console sqlite3 /app/frpc-console.db "SELECT COUNT(*) FROM users;" 2>/dev/null | grep -q "^[0-9]"; then
print_success "数据库可用" print_success "数据库可用"
@@ -654,10 +569,6 @@ docker build --no-cache \
echo "" echo ""
echo -e " ${CYAN}📍 访问地址:${NC} http://$(hostname -I | awk '{print $1}'):${PORT}" echo -e " ${CYAN}📍 访问地址:${NC} http://$(hostname -I | awk '{print $1}'):${PORT}"
echo -e " ${CYAN}📂 数据目录:${NC} ${DEPLOY_DIR}" echo -e " ${CYAN}📂 数据目录:${NC} ${DEPLOY_DIR}"
<<<<<<< HEAD
echo -e " ${CYAN}📦 备份目录:${NC} /tmp/frpc-console/db-backups"
=======
>>>>>>> test
echo -e " ${CYAN}🐳 容器名称:${NC} frpc-console" echo -e " ${CYAN}🐳 容器名称:${NC} frpc-console"
echo -e " ${CYAN}🏷️ 版本:${NC} ${TARGET_VERSION}" echo -e " ${CYAN}🏷️ 版本:${NC} ${TARGET_VERSION}"
echo -e " ${CYAN}🌿 分支:${NC} ${BRANCH}" echo -e " ${CYAN}🌿 分支:${NC} ${BRANCH}"