coverview 博客文章封面部署

本文适用于需要为博客文章批量生成封面的场景。你会学到:用 Coverview 搭建一个本地封面生成服务,并用 pm2 持久化运行、nginx 反向代理对外提供访问。

因为 Typecho-Butterfly 主题需要文章封面,我就选择了这个快速生成文章封面的项目 Coverview

项目介绍

Coverview 是一个开源的封面生成工具,特性包括:

  • 🚀 快速且易用
  • 🌈 4 种主题、多种字体
  • 🌠 100+ 开发者图标,支持上传自定义图标
  • ✨ 15+ 背景图案
  • 💾 按博客平台尺寸生成封面(如 hashnode、dev)

安装 Node.js 环境

项目基于 Node.js 运行,先安装 npm 环境。参考 nodesource 安装文档

安装前确保 curl 已安装:

apt-get install -y curl
  1. 下载安装脚本

    curl -fsSL https://deb.nodesource.com/setup_current.x -o nodesource_setup.sh
    
  2. 运行安装脚本

    bash nodesource_setup.sh
    
  3. 安装 Node.js

    apt-get install -y nodejs
    
  4. 验证安装

    node -v
    

下载 Coverview

mkdir -p /opt/npm/Coverview && cd /opt/npm/Coverview
git clone https://github.com/rutikwankhade/CoverView.git

持久化运行 Coverview

用 pm2 将服务常驻后台:

npm install -g pm2
pm2 start npm --name "coverview" -- start

查看运行状态:

pm2 list

nginx 反代

nginx 反代配置文件

Coverview 默认监听 127.0.0.1:3000,通过 nginx 反代对外提供服务:

server {
    listen       30001;
    server_name  yourname.com;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_pass http://127.0.0.1:3000/; #coverview 监听 127.0.0.1:3000
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
    }
}

测试并重载配置:

nginx -t
nginx -s reload

验证与自查

  1. pm2 list 中 coverview 进程状态为 online
  2. curl http://127.0.0.1:3000 返回页面内容
  3. curl -H "Host: yourname.com" http://127.0.0.1:30001 通过域名端口可访问
  4. 浏览器打开封面生成页,确认主题、图标、背景均可正常渲染

注意:新部署的 coverview 需要使用 nginx 反代。如果直接使用 cloudflared 将 coverview 映射到公网,会导致访问失败。

参考