不需云服务,个人blog微信小程序搭建指南,域名不折腾,绿联NAS私有云部署「花生壳+Halo」
大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~
前言
cherry曾经试过多款个人博客框架,比如Github、Wordpress、Typecho、Halo等,一路摸索一路试,最终停留选择了Halo,原因无它,易用好看不折腾。
但是,在做了一段时间的自媒体后,却发现相比于平台流量,个人博客的访问流量是微乎其微,也不知道是SEO没做好,还是现在看个人博客的用户越来越少了?
于是,我把脑经动到了微信小程序上,既然博客流量没有,能不能做成微信小程序,这样也方便观众老爷和粉丝们随时在手机上可以阅读、交流。
那话不多说,本次教程虽然看着复杂,但是按步骤下来还是很简单的,全程使用了Halo、Uni-Halo、贝锐花生壳等应用。


一、部署Halo并配置
1、关于部署机
本次部署机使用的是绿联DXP 4800 plus,相比较于搭建网站常用的小鸡,NAS拥有更强劲的性能和自定义配置权限。绿联DXP 4800 Plus 是一台高性能的4盘位NAS,采用Intel Gold 8505处理器,拥有5核6线程的任务处理能力。同时,绿联DXP 4800 Plus提供了1个万兆网口,1个2.5GbE网口,在局域网环境下可以发挥更大的传输优势。
绿联DXP系列采用全新的UGOS Pro系统,以debian12为底层框架,重构了影音、相册、docker等服务,新增应用中心、虚拟机等功能,可以满足家用、企业用户的存储、娱乐需求。值得一提的是docker应用,更是增加了对docker-compose的支持,诸如Halo等部署比较复杂的应用,可以通过docker项目的方案一键部署,并支持长期可视化管理,十分方便。

2、部署Halo
Halo目前系统版本为v2.19,支持MySql、postgreSQL、H2三种数据库,建议大家使用MySql数据库进行管理,会比较方便一些。
🔻下面是docker-compose.yaml代码,根据自己需要修改数据库的账号密码
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.19
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
################# 可修改左侧端口,建议不改
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=o#DwN&JSa56
- --spring.sql.init.platform=mysql
# 外部访问地址,可以后面再来根据实际情况修改
- --halo.external-url=http://localhost:8090/
halodb:
image: mysql:8.1.0
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=caching_sha2_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:
打开绿联云【Docker】应用,可以看到集成了仪表盘、监控、compose管理、容器管理、镜像管理、网络管理等功能。

选择【项目】标签栏,点击【创建】按钮。

在【项目名称】处填入halo,绿联云会自动在共享文件夹下创建容器路径,然后我们将上面提供的代码复制到【Compose配置】处,根据自己的习惯修改端口信息,点击【立即部署】即可。

打开浏览器,通过ip:8090访问halo博客,并进行系统初始化。

3、安装插件
要正确使用Uni-Halo,我们必须先在Halo管理后台安装6个插件,插件目录如下:
- Uni-halo
- 评论插件
- 搜索插件
- 链接管理
- 图库管理
- 瞬间插件
输入ip:port/console进入管理后台,点击左下角【应用市场】,筛选免费、官方的插件,找到列表中的几个插件并下载。

下载完成后,记得点击右侧的开关,把插件启用。最终插件列表如下,其中live2d看板娘是我自己装的,大家不用抄。

我们需要对Uni-Halo插件进行自定义配置,这些内容最终都会体现在小程序上,比如作者信息、域名、进入画面等,不配置的话就是默认配置,不影响使用。

4、配置用户API
接着,我们需要获取Halo的用户API,点击左下角的用户头像,进入个人中心。

选择 我的-个人令牌,新建令牌,在申请API的时候,需要开通以下权限:插件查看、文章查看、评论查看、链接查看、图库查看、瞬间查看,勾选以后点击提交。

提价以后会给一个Token,这个只显示一次,建议备份好待用。

二、配置小程序
1、注册域名
由于微信小程序平台要求,任何微信小程序都必须使用https服务,同时只允许使用443端口。因此我们的家宽肯定是玩不了了,要满足https和443端口,一般的做法就是去阿里云、腾讯云等云服务提供商注册一个域名,购买SSL证书,购买云主机,然后将域名绑定到云主机上进行备案才可以,时间久不说,花销其实也挺大的。
好在我们可以通过一个取巧的方法来获取免备案的域名,那就是花生壳壳域名。之前的花生壳,不支持通过内网穿透将服务映射到443端口上,只能提供http服务,所有很多人不会选择这个工具。
但是最近,花生壳推出了https/443端口映射服务,只需要6元的认证费用,就可以获取一个内网穿透的https/443端口,我们可以通过花生壳把NAS中的各类服务映射出来,实现互联网服务。

