Isso是一个轻量级的第三方评论系统,允许匿名评论、注册评论、邮件通知、自定义外观等功能。Isso基于Python实现,因此可以很方便的修改代码,自定义外观或者扩展新的功能。

Isso可以通过Docker或者源代码安装,具体可以参考官网文,此处不再赘述。其关键在于服务端和客户端的配置。

服务端配置

核心配置就三条。

[general]
dbpath = /var/lib/isso/comments.db
host = https://example.tld/
[server]
listen = http://localhost:1234/

dbpath数sqlite数据库的路径。

host是要绑定评论系统的网站的地址,如果有多个,需要依次输入,空格隔开。

listen是服务端在本地的监听地址和端口,端口默认为8080,如果ip设置为0.0.0.0,则监听本地所有地址。

客户端配置

<script data-isso="/prefix/"
        data-isso-id="thread-id"
        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-isso-vote-levels=""
        data-isso-feed="false"
        src="/prefix/js/embed.js"></script>

核心配置也是三条。data-isso是isso访问前缀。为了避免跨域带来的问题,isso通常被代理在目标网站的特定路径下,data-isso即指定此路径前缀。

data-isso-id是评论区域html元素的id, 例如:

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

src指定脚本的绝对路径。

nginx代理配置

server {
    listen       [::]:80;
    listen       [::]:443 ssl;
    server_name  example.tld;
    root         /var/www/example.tld;

    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:8080;
    }
}