#!/bin/bash # ============================================ # 文件管理系统 - Linux 部署脚本 # ============================================ set -e DEPLOY_DIR="./deploy" SERVER_DIR="$DEPLOY_DIR/server" FRONTEND_DIR="$DEPLOY_DIR/frontend" echo "============================================" echo " 文件管理系统 - Linux 部署" echo "============================================" # 清理旧部署 [ -d "$DEPLOY_DIR" ] && rm -rf "$DEPLOY_DIR" # 创建目录 echo "[1/6] 创建目录结构..." mkdir -p "$SERVER_DIR/data/storage" mkdir -p "$FRONTEND_DIR" # 编译后端 echo "[2/6] 编译后端..." export GOPROXY=https://goproxy.cn,direct go build -o "$SERVER_DIR/server" main.go # 复制后端文件 echo "[3/6] 复制后端文件..." cp config.yaml "$SERVER_DIR/" cp config.yaml "$SERVER_DIR/config.yaml.example" cp -r sql "$SERVER_DIR/" # 构建前端 echo "[4/6] 构建前端..." cd ../web && npm run build && cd ../server cp -r ../web/dist/* "$FRONTEND_DIR/" # 生成启动脚本 echo "[5/6] 生成启动脚本..." cat > "$DEPLOY_DIR/start.sh" << 'EOF' #!/bin/bash cd "$(dirname "$0")/server" echo "启动后端服务..." ./server EOF chmod +x "$DEPLOY_DIR/start.sh" cat > "$DEPLOY_DIR/init-db.sh" << 'EOF' #!/bin/bash cd "$(dirname "$0")/server" read -sp "请输入MySQL root密码: " MYSQL_PWD echo "" echo "创建数据库..." mysql -u root -p"$MYSQL_PWD" -e "CREATE DATABASE IF NOT EXISTS seeyon_fs DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" echo "导入表结构..." mysql -u root -p"$MYSQL_PWD" seeyon_fs < sql/init.sql echo "初始化完成!" EOF chmod +x "$DEPLOY_DIR/init-db.sh" # 生成systemd服务文件 echo "[6/6] 生成systemd服务..." cat > "$DEPLOY_DIR/filesystem.service" << EOF [Unit] Description=File Management System After=network.target mysql.service [Service] Type=simple User=root WorkingDirectory=$(pwd)/$SERVER_DIR ExecStart=$(pwd)/$SERVER_DIR/server Restart=always RestartSec=5 [Install] WantedBy=multi-user.target EOF echo "" echo "============================================" echo " 部署完成!" echo "============================================" echo "" echo "部署目录: $DEPLOY_DIR" echo "" echo "文件清单:" find "$DEPLOY_DIR" -type f | head -20 echo "" echo "【部署步骤】" echo " 1. 将 $DEPLOY_DIR 复制到目标服务器" echo " 2. 运行 ./init-db.sh 初始化数据库" echo " 3. 修改 server/config.yaml 配置" echo " 4. 运行 ./start.sh 启动服务" echo " 5. (可选) 安装systemd服务:" echo " cp filesystem.service /etc/systemd/system/" echo " systemctl enable --now filesystem" echo "" echo "【默认账号】admin / admin123"