Shiro,一个极简主义的个人网站,如纸的纯净和雪的清新。
innei大佬与 Shiro : Shiro - 全新风格,再次起航
Shiro/Shiroi为Mix-Space前端主题,其中,Shiroi为闭源版本,通过赞助 Innei Innei获取。 开源闭源在部分功能上有所区别,可在官方文档看到部分闭源版本功能。
Shiro及相关项目

Vercel 部署
Shiro Vercel 部署请参阅官方文档
https://mx-space.js.org/themes/shiro
云服务器 / 本地部署
系统 / 环境要求
- Linux, 内核版本>4.19 (推荐 Debian11 / 12) 教程以Debian11 / 12为例
- 服务器内存需 2~4Gib,构建完成运行只需 512Mib甚至更低 (内存小or可用内存不足的可在本地构建或者配置2~4G的 Swap):博主服务器为2H-2G,故配置了4G Swap。
- 使用NVM安装Node.js v20.12.2,以及PNPM / PM2 / sharp
- Screen 实现后台保活(可选)
- 采用 1Panel+OpenResty(可选)
必要的准备
域名:本篇所采用
双二级域名模式,即前端www.vlo.cc,后端api.vlo.cc前后端域名所需SSL证书:需要全站HTTPS (前端访问API问题,可以尝试后端配置文件 ALLOWED_ORIGINS 加上
localhost,127.0.0.1
壹·NodeJS等相关环境
刷新系统包缓存与安装常用/必备软件包
1、安装NVM
2、运行 source ~/.profile 命令将环境变量重新加载到当前会话中。
3、列出 Node.JS 的可用版本。
4、确定版本后,运行 nvm install version 命令下载并安装它。例如,安装 Node.JS 20.12.2 , 强烈推荐 V20.12.2 版本
5、安装 pnpm pm2
6、安装sharp
贰·Shiro的配置与构建
一 · Core后端云函数配置
具体可参考官方文档: 后端设置主题配置
进入 Mix Space 后台,进入「配置与云函数」页面,点击右上角的新增按钮,在编辑页面中,填入以下设置:
- 名称:shiro
- 引用:theme
- 数据类型:JSON
- 数据:右侧复制以下示例,更改为自己的信息
二 · 拉取 Shiro/Shiroi

三 · 配置 .env
复制 .env.example 为 .env并编辑 .env 文件
.env示例
四 · 开始构建 Shiro/Shiroi项目
构建时间较慢长,需耐心等待...


叁·Shiro 启动!
1、直接前台启动,在Shiro根目录直接运行
pnpm prod:pm2,可使用nohup或其他使其后台运行
2、使用Screen实现后台保活
启动完成后 按Ctrl +A+D即可退出并挂起 shiro 对话,完成Shiro后台运行。

Screen食用教程:https://www.mintimate.cn/2021/09/02/howToUseScreen/ 很不错的教程
肆·反代与更新
一 · 反向代理
以1Panel+OpenResty为例
- 新建静态网站
- 配置SSL证书开启HTTPS
- 在
add_header Strict-Transport-Security "max-age=31536000";下方或者最后一个}的上方另起一行CV反代配置 完整的配置文件示例:https://cv.jiuy.eu.org/share/paste/nfywurxX
二 · Shiro 更新
上面更新方法没试过,试过了,很棒!是参考Arthals大佬的文章 偷来的
国内服务器拉不到git的话我就只能用笨方法更新:本地拉取git在上传服务器,然后从上文的 贰·Shiro的配置与构建中二到四 流程再走一遍🤣(🥹
三 · Markdown 扩展语法
请阅读 https://shiro.innei.in/#/markdown
伍·踩坑
一 · 字体拉取失败
Shiro构建时会拉取字体文件,
若服务器无法Ping通fonts.googleapis.com / fonts.gstatic.com,
可能会出现如下报错,最终构建失败
大概是服务器解析到的IP不太行.....
解决:更改hosts文件,为fonts.googleapis.com / fonts.gstatic.com指定一个服务器可以Ping通的IP
可以用itdog查下字体域名的ip,然后服务器尝试ping一下,哪个ping的通就改哪个

二 · OAuth2 相关问题
- 回调报错redirect_uri
第二种方法:复制Core/Shiro部署两篇文章内新的双域名反代配置
FAQ:
新的配置文件有什么更改呢?
我在原前后端反代配置示例文件的每个location中都添加了如下配置(貌似后端添加就行,我为了保险前后端全部添加了)。
做完这些仍然redirect_uri怎么办?
大概率是缓存问题,清除缓存OR浏览器开隐私模式测试是否正常。
后端不认主
如果你的后端core版本在7.0.3-7.0.6, 或7.0.6之后的某版本开始配置OAuth的, 一直无法成功(猜测原因可能是某个版本有BUG,Core升级无法解决,回退版本可解)
包括不限于:后端不认主人,前后端主人无法登录,redirect_url 错误等,
可以尝试Core退回7.0.2-alpha.0版本:配置oauth并验证设为主人账户,前后端使用OAuth进行登录测试(仍然有redirect_url的 问题可能有缓存作怪,可以尝试新环境测试),测试没问题后直接升级latest版本
参考文章
感谢官方以及社区大佬们的贡献!

