开源评论系统 Isso 全攻略
(本文写于 2017 年初,更新于 2022 年)
博客评论系统现状:
- 多说已经倒闭了,将于 2017.6.31 结束服务
- Disqus 国内非常不稳定,虽然用了一段时间,但是发现最近好像有广告了,有很多乱七八糟的请求。
- 畅言估计和多说差不了多少,没看到赢利点。
- 网易云跟帖,不能设置昵称,不能匿名评论,加了官方群,都是提问的,管理员不作为。
- 然后就找到了这个开源的评论系统:Isso
2022-05-22 更新:本站评论系统替换为 Waline,详见:从 Isso 迁移到 Waline
2020-03-22 更新:最近又看了下新版本(源码安装),有了很多新特性:
- 支持邮件通知,每个评论都发给管理员,评论者可以接收别人回复自己的评论;
- 支持 Gravatar 头像显示(支持使用CDN镜像,你懂的),或者随机头像;
- 支持 MarkDown;
- 后台审核管理功能;
- 对评论进行<顶>/<踩>;
- Python 3
2017-05-01 更新:新增微信审核评论的方法,见:微信审核开源评论系统 Isso 的评论
官网 https://posativ.org/isso/
Github https://github.com/posativ/isso/
安装
节选并翻译自官方文档:https://posativ.org/isso/docs/install/
使用 pip 安装
要求:
- Python 2.6, 2.7 or 3.3+ (+ devel headers)
- SQLite 3.3.8 +
- C 编译器
先安装 python 和依赖
Debian/Ubuntu 系统:
1 | ~> sudo apt-get install python-dev sqlite3 build-essential |
对于 Fedora/Centos 系统 :
1 | ~> sudo yum install python-devel sqlite |
注:这个 Development Tools
我没有安装成功,但是没影响
安装 Isso
1 | ~> pip install isso |
注:我是用 Python 2 安装的,在 Python 3 上面报 sqlite3 的错误,没法用。
使用操作系统的包管理器安装
- Debian: https://packages.crapouillou.net/ – built from PyPi. Includes startup scripts and vhost configurations for Lighttpd,
Apache and Nginx [source]. #729218 is an ITP for Debian. - Gentoo: http://eroen.eu/cgit/cgit.cgi/eroen-overlay/tree/www-apps/isso?h=isso – not yet available in Portage, but you can use the ebuild to build Isso.
- Arch Linux: https://aur.archlinux.org/packages/isso/ – install with yaourt isso.
- Fedora: https://copr.fedoraproject.org/coprs/jujens/isso/ — copr repository. Built from Pypi, includes a systemctl unit script.
- Docker Image: https://registry.hub.docker.com/u/bl4n/isso/
注:上述方法我没有实验
从源码安装
要求:
- Python 2.6, 2.7 or 3.3+ (+ devel headers)
- Virtualenv
- SQLite 3.3.8 or later
- a working C compiler
- Node.js, NPM and Bower(安装 nodejs 后 可以使用 npm 安装 Bower)
克隆仓库:
1 | ~> git clone https://github.com/posativ/isso.git |
注:截止2017.3.30,最新版为 0.10.7-dev ,经测试没法用,各种404。后来从 github Release 下载的 0.10.5 和 0.10.6 均正常。
创建一个虚拟环境(推荐,我没用,我用的 pyenv):
1 | ~> virtualenv . |
安装 Isso 及其依赖:
1 | ~> python setup.py develop # or `install` |
安装 JavaScript 模块:
1 | ~> make init |
优化前的 js:
1 | <script src="/js/config.js"></script> |
压缩 js:
1 | ~> npm install -g requirejs uglify-js jade |
配置
服务端配置
详情见文档 https://posativ.org/isso/docs/configuration/server/
自己编写一个配置文件 : isso.conf
1 | [general] |
客户端配置
详情见文档 https://posativ.org/isso/docs/configuration/client/
1 | <script data-isso="https://your-domain.com" |
使用
导入 Disqus 或 Wordpress 的评论,这一点很好。可怜了多说用户。
1 | isso -c /path/to/isso.conf import disqus-or-wordpress.xml |
运行命令:
1 | isso -c /path/to/isso.conf run |
部署
gunicorn
我现在用的是这种方式,支持 https
1 | $ pip install gunicorn |
运行:
1 | $ export ISSO_SETTINGS="/path/to/isso.cfg" |
其他部署方式
见官方文档:
- mod_wsgi
- uWSGI
- gevent
- mod_fastcgi
- Openshift
优缺点
优点
- 自己对评论系统有完全的控制权。
缺点
- 邮件通知只有英文,已有人提交 pull request,还没合并。
- 只支持 2 级评论回复。
不支持回复评论时通知评论作者, Isso 的作者在考虑要不要 merge 这个 pull request。已经支持。avatar 头像不能关联 gravatar.com 的头像。已经支持。- 已有后台管理系统。
评论不好管理,常规方法可以通过邮件提醒里面的链接来删除评论。非常规方法就要修改数据库了,sqlite
进入命令行:1
2
3ATTACH 'comments.db' as isso;
SELECT id,author,text from isso.comments;
DELETE FROM isso.comments WHERE id=87;