风过空庭,字句正徐来。
关于🎃关于本站关于我
更多✨时间线友链🚇开往
联系📞写留言发邮件GitHub
© 2021-2026 肖寒武. | RSS 订阅 | 站点地图 | | Stay hungry. Stay foolish.
Powered by Mix Space&
白い
.
| 豫ICP备2024044709号 |
正在被0人看爆
纸白微明,未成篇章。

Shiroi&Shiro主题本地部署

(已编辑)
634
3
AI·GEN

关键洞察

这篇文章上次修改于,可能部分内容已经不适用,如有疑问可询问作者。

Shiroi&Shiro主题本地部署

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • 前言

    在前文提到了由于Vercel的某些原因而不得不将前端改为本地部署,此贴简单记录一下部署过程。

    Note

    1.本贴仅适用于2C4G及以上配置服务器参考使用。
    2.在参考本教程前请确保您的后端站点已经成功部署并访问。

    一、环境配置

    不建议使用windows进行前端构建,因脚本问题若强行构建可能会产生某些未知的错误。(||别问,问就是踩过坑||)

    1.刷新系统缓存以及安装一些必要的软件包

    apt update && apt install git curl vim wget git-lfs -y
    

    2.安装NVM

    curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh
    

    3.运行 source ~/.profile 命令将环境变量重新加载到当前会话中

    source ~/.profile
    

    4.安装 Node.JS 20.12.2

    CodeBlock Loading...

    5.安装pnpm,pm2

    CodeBlock Loading...

    6.安装Sharp

    CodeBlock Loading...

    配置.env文件

    复制 .env.example 为 .env 并编辑 .env 文件

    CodeBlock Loading...

    .env文件内容示例

    CodeBlock Loading...

    开始构建

    注意:在构建前需要确保你的后端站点已经可以成功访问。

    CodeBlock Loading...

    在构建过程中可能会有其他意想不到的报错,但一般都是以下原因,请逐一排查。

    1. 网络错误(一般是项目中的字体文件下载出错)

    2. 代码冲突(若你的博客有自定义内容,可能会有代码错误)

    3. 服务器内存不够(字面意思)

    构建完成后在shiroi目录会产生.next文件夹,这便是构建后的产物。

    本地运行

    如果没有报错的话就是构建完成了。

    (构建完成的时候你一定会知道是不是构建完成了)

    废话ಠ_ಠ

    当构建完成后直接前台启动

    CodeBlock Loading...

    浏览器输入服务器IP+端口号2323即可浏览站点啦

    更新

    如果你的前端站点有更新的话,直接git拉取最新文件后重新使用pnpm i && pnpm build进行构建,然后使用pnpm prod:pm2运行即可。

    P.S.如何停止站点

    CodeBlock Loading...

    参考文献

    以下都是群里很牛,很厉害的大佬。

    Arthals' ink:mx-space + Shiro:如纸一般纯净的新博客

    华岁云小屋:Mix-Space部署最新前端Shiro

    # 安装
    nvm install 20.12.2
    # 检查版本
    node -v
    
    npm install -g pnpm pm2
    
    npm i -g sharp
    pnpm add sharp
    # 配置sharp环境变量
    export NEXT_SHARP_PATH=/root/node_modules/sharp
    
    cd /opt/mx-space/Shiro
    mv .env.template .env
    vim .env
    
    INI
    # 后端API地址
    NEXT_PUBLIC_API_URL=https://api.example.com/api/v2
    # 后端网关地址
    NEXT_PUBLIC_GATEWAY_URL=https://api.example.com
    # TMDB信息获取
    TMDB_API_KEY=
    # GitHub token,用来获取前端版本哈希
    GH_TOKEN=
    
    pnpm i && pnpm build
    
    pnpm prod:pm2
    
    pm2 kill