Skip to content

1panel

安装OpenResty

应用商店点点点

OpenResty创建静态网站

填写 主域名 确认

点击 配置 -> 网站目录 得到网站根目录**/index

开启 HTTPS 不在这里写了

博客仓库 Github+vitepress

按vitepress官网一步步创建本地项目

vitepress官方教程

把本地项目推送到github

如果想部署到github pages,项目名为{用户名}.github.io,并设为public。

本文是部署到vps,因此项目名无限制,并可设为private。

Github Actions

Actions Runner

vps自建runner

Actions配置文件

{网站根目录} 替换为 OpenResty中的 网站目录

yaml
name: Build VitePress Site

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:
  build:
    runs-on: self-hosted
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'

      - name: Install pnpm
        run: npm install -g pnpm

      - name: Install dependencies
        run: pnpm install

      - name: Build VitePress site
        run: pnpm run vpsbuild

      - name: Delete old files in target directory
        run: sudo rm -rf {网站根目录}/*

      - name: Move built files
        run: sudo mv docs/.vitepress/dist/* {网站根目录}/

其中 pnpm run vpsbuild 是自定义编译命令,修改package.json最后更新时间错误

用于解决部署到vps或cloudflare时,最后更新时间错误问题

json
{
  "devDependencies": {
    "md5": "^2.3.0",
    "vitepress": "^1.3.2",
    "vue": "^3.4.27"
  },
  "scripts": {
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:preview": "vitepress preview docs",
    "vpsbuild": "git fetch --unshallow && vitepress build docs"
  }
}

可能遇到的问题

权限问题-无法发布编译后的dist

由于actions runner需要非root用户运行,1panel需要root运行,因此需要使用sudo命令进行替换博客文件。

而执行sudo命令时,需要输入密码,所以修改 /etc/sudoers

# 增加免密命令--具体命令为actions配置文件中的sudo命令
# 用户名为运行actions runner的用户名
# 用户名 ALL=(root) NOPASSWD: /bin/rm ... 
# 用户名 ALL=(root) NOPASSWD: /bin/mv ...