Fedora服务器部署自动化教程
当然可以!以下是为你整理的 Fedora 系统下自动构建并部署 Docusaurus 网站的简明教程,内容清晰、步骤明确,适合直接操作。
🐧 Fedora 下自动构建部署 Docusaurus 教程(服务器端 Build)
✅ 目标:让服务器每天自动从 Gitee 拉取代码 → 自动构建 → 部署到 Nginx,无需本地构建上传。
一、安装必要环境
1. 安装 Node.js(推荐 v18+)
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo dnf install -y nodejs
验证:
node -v
npm -v
2. 安装 Git 和构建工具
sudo dnf install -y git gcc-c++ make python3
💡 避免构建时报
node-gyp
错误。
二、部署脚本(保存为 /opt/deploy-docusaurus.sh
)
#!/bin/bash
TARGET_DIR="/usr/share/nginx/html"
REPO_URL="https://gitee.com/funokegd/www.kps-project.cn.git"
REPO_DIR="www.kps-project.cn"
cd "$TARGET_DIR" || { echo "❌ 无法进入目标目录"; exit 1; }
rm -rf *
echo "🔄 克隆仓库..."
git clone "$REPO_URL" "$REPO_DIR"
cd "$REPO_DIR" || { echo "❌ 无法进入项目目录"; exit 1; }
echo "📦 安装依赖..."
npm install --prefer-offline --no-audit --no-fund
echo "🔨 构建中..."
npm run build
if [ $? -ne 0 ]; then
echo "❌ 构建失败!"
exit 1
fi
cd ..
echo "📂 复制构建文件..."
cp -rf "$REPO_DIR/build/"* ./
echo "🧹 清理临时文件..."
rm -rf "$REPO_DIR"
echo "🔐 设置权限..."
chown -R nginx:nginx "$TARGET_DIR"
chmod -R 755 "$TARGET_DIR"
echo "✅ 部署完成!"
赋予执行权限:
sudo chmod +x /opt/deploy-docusaurus.sh
三、设置权限和测试
设置 Nginx 目录权限:
sudo chown -R nginx:nginx /usr/share/nginx/html
sudo chmod -R 755 /usr/share/nginx/html
手动运行测试:
sudo /opt/deploy-docusaurus.sh
访问你的网站,确认是否更新成功 ✅
四、设置定时任务(每天自动执行)
sudo crontab -e
添加一行(每天凌晨 2:30 执行):
30 2 * * * /opt/deploy-docusaurus.sh >> /var/log/docusaurus-deploy.log 2>&1
查看日志:
tail -f /var/log/docusaurus-deploy.log
五、Fedora 特别注意事项
项目 | 说明 |
---|---|
包管理器 | 使用 dnf |
Nginx 用户 | 通常是 nginx (非 Ubuntu 的 www-data ) |
SELinux | 如遇权限问题,可临时关闭:sudo setenforce 0 |
防火墙 | 开放 HTTP:sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload |
✅ 最终检查清单
- Node.js ≥ v18 已安装
- Git、gcc、make、python3 已安装
- 脚本路径正确且有执行权限
- Nginx 目录权限已设置
- crontab 已配置
- 首次手动测试成功
🚀 完成!
你的网站现在每天凌晨自动更新,完全自动化部署 ✅
如遇构建错误,查看
/var/log/docusaurus-deploy.log
并贴给我帮你分析!
📌 提示:进阶可考虑 Docker、Webhook、备份机制等,当前方案已满足日常自动化需求。
✅ 保存这份教程,照着做一遍,你的 Docusaurus 网站就实现全自动构建部署啦!