自己的评论系统才是最好的评论系统,前段时间多说关闭了评论系统切换到网易云跟帖毕竟是Beta项目反垃圾系统太严格了,动不动就审核失败而且自己还看不到被系统删除的留言,而且目前在云跟帖的群里的管理员说目前该项目正在暂停状态意思云跟帖也随时会关闭,果断自搭建了个留言系统,综合实验了各个开源系统最终ISSO的系统最稳定,唯一的遗憾就是没有后台系统
准备环境
- 支持Python的环境
- 支持STMP的邮件服务器
环境依赖
摘抄官方(需要翻墙)https://posativ.org/isso/docs/install/
# 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/
#安装到根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
;;;;;;;;;;;;;;;; ;基础设置 ;;;;;;;;;;;;;;;; [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文件和客户端参数设置<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评论框
<section id="isso-thread"></section>
在列表页和其他的任意位置插入评论记数
<a href="需要显示评论数的文章地址#isso-thread">Comments</a>
启动ISSO
输入:
isso -c /home/isso.conf run
自启动ISSO脚本
#!/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
邮件回复通知
github上有一个Pull requests是实现邮件回复通知的提交
https://github.com/posativ/isso/pull/50
END
文章最后修订日期:2019-1-13 12:01:02
启用了ISSO评论,并写了个备份脚本定期自动备份评论数据到云盘,从此腰也不疼,再也不用担心他方评论系统哪天人家心情不好来个关闭,搬评论数据甚至痛失数据的灾难了。
名称和邮箱必须填写(给你自己一个身份吧亲),我也开启了邮件地址加密,你填写的邮箱并不会被垃圾蜘蛛扫描