开源评论系统Remark42
文章目录
介绍
Remark42是一个轻量级,自托管,简单的强大的评论系统,使用Golang编程语言开发的。 因为是部署在自己服务器上的,所以不会搜集信息到第三方。完全脱离第三方的。 它可以嵌套大家的博客,文章页面或者是你想有评论功能的网页中都可以。 详细的介绍和源代码访问:GitHub
功能介绍
- 通过Google,Facebook,GitHub和Yandex进行社交登录
- 通过电子邮件登录
- 支持匿名访问
- 带有树和普通演示文稿的多层嵌套评论
- 可以导入Disqus和WordPress的评论数据
- 支持Markdown的格式
- 管理员可以删除评论和用户禁言
- 支持投票,个人标示和验证
- 支持多种评论排序
- 图片可以可视化导入
- 支持最近的评论
- 支持RSS
- 支持通知
- 支持自动备份用JSON的格式
- 没有数据库,存储使用单一文件
- 支持Docker的部署
- 可以在Linux, Windows和MacOS,直接运行可执行文件
- 简单,轻量,可以选择两个主题,如果是还有需求的,可以自己拉源码编译
- 部署一套评论系统可以支撑多个网站
- 支持HTTPS的访问
- 注重隐私
技术细节
- 数据存储在boltdb(嵌入式键/值数据库)文件中
- 每个站点都单独的boltbd文件
- 为了将remark42迁移/移动到另一个主机,可以直接拷贝boltdb文件
- 自动备份过程每24小时运行一次,并将所有内容以json-like格式导出到backup-remark-YYYYMMDD.gz。
- 通过存储在cookie中的go-pkgz / auth来实现身份验证。它使用HttpOnly,安全cookie。
- 在LRU缓存内部缓存所有重型REST调用受限于CACHE_MAX_ITEMS并CACHE_MAX_SIZE与细末pkgz /休息
- 用户的活动在全球范围内受到限制(最多1000个同时请求),而在本地受到限制(每个用户通常最多10 req / sec)
- 请求超时设置为60秒
- 管理员身份验证(–admin-password设置)允许在没有社交登录和管理员权限的情况下访问remark42 API。为username:admin,password:添加basic-auth ${ADMIN_PASSWD}。
- 用户可以多次投票给评论,但只能更改投票。不允许进行两次投票。
- 创建后,用户可以在5分钟(可配置)窗口中编辑评论。
- 使用oauth提供者名称对用户ID进行哈希处理和添加前缀,以避免冲突和潜在的滥用。
- 所有化身都会调整大小并在本地缓存,以防止来自oauth提供商的限速器,这是go-pkgz / auth功能的一部分。
- 可以使用图像(IMG_PROXY=true)进行代理,以防止HTTP / https混合。
- Docker构建使用公开可用的基础映像。
注重隐私
- Remark42试图对任何私有或半私有信息非常敏感。
- 身份验证从身份验证提供程序请求最小可能的范围。他们返回的所有额外信息将立即丢弃,并且不会以任何形式存储。
- 通常,remark42仅保留用户ID,用户名和头像链接。这些字段均不直接公开-标识和名称进行了哈希处理,并附加了头像。
- 没有任何形式的跟踪。
- 登录技工使用存储在cookie(httpOnly,安全)中的JWT。第二个cookie(XSRF_TOKEN)是防止CSRF的随机ID。
- 没有跨站点登录,即无法在运行remark42的独立站点之间分析用户的行为。
- 不涉及第三方分析服务。
- 用户可以要求remark42知道的所有信息并导出到gz文件。
- 支持彻底清除与用户活动有关的所有信息。
- Cookie的寿命可以限制为仅会话。
- 由remark42存储的所有潜在敏感数据都经过哈希处理和加密。
集成Hugo
这次主要是分享在使用了hugo静态博客中建设自托管的评论系统remark42,如果大家想用第三方的
评论系统,只需要在前端页面嵌入一段js和html就可以直接使用,那么可以直接跳过本章内容。
喜欢静态网站的并且喜欢自己服务器上提供的评论系统的,那么remark42绝对是不错的选择。
安装
服务
安装这里只介绍最小资源使用的方式,有钱的可以看官网的docker的方式
- 下载稳定版本或开发版本,地址
- 因为是资源最小,建议使用linux的系统,创建一个文件夹来解压的文件 tar -xvf 稳定版
- 然后在解压的目录中执行命令:
|
|
这里介绍一些必须的和常用的参数,其他更多和更详细的参数请看地址官方的介绍
- –secret 必填项,加密的字符串
- –url 评论系统的服务器地址
- –auth.github.cid 使用github登陆验证的Client ID
- –auth.github.csec 使用github登陆验证的Client Secret
- –admin.shared.id 评论系统管理员ID
- –site 评论系统的一个网站的标示,因为一个评论系统可以支持多个网站
如果你的静态网站和remark42是部署在一台机器的话,需要让remark42跑在后台运行。
- 这里使用的screen的命令实现的后台运行
- screen -S 名称,随便定义
- 然后执行上面的remark42的启动命令
- 然后control+A+D 临时退出screen的一个会话
- 通过端口查看ss -tnl 看看是否有8080端口启动,前提是你没有修改过默认端口
- screen -ls 查看正在运行中的后台会话
前端
- 前端页面的配置
在前端页面需要评论的页面最下面加入下面的脚本
|
|
- 下面是输入评论的展示位置的代码,放入需要的位置
|
|
- 如果需要展示最近的评论信息,在需要最近评论的页面最下面输入代码
|
|
- 输入需要展示最近评论的展示代码
|
|
-
统计指定页面的评论数据,在需要统计页面的最下面输入代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<script> var remark_config = { host: "REMARK_URL", // hostname of remark server, same as REMARK_URL in backend config, e.g. "https://demo.remark42.com" site_id: 'YOUR_SITE_ID', components: ['counter'] }; (function(c) { for(var i = 0; i < c.length; i++){ var d = document, s = d.createElement('script'); s.src = remark_config.host + '/web/' +c[i] +'.js'; s.defer = true; (d.head || d.body).appendChild(s); } })(remark_config.components || ['embed']); </script>
-
输入需要展示的位置代码
|
|
如果还有配置疑问可以看文章最后的FAQ,或者在下面留言
如果只需要看搭建遇到问题和寻找答案的,可以直接看FAQ
测试和总结
测试
如果运行没有问题,可以输入地址部署的机器地址+/web ,就可以看到一个demo的页面
总结
使用自托管的评论系统,不用担心后期的第三方的不支持,例如某某说。 我也是刚使用不久,后面如果遇到问题,希望大家一起去提交issue。
FAQ
- 需要怎么申请GitHub的application
创建新的OAuth App - 怎么知道自己主机CPU是什么型号:amd64,arm64,386…
CentOS的命令
|
|
文章作者 拉斐
永久链接 https://www.7benshu.com/post/2019/11/3/
版权声明
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
上次更新 2020-07-15
7本书-公众号