在群晖NAS上搭建Waline评论系统
条评论由于懒得一步一步截图介绍制作傻瓜教程,本文只提供搭建过程中关键步骤参考的文档或教程:
Waline服务端直接采用Docker部署(群晖Container Manager)方式,具体参见:
https://waline.js.org/guide/deploy/vps.html
在群晖Container Manager的镜像仓库中搜索安装lizheming/waline镜像即可。
安装时的环境变量设置可以参照:
https://waline.js.org/reference/server/env.html数据库采用MySQL,在群晖套件中心中安装MariaDB 10和phpMyAdmin程序即可,可以参考:
https://post.smzdm.com/p/admx9k5n/
安装Docker版Waline服务端时数据库部分相关设置参见:
https://waline.js.org/guide/database.html#mysql在服务端和数据库部署好之后,关键是如何实现公网访问。如果宽带运营商同时分配了公网IPv4和IPv6就相对简单,可以继续在Docker中安装jeessy/ddns-go实现域名的动态DNS解析,这方面的教程网上有很多,不再赘述。(需要有自己的域名。)
配置好DDNS后,可以继续签发免费SSL证书,我参考的是acme.sh的官方文档和另外一个教程:
https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide
https://blog.zakikun.com/archives/80.html配置完SSL证书后,结合群晖自带的反向代理功能,就可以使用自己的域名实现外网访问Waline服务。当然,由于是家庭宽带,即使是HTTPS访问也无法使用443端口,需要设置其它的端口,记得在群晖防火墙中放行,路由器也需要设置好端口转发。
但如果宽带运营商并没有分配公网IPv4(公网IPv6现在一般都很容易获得),以上直接通过DDNS+端口转发的方案,对于没有IPv6环境的纯IPv4访问者来说就无法访问了,这也是我最近遇到的情况(ChinaUnicom坑爹),网站评论挂了一个月左右都没发现。
于是又搜索找到了以下解决方案,借助一个叫做Lucky的工具,还挺方便的:
【NAS远程访问教程】只有IPv6公网,如何实现IPv4+IPv6双栈访问?按照以上教程操作后,就实现了NAS无公网IPv4时也能向外提供IPv4+IPv6双栈访问的体验,美中不足的是该方案其实是通过CloudFlare中转了一道,因此Waline后台就无法获取到评论者的真实IP了,并且对部分区域的访问速度可能也不够友好,但暂时还未找到更好的办法,只要能先用起来就知足了。