自己的评论系统才是最好的评论系统,前段时间多说关闭了评论系统切换到网易云跟帖毕竟是Beta项目反垃圾系统太严格了,动不动就审核失败而且自己还看不到被系统删除的留言,而且目前在云跟帖的群里的管理员说目前该项目正在暂停状态意思云跟帖也随时会关闭,果断自搭建了个留言系统,综合实验了各个开源系统最终ISSO的系统最稳定,唯一的遗憾就是没有后台系统

准备环境

  1. 支持Python的环境
  2. 支持STMP的邮件服务器

环境依赖

摘抄官方(需要翻墙)https://posativ.org/isso/docs/install/

1
2
3
4
# for Debian/Ubuntu
sudo apt-get install python-setuptools python-virtualenv
# Fedora/Red Hat
sudo yum install python-setuptools python-virtualenv

安装ISSO (PIP包)

先安装 Python 的 PIP包管理工具
http://www.pip-installer.org/en/latest/

1
2
3
4
5
6
7
#安装到根Python目录
#Debian /usr/local/lib/python2.7/dist-packages
pip install isso

#安装到指定目录
source /opt/isso/bin/activate
pip install isso

创建配置文件

安装目录下有默认的配置文件 defaults.ini 把它拷贝到任意目录。直接修改也是可以的。
参数详解 https://posativ.org/isso/docs/configuration/server/
创建服务端配置文件 nano /home/isso.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
;;;;;;;;;;;;;;;;
;基础设置
;;;;;;;;;;;;;;;;
[general]
;储存评论的SQLite数据库文件
dbpath = /home/comments.db
;允许使用的网站
host =
http://www.hscbook.com/
https://www.hscbook.com/
;允许评论发布后多少分钟内可编辑
;0代表关闭(不建议开启)
max-age = 0
;新评论的通知(审核)方式:smtp,stdout
;smtp是每有一条评论就通过SMTP邮件服务器发送邮件
;stdout是每有一条评论就通过SSH控制台输出
;建议使用SMTP方式,可通过邮件管理评论
notify = smtp
;系统日志的文件地址
log-file = /home/ruan/isso/isso.log
;;;;;;;;;;;;;;;;
; 邮件服务器
;;;;;;;;;;;;;;;;
;SMTP邮件服务器地址
[smtp]
username = 用户名
password = 密码
host = SMTP主机
port = SMTP端口
;邮件编码(默认utf-8)
;encoding: utf-8
;邮件加密方式
security = ssl
;通知(审核)邮件发送到哪里
to = mail@hscbook.com
;邮件的标题和发送地址
from = "HscBook 评论通知" <fas@hscbook.com>
;STMP服务器的连接超时时间
timeout = 15
;;;;;;;;;;;;;;;;
; 评论审核
;;;;;;;;;;;;;;;;
[moderation]
;打开评论审核
enabled = true
;最大审核时间(超过这个时间评论会自动被删除)
purge-after = 3d
;;;;;;;;;;;;;;;;
; 评论允许使用的元素标签
;;;;;;;;;;;;;;;;
[markup]
;markup插件
options = superscript
;允许使用的HTML标签
allowed-elements = blockquote,br,code,del,em,h1,h2,h3,h4,h5,h6,hr,ins,p,pre,strong,table,tbody,thead,td,th
;允许的HTML标签属性
allowed-attributes = align
;;;;;;;;;;;;;;;;
; 简单垃圾防御
;;;;;;;;;;;;;;;;
[guard]
;是否开启
enabled = true
;每个IP每分钟最大评论数
ratelimit = 2
;评论回复次数
direct-reply = 3
;是否允许回复自己
reply-to-self = false
;是否必须输入名称
require-author = true
;是否必须输入邮箱
require-email = true
;;;;;;;;;;;;;;;;
; 加密KEY
;;;;;;;;;;;;;;;;
;对留言的邮箱地址进行加密
[hash]
salt = pdsTiOa86HkuLsa6Xsrtyfd8
algorithm = pbkdf2
;;;;;;;;;;;;;;;;
; 评论服务地址
;;;;;;;;;;;;;;;;
;对外服务的地址
[server]
;sock与http·二选一
;SOCK地址
;listen = unix:///tmp/isso.sock
;http地址
listen = http://0.0.0.0:8080/

在网站引用评论框

引用ISSO-JS文件

在页尾 footer 添加处引用JS文件和客户端参数设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script data-isso="//0.0.0.0:8080/"
data-isso-css="true"
data-isso-lang="ru"
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="//0.0.0.0:8080/js/embed.js"></script>

参数详解 https://posativ.org/isso/docs/configuration/client/
|– 是否使用自带的CSS样式表
|–> data-isso-css="true"
|– 默认语言
|–> data-isso-lang="ru"
|– 是否允许回复自己(与服务端同步)
|–> 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"
|– 头像的颜色库(最多8个)
|–> data-isso-avatar-fg="#9abf88 #5698c4 #e279a3 #9163b6 ..."
|– 开启评论的支持和反对
|–> data-isso-vote="true"
|– 支持和反对的显示算法
|–> data-vote-levels=""

插入评论框与评论数

使用下面两个标签的前提是必须引用JS文件
在文章页的评论框处插入ISSO评论框

1
<section id="isso-thread"></section>

在列表页和其他的任意位置插入评论记数

1
<a href="需要显示评论数的文章地址#isso-thread">Comments</a>

启动ISSO

输入:isso -c /home/isso.conf run

自启动ISSO脚本

摘抄官方文档 https://posativ.org/isso/docs/install/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/sh
### BEGIN INIT INFO
# Provides: isso
# Required-Start: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: lightweight Disqus alternative
### END INIT INFO

EXEC=/opt/isso/bin/isso
EXEC_OPTS="-c /etc/isso.cfg run"

RUNAS=isso
PIDFILE=/var/run/isso.pid

start() {
echo 'Starting service…' >&2
start-stop-daemon --start --user "$RUNAS" --background --make-pidfile --pidfile $PIDFILE \
--exec $EXEC -- $EXEC_OPTS
}

stop() {
echo 'Stopping service…' >&2
start-stop-daemon --stop --user "$RUNAS" --pidfile $PIDFILE --exec $EXEC
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac

头像使用Gravatar

由于ISSO的作者担忧Gravatar的隐私泄露反对Gravatar功能,但是github上有一个Pull requests可以自行编译而支持Gravatar的头像显示
源Pull requests:https://github.com/posativ/isso/pull/317
我的分支链接:https://github.com/Hscpro/isso
不会用github就直接克隆我的GIT进行编译吧,编译教程点这里
请注意官方教程上的环境依赖!编译安装与直接安装环境要求不一样

邮件回复通知

github上有一个Pull requests是实现邮件回复通知的提交
https://github.com/posativ/isso/pull/50

END

文章最后修订日期:2017-11-12 12:01:02
启用了ISSO评论,并写了个备份脚本定期自动备份评论数据到云盘,从此腰也不疼,再也不用担心他方评论系统哪天人家心情不好来个关闭,搬评论数据甚至痛失数据的灾难了。
名称和邮箱必须填写(给你自己一个身份吧亲),我也开启了邮件地址加密,你填写的邮箱并不会被垃圾蜘蛛扫描

文章协议: Attribution-NonCommercial-NoDerivatives
文章地址: https://www.hscbook.com/article/isso-comment/
除非注明,本博文章均为原创,转载请以链接形式标明本文地址