第一步:登录贝锐花生壳官网,下拉选择下载docker镜像v1.0版本。

第二步:把下载下来的镜像上传到绿联云的个人文件夹中,然后打开docker,按照路径【镜像】-【本地镜像】-【添加镜像】-【从NAS导入】,选择刚上传的phddns镜像压缩包上传。

勾选自动重启,确保NAS重启后花生壳容器也会自动重启。

继续下拉,在网络配置栏,把默认的bridge网络修改为host网络,然后确认启动容器。

第三步:容器启动成功后,点击容器进入控制台页面,选择【终端】-【新建连接】,把默认命令修改为【/bin/sh】。

保存以后,点击左侧的命令行,在右侧的SSH页面中,我们输入phddns status获取花生壳的SN码。

第四步:登录花生壳管控平台,注册账号并实名认证,点击最下方的【设备列表】-【添加设备】,把NAS中的SN码填入。

之后点击红框内的蓝字,激活设备。

第五步:点击左侧的【域名列表】,点击域名管理,这里我们注册并获取免费的花生壳提供的加密壳域名信息,白嫖了1年的免费服务。后期也可以在这里购买自定义域名。

第六步:点击左侧的【内网穿透】,选择【网站应用】-【Https】,外网域名选择刚才申请的壳域名,内网主机填写NAS的内网ip,内网端口填写Halo的8090(如果自己修改了,就填写修改后的)。

第七步:打开壳域名测试,可以看到已经顺利将NAS中的服务映射到了互联网端。

2、注册小程序并配置
登录【微信公众平台】,点击最上方的立即注册。

在提供的4个服务中,选择小程序。

下拉,按着流程注册小程序,然后配置小程序的基本信息等内容,完成开发者绑定。这些就按着官方步骤一步步往下就可以了。

整个【小程序信息】、【小程序类目】还是比较复杂的,大家设置好自己小程序账号、名称等,然后类目可以选择备忘录,接着就是花几天时间区进行微信认证(每年300元认证费)、小程序备案。这些流程就不介绍了,网上很多,我们一笔带过。

当我们完成认证后(也可以不认证,先部署体验版),来到【管理】-【开发管理】里,把我们刚才申请的域名填入到request合法域名、uploadFile合法域名、downloadFile合法域名三个空格中去。

3、安装编译程序
首先我们需要安装HBuilder X、微信小程序开发注册两个软件,下载地址我放在网盘里了,以免大家找官方折腾。
阿里云盘链接:www.alipan.com/s/hSquQnQ8vHg
夸克网盘链接:pan.quark.cn/s/bd5a6519e18f

下载后,双击exe解压文件,然后安装。首先打开微信小程序开发工具,用注册好小程序的微信扫码登录,然后点击右上角的【齿轮】进入配置页面,选择【安全】页面,打开【服务端口】即可。

然后解压打开HBuilder X,选择【工具】-【设置】-【运行配置】,下拉到【小程序运行配置】-【微信开发者工具路径】这里,把微信开发者工具所安装的目录填入并保存。

4、修改源代码并编译
第一步:打开HBuilder工具,点击【文件】-【导入】-【从本地目录导入】,选择提供的Uni-halo代码包导入。

第二步:找到【uni-halo-main】-【config】-【token.config.template.js】这个文件,首先重命名为【token.config.js】,然后在BASE_API内填入我们的域名,域名必须https,然后在systemToken处填入halo的用户API。

第三步:找到【uni-halo-main】-【mainfest.json】这个文件,点击【基础配置】-【AppID】-【重新获取】,这里需要登录HBuilder的账号,去注册一个并登录、手机号认证就行了。

切换到【微信小程序配置】,把我们注册的小程序APPID填入。

第四步:点击【运行】-【运行到小程序模拟器】-【微信开发者工具】,随后系统会开始自动安装编译包和插件。

安装完编译包以后,我们继续到【运行】-【运行到小程序模拟器】-【停止微信开发者工具】,然后继续启动进行再次编译,这个时候会提示缺少各种编译器插件,HBuilder X会自动进行下载安装,所以我们只需要等待,然后多点击几次就可以了。

