评论系统现状:
- 多说,友言已经倒闭了
- Disqus 国内非常不稳定,虽然用了一段时间,但是发现最近好像有广告了,有很多乱七八糟的请求,并且需要用户登录国外几个网站的帐号才能评论
- 畅言多说差不了多少,没看到赢利点,还需要备案审核
- 网易云跟帖,不能设置昵称,不能匿名评论,加了官方群,都是提问的,管理员不作为。
- 腾讯产品:吐个槽,https://tucao.qq.com/,需要用户 qq 或者微信登录,定制化程度低
- Wildfire 野火评论系统 https://wildfire.js.org/#/ 看着也不错,完全开源
- 开源评论系统:isso,由 python 和 Javascript 编写,可自己部署,数据保存在自己手里
参考文档:
官网 https://posativ.org/isso/
官方 github https://github.com/posativ/isso/
搭建支持微信审核评论的 ISSO 评论系统 https://kagami.xyz/post/build-isso-comment-system-with-wechat/
微信审核功能的 github https://github.com/regomne/isso
开源评论系统 Isso 全攻略 https://zhangnew.com/isso-open-source-comment-system.html
安装 isso
节选并翻译自官方文档:https://posativ.org/isso/docs/install/
python 虚拟环境安装
安装 pyenv,切换成 python3 环境(参考 http://www.cnblogs.com/npumenglei/p/3719412.html)
从源码安装 isso
要求:
- Python 3.3+ (+ devel headers)
- Virtualenv
- SQLite 3.3.8 or later
- a working C compiler
- Node.js, NPM and Bower(安装 nodejs 后 可以使用 npm 安装 Bower)
克隆仓库:
git clone https://github.com/regomne/isso
cd isso/
git checkout wechat-comment
切换 python 版本,支持微信审核的版本必须要用 python3 版本
virtualenv -p /root/.pyenv/shims/python3.6 .
source ./bin/activate
安装 Isso 及其依赖:
python setup.py install
安装 JavaScript 模块:
make init
压缩 js:
npm install -g requirejs uglify-js jade
make js
配置
指定配置文件运行
./bin/isso -c share/isso.conf run
配置 Server 酱
Server 酱是一套通信工具,允许你通过一条简单的 http 请求,给你的微信发出通知。
直接打开它的官方网站,可以进去之后看教程;
或者按我这里的来:先点击登入网站(用 github 授权登录),然后绑定微信推送,最后在测试页面向自己的微信发消息测试。
到这里,我们就可以进行最简单的评论消息通知了,思路大致就是修改 ISSO 的代码,把发送邮件的地方改为访问刚刚看到的那个 http 请求。
但是我们的目的是审核,就是接收到通知之后,还要有个简单的方式接受或者删除这条评论。这就需要 Server 酱提供的另一个接口了:
配置 TalkAdmin
还是在刚刚的网站上,登入之后进入这里,点击添加命令,然后:
- 命令名称 随便。
- 命令正则 空。
- 选择下行命令。
- WebHook 地址 空。
- 交互界面模板 如下填写(照抄的刚刚那篇文章里的):
- 交互界面自定义 CSS 也可以留空。
点保存,然后回到 TalkAdmin 页面,可能要刷新才能看到刚刚的命令,随后点击该命令,记下你的 webhook 地址中的 key:
http://sc.ftqq.com/webhook/xxxxxxxxxxxx
isso 服务端配置
详情见文档 https://posativ.org/isso/docs/configuration/server/
参考默认配置文件 share/isso.conf 修改
[general]
; 数据库位置,注意检查权限,如果没有会自动创建。
dbpath = /var/lib/isso/comments.db
; 博客的地址,可以添加多个,比如 http 和 https
host =
http://localhost:4000/
http://comment.dprating.com/
[moderation]
; enable comment moderation queue. This option only affects new comments.
; Comments in modertion queue are not visible to other users until you activate
; them.是否开启审核
enabled = true
; remove unprocessed comments in moderation queue after given time.为审核评论删除时间
purge-after = 30d
; 审核评论通知方式,使用 微信,注意Wechat的首字母W要大写,代码里检查的是Wechat不是wechat
notify = Wechat
[wechat]
;web hook key of TalkAdmin,
web-hook-key = 123-4567
[server]
; 监听的地址和端口 : 0.0.0.0 代表任何人可以访问,这里端口号跟nginx配置的反向代理保持一致
listen = http://0.0.0.0:8001/
[guard]
enabled = true
;每分钟新增评论数量
ratelimit = 30
;单个thread评论数量限制
direct-reply = 30
; 是否允许回复自己
reply-to-self = true
; 是否必须填写作者
require-author = false
; 是否必须填写邮箱
require-email = false
isso 客户端配置
详情见文档 https://posativ.org/isso/docs/configuration/client/
demo 网页源码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<section id="isso-thread"></section>
</body>
</html>
<script data-isso="http://comment.dprating.com/isso/"
data-isso-id="123"
data-isso-css="true"
data-isso-lang="zh_CN"
data-isso-reply-to-self="false"
data-isso-require-author="false"
data-isso-require-email="false"
data-isso-max-comments-top="10"
data-isso-max-comments-nested="5"
data-isso-reveal-on-click="5"
data-isso-avatar="true"
data-isso-avatar-bg="#f0f0f0"
data-isso-avatar-fg="#9abf88 #5698c4 #e279a3 #9163b6 ..."
data-isso-vote="true"
data-vote-levels=""
src="http://comment.dprating.com/isso/js/embed.min.js"></script>
部署
nginx 配置
server {
listen 80;
listen [::]:80;
server_name example.com;
root /opt/isso;
location /isso {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Script-Name /isso;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8090;
}
}
把 demo 网页文件放到/opt/isso 下面即可
检查 Nginx 配置并重新加载
nginx -t
nginx -s reload
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于