部落格評論系統現狀:
- 多說已經倒閉了,將於 2017.6.31 結束服務
- Disqus 國內非常不穩定,雖然用了一段時間,但是發現最近好像有廣告了,有很多亂七八糟的請求。
- 暢言估計和多說差不了多少,沒看到贏利點。
- 網易雲跟帖,不能設定暱稱,不能匿名評論,加了官方群,都是提問的,管理員不作為。
- 然後就找到了這個開源的評論系統:Isso
2017.5.1 update:新增微信稽核評論的方法,見:微信稽核開源評論系統 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 系統:
~> sudo apt-get install python-dev sqlite3 build-essential
對於 Fedora/Centos 系統 :
~> sudo yum install python-devel sqlite
~> sudo yum groupinstall "Development Tools"
注:這個 Development Tools
我沒有安裝成功,但是沒影響
安裝 Isso
~> pip install isso
or
~> easy_install isso
注:我是用 Python 2 安裝的,在 Python 3 上面報 sqlite3 的錯誤,沒法用。
使用作業系統的包管理器安裝
- Debian: https://packages.crapouillou…. – 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… – not yet available in Portage, but you can use the ebuild to build Isso.
- Arch Linux: https://aur.archlinux.org/pac… – install with yaourt isso.
- Fedora: https://copr.fedoraproject.or… — copr repository. Built from Pypi, includes a systemctl unit script.
- Docker Image: https://registry.hub.docker.c…
注:上述方法我沒有實驗
從原始碼安裝
要求:
- 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)
克隆倉庫:
~> git clone https://github.com/posativ/isso.git
~> cd isso/
注:截止2017.3.30,最新版為 0.10.7-dev ,經測試沒法用,各種404。後來從 github Release 下載的 0.10.5 和 0.10.6 均正常。
建立一個虛擬環境(推薦,我沒用,我用的 pyenv):
~> virtualenv .
~> source ./bin/activate
安裝 Isso 及其依賴:
~> python setup.py develop # or `install`
~> isso run
安裝 JavaScript 模組:
~> make init
優化前的 js:
<script src="/js/config.js"></script>
<script data-main="/js/embed" src="/js/components/requirejs/require.js"></script>
壓縮 js:
~> npm install -g requirejs uglify-js jade
~> make js
配置
服務端配置
詳情見文件 https://posativ.org/isso/docs/configuration/server/
自己編寫一個配置檔案 : isso.conf
[general]
; 資料庫位置,注意檢查許可權,如果沒有會自動建立。
dbpath = /var/lib/isso/comments.db
; 部落格的地址,可以新增多個,比如 http 和 https
host =
http://localhost:4000/
http://zhangnew.com/
https://zhangnew.com/
; 評論通知,使用 smtp
notify = smtp
[server]
; 監聽的地址和埠 : 0.0.0.0 代表任何人可以訪問
listen = http://0.0.0.0:8001/
[smtp]
username =
password =
host = smtp.mxhichina.com
port = 25
security = none
to =
from =
timeout =
[guard]
enabled = true
ratelimit = 2
; 評論數量限制
direct-reply = 30
; 是否允許回覆自己
reply-to-self = true
; 是否必須填寫作者
require-author = false
; 是否必須填寫郵箱
require-email = false
客戶端配置
詳情見文件 https://posativ.org/isso/docs/configuration/client/
<script data-isso="/prefix/"
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="https://zhangnew.com/js/embed.js"></script>
使用
匯入 Disqus 或 WordPress 的評論,這一點很好。可憐了多說使用者。
isso -c /path/to/isso.conf import disqus-or-wordpress.xml
執行命令:
isso -c /path/to/isso.conf run
部署
文件: https://posativ.org/isso/docs/extras/deployment/
gevent
pip install gevent
isso -c my.cfg run
uWSGI
安裝 :
~> apt-get install build-essential python-dev
~> pip install uwsgi
配置檔案:
[uwsgi]
http = :8080
master = true
; set to `nproc`
processes = 4
cache2 = name=hash,items=1024,blocksize=32
; you may change this
spooler = /tmp/isso/mail
module = isso.run
; uncomment if you use a virtual environment
; virtualenv = /path/to/isso
env = ISSO_SETTINGS=/path/to/isso.cfg
執行:
~> mkdir /tmp/isso/mail
~> uwsgi /path/to/uwsgi.ini
注:該方法執行失敗,有一個 status code 報錯。
gunicorn
我現在用的是這種方式,支援 https
$ pip install gunicorn
執行:
$ export ISSO_SETTINGS="/path/to/isso.cfg"
$ gunicorn -b 0.0.0.0:8001 -w 4 --certfile=certificate.crt --keyfile=private.key --preload isso.run
其他部署方式
見文件:
- mod_wsgi
- mod_fastcgi
- Openshift
優缺點
優點
- 自己對評論系統有完全的控制權。
缺點
- 不支援回覆評論時通知評論作者, Isso 的作者在考慮要不要 merge 這個 pull request(我根據這個 pr 實現了該功能)。
- avatar 頭像不能關聯 gravatar.com 的頭像(自己實現了)。
- 評論不好管理,常規方法可以通過郵件提醒裡面的連結來刪除評論。非常規方法就要修改資料庫了,
sqlite
進入命令列:
ATTACH `comments.db` as isso;
SELECT id,author,text from isso.comments;
DELETE FROM isso.comments WHERE id=87;
轉載自我的部落格 https://zhangnew.com