Remark42评论服务安装部署
简介
Remark42 是一个开源、轻量化、自托管的评论服务,支持使用Google, Twitter, Facebook, Microsoft, GitHub, Yandex, Patreon, Telegram, Email 以及匿名方式进行评论。
特性:
使用 Go 语言实现
使用基于文件的数据库。我最喜欢的数据库是 SQLite,单文件无任何依赖,Remark42 使用的 boltdb 也是基于文件,对我来说和 SQLite 一样美好。
有较为现代化的前端技术栈,使用 TypeScript, Preact, Postcss 开发。
是一个成熟的开源项目,文档全面、开发时间长,基本上我的任何问题都可以在文档和 Issues 中找到解答。
API 非常完善,比如导入导出都可以用一行 curl 来完成。在其他方面作者也显示出很高的技术品味。
对我来说,最重要的还是支持 self-hosted ,虽然它建议的部署方式为 Docker ,但是特地去使用Docker对我来说又有点多余,只能自行爬文部署。
下载
通过 Github Release 界面下载对应系统的文件。
解压至任意目录,我这边以 /var/www/remark42
目录为例。
1 | wget https://github.com/umputun/remark42/releases/download/v1.11.3/remark42.linux-amd64.tar.gz #下载对应的文件 |
运行
官方给的运行的命令为:
1 | remark42.linux-amd64 server --secret=12345 --url=http://127.0.0.1:8080 |
由于我的 8080
端口是被占用的,需要更改相应的端口,比如:
1 | ./remark42.linux-amd64 server --secret=12345 --url=http://127.0.0.1:8082 --dbg --site=luxiyue --port=8082 --admin-passwd=123456 |
--dbg
是表示显示更多信息用于调试。
--site yydnas
表示网站ID,否则为默认remark
。在嵌入代码中随之修改。
--admin-passwd=123456
管理员密码
重要提醒:
这个 parameters页面 的参数,需要逐个细看,很多配置细节后面都会用到!
部署
1. 配置Nginx反向代理
根据我的测试,单纯引入 url
是无法加载评论框的,这一步是必须的。
官方的配置文件:
1 | server { |
2. 测试
这边可以测试一下,如果你前面配置都正确了。
这边通过访问你的 域名/web/
是可以显示出来的。
3. 前端引入
在页面中引入:
1 | <script> |
然后在需要的地方添加容器:
1 | <div id="remark42"></div> |
其他
如果你只是引入了,目前它还无法正常运行,需要配置登录项。结合上面的 parameters页面 以及 Authorization页面 ,添加对应的授权。
这边以 Microsoft账号登录演示:(刚刚我把Github的已经创建好了。。。)
访问 Azure portal 完成注册并登录
参考链接:Azure portal
在控制台搜索
App registrations
点击进入点击
New registration
照着下图填写就行
地址是
域名
+/auth/microsoft/callback
完成后自动跳转到
Overview
界面,记住上面的Application (client) ID
选择左侧栏的
Certificates & secrets
,点击+ New Client Secret
按钮,右边弹出边框选择有效期最长24个月,添加后保存你的Value
将得到的两个值按照如下配置添加在你的启动命令后面
对应关系 Application (client) ID auth.microsoft.cid Client Secret Value auth.microsoft.csec 在运行命令后面添加:
1
./remark42.linux-amd64 server <省略> --auth.microsoft.cid=<填写ID> --auth.microsoft.csec=<填写value>
匿名回复的话,可以在后面再添加
--auth.anon
然后来看一下运行的结果:
后台运行
官网这边没有说明,只能我们自行配置,根据我的知识,配置如下:
1. 添加后台服务进程
1 | vim /usr/lib/systemd/system/remark42.service |
内容为:
1 | [Unit] |
保存后执行下面命令载入配置:
1 | systemctl daemon-reload |
然后通过系统命令进行执行:
启动: systemctl start remark42
配置开机自启: systemctl enable remark42
最后查看一下状态:
1 | systemctl status remark42 |
成功运行!
最后
花了大约半天时间研究这个东西,有点费脑子。
像现在主流的 Twikoo, Artalk, Valine ,三者都是面向国内用户所开发的评论系统,他们有很多相似之处,但是Remark42更多的用于国外环境,国内使用也是没有问题。
经过我测试下来,强烈建议还是推荐使用Docker方式来部署。