103 lines
2.6 KiB
Bash
103 lines
2.6 KiB
Bash
|
|
#!/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"
|