第五步:当一切顺利运行以后,HBuilder会自动打开微信开发者工具,并提示是否信任作者,我们点击信任并运行。

完成以后,就可以在开发者工具中看到小程序的画面,然后右下角的调试窗口,可以看看有什么错误。

🔻首页

🔻栏目分类

🔻瞬间

三、发布小程序
在预览阶段,我们多点一点,试一试,基本上不会有大问题,如果有异常报错,懂代码的可以自己修复一下,不懂得可以去Uni-Halo项目的issue里查询一下。
完成预览测试后,右键点击【Uni-halo】根目录,选择【发行】-【小程序-微信】。

在弹出的页面填入小程序命名,以及小程序AppID,点击发行。这个时候如果Dcloud没手机认证的,会弹出来让大家认证,如果之前按流程走下来的应该已经认证过了。

点击预览,这里可以选择二维码预览(手机),自动预览(PC客户端),然后查看一下小程序是否正常,能否读取到我们halo里的博客,然后图床、瞬间这些插件是不是可以正常打开。

最后,点击右侧的上传按钮,选择覆盖体验版。

代码上传完成以后,可以在小程序管理后台,打开【版本管理】-【开发版本】,这里可以点击蓝色字体扫二维码体验实机,没问题了点击右侧的提交审核。

根据官方提示,在审核的时候尽量描述为个人使用的日志、心得类,上传图片不要有评论、社交类内容,然后等待官方通过接口。

最终小程序发布以后,我们就可以在微信中根据名称检索到了,实际体验如下,和网页版几乎没区别。而且增加了恋爱相册、图库、瞬间等功能。

总结
Uni-halo项目还在不断完善优化中,可以说是将Halo博客移植到微信小程序上的最给力的项目了。整个项目部署过程中,最麻烦的其实还是小程序认证、备份,以及域名获取、备案等部分。如果大家自己有域名、vps的,可以自己设置,如果没有又不想折腾的,可以通过文章中介绍的贝锐花生壳进行内网穿透和端口映射,花几块钱解决麻烦事。
其实,这不是cherry介绍的第一个关于NAS如何部署微信小程序的项目了,之前我也介绍过个人闪记类项目memos的第三方微信小程序部署经验。
现如今,NAS已经不再是传统的网络存储设备那么简单了,在以绿联等为代表的新兴国产NAS品牌的不断努力下,NAS越来越向着家庭数据应用中心迈进,为新时代年轻人提供了一套综合的私有化解决方案。
如果你正发觉数据私有化、隐私化越来越重要的,那么值得在双十一期间入手一款NAS!双十一期间,绿联DXP系列全线降价促销,狗东预售直降300,东子好兄弟再补贴120块;天猫的话则是跨店满减活动以及大额优惠券,再叠88VIP,整体优惠力度还是挺大的。并且额外赠送延保1年,149的 30W氮化镓快充防雷排插1个。
对于家用级用户来说,型号依旧主推DXP 4800,入手价不高于1999;当然也可以选择性能更强的DXP 4800 Plus,入手价不高于2699。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

dkess
校验提示文案
haidiyus
校验提示文案
歪我是小爽啊
校验提示文案
此花未落
校验提示文案
王二狗
校验提示文案
丁小虎的损爹
校验提示文案
木易酱
校验提示文案
Smile丶Sr
校验提示文案
值友4657481700
校验提示文案
凍菜
校验提示文案
Andyhwang
校验提示文案
没得取
校验提示文案
BanKnight
校验提示文案
静静的伏尔加河
校验提示文案
林溪风
校验提示文案
旺宝
校验提示文案
笔点酷玩
校验提示文案
岁月稠
校验提示文案
波导终结者
校验提示文案
cctv凝
校验提示文案
Andyhwang
校验提示文案
凍菜
校验提示文案
值友4657481700
校验提示文案
Smile丶Sr
校验提示文案
木易酱
校验提示文案
丁小虎的损爹
校验提示文案
BanKnight
校验提示文案
人间清醒风
校验提示文案
李沐衡
校验提示文案
没得取
校验提示文案
haidiyus
校验提示文案
fengpan584
校验提示文案
百香果吉吉
校验提示文案
bubble颖儿
校验提示文案
cctv凝
校验提示文案
王二狗
校验提示文案
dkess
校验提示文案
此花未落
校验提示文案
歪我是小爽啊
校验提示文案
波导终结者
校验提示文案