Ubuntu上安装配置Isso
Isso是基于Python写的一套网站评论系统,用于给网站添加评论功能,尤其类似于MKdocs、Hexo等生成的静态网站。使用Isso搭建评论服务,评论数据使用sqlite数据库保存。官方提供了很多种安装方式,本文使用PIP安装。
安装前置软件
安装PIP
PIP(Python Package Index) 是Python软件包管理系统,一般来说,PIP随着python一起安装的,所有只需要对pip升级到最新版即可:
安装SQLite3
由于Isso的评论使用SQlite3数据库保存,需要安装:
新建一个目录用来存放Isso的数据(sqlite3的存放目录),由于Isso运行过程中需要读写数据库,可以将该目录授予读写权限,顺便把文件所有者改为www-data(nginx的用户):安装python-dev build-essential
网站配置
修改静态页面所在的网站配置,增加isso的反代功能:
在其中的server字段增加: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:8090;
}
server{
root /var/www/zimoapps.com;
index index.html index.htm index.nginx-debian.html;
server_name zimoapps.com;
location / {
try_files $uri $uri/ =404;
}
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:8090;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/zimoapps.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/zimoapps.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = zimoapps.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name zimoapps.com;
listen 80;
return 404; # managed by Certbot
}
安装Isso
安装很简单,一句命令即可:
配置Isso
新建Isso的配置文件/home/isso/isso.conf
:
然后粘贴下面内容:
[general]
dbpath = /tmp/comments.db
name =
host =
http://zimoapps.com/
https://zimoapps.com/
max-age = 15m
notify = smtp
reply-notifications = true
log-file =
gravatar = false
gravatar-url = https://www.gravatar.com/avatar/{}?d=identicon
latest-enabled = false
[admin]
enabled = true
password = mypass
[moderation]
enabled = false
approve-if-email-previously-approved = false
purge-after = 30d
[server]
listen = http://localhost:8080
public-endpoint =
trusted-proxies =
[smtp]
username = service@zimoapps.com
password = mypassowrd
host = smtp.mxhichina.com
port = 465
security = ssl
to = zimo@zimoapps.com
from = "zimo comments" <service@zimoapps.com>
timeout = 10
[guard]
enabled = true
ratelimit = 2
direct-reply = 3
reply-to-self = false
require-author = false
require-email = false
[markup]
options = strikethrough, autolink, fenced_code, no_intra_emphasis
flags =
allowed-elements =
allowed-attributes =
[hash]
salt = Eech7co8Ohloopo9Ol6baimi
algorithm = pbkdf2
[rss]
base =
limit = 100
配置完成后,可以使用命令来启动Isso了:
2021-02-03 21:07:02,752 INFO: connected to SMTP server
2021-02-03 21:07:02,786 INFO: connected to https://zimoapps.com/
注意
可能运行会报错:
File "/usr/local/bin/isso", line 5, in <module>
from isso import main
File "/usr/local/lib/python3.8/dist-packages/isso/__init__.py", line 59, in <module>
from werkzeug.wsgi import SharedDataMiddleware
ImportError: cannot import name 'SharedDataMiddleware' from 'werkzeug.wsgi' (/usr/local/lib/python3.8/dist-packages/werkzeug/wsgi.py)
requirements.txt
中,修改Werkzeug==0.16.1
,保存退出。
执行完毕后,再次运行isso。
安装 Supervisor
Supervisor 是一款进程守护软件,目的是保持 Isso 在后台运行。
生成一份supervisor的配置到/etc/supervisord.conf
:
VI修改/etc/supervisord.conf
:
在/etc/supervisord.conf
文件的后面加入:
[program:isso]
command = /usr/local/bin/isso -c /etc/isso.conf run
directory = /home/isso
user = www-data
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/isso.log
stderr_logfile = /var/log/supervisor/isso_error.log
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.18.0 (Ubuntu)</center>
</body>
</html>
Supervisor简单命令
前端页面配置Isso
到现在,Isso的服务端已经成功配置并运行,为了展示并提交评论,需要在前端页面中显示isso的评论相关内容。需要在前端相关页面的位置中插入Isso的运行代码:
<script data-isso="https://zimoapps.com/isso/" src="https://zimoapps.com/isso/js/embed.min.js"></script>
<section id="isso-thread"></section>
对于Mkdocs,或者Mkdocs的Material for MkDocs主题,修改
./overrides/base.html
的{% block disqus %}
部分:
{% block disqus %}
<script data-isso="https://zimoapps.com/isso/" src="https://zimoapps.com/isso/js/embed.min.js"></script>
<section id="isso-thread"></section>
{% endblock %}
<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>
最后,本站未必采用这个评论系统,所以,先贴个效果图!