Skip to main content

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 网站就实现全自动构建部署啦!