Presentation and installation of Isso, an open source and lightweight self-hosted Discus replacement.

If you’re not using a CMS like WordPress, chances are your CMS or blog engine doesn’t support comments.

That makes sense if it’s a static blog built with a tool like Hugo, Jekyll or Zola, but does less when your blog is powered by a database, like Ghost is.

I think comments are part of a blog and it’s important to enable them. Readers can thank you for your work, report a mistake, discuss the article, etc.

Most of the time, you’ll see blogs embedding Disqus threads (even on WordPres)… And it’s bad.

Basically, you have all the disadvantages of centralized proprietary free service:

  • You don’t own you comment: Disqus is gone, your comments are gone
  • Third party assets on your websites
  • Fat JS stuff to load the threads
  • Privacy issues: tracking and ads

That being said, it’s convenient. And there are very few alternatives.

But let’s fix that: let’s use Isso.

Isso is an Open Source commenting system written in Python, using a SQLite database. You embed it the same way as Disqus on your website, but this time it’s a 18KB self-hosted JS file that doesn’t track you… Nice, isn’t it? It does not even require an email nor username, and doesn’t embed external services like Gravatar.


The documentation does a great job covering the installation process.

Below is what you have to do to run Isso on Debian/Ubuntu.


apt-get install python-dev python-pip sqlite3 build-essential

Add a user

adduser isso --disabled-login --disabled-password

Install Isso

Install isso as the isso user.

su - isso
pip install isso


Please read the documentation to know all available options.

As en exemple, here is the configuration I’m using for this blog (/etc/isso.conf):

dbpath = /var/lib/isso/comments.db
host =
max-age = 15m
notify = smtp
log-file = /var/log/isso.log

enabled = false

listen = http://localhost:8080
reload = off
profile = off

enabled = true
ratelimit = 2
direct-reply = 3
reply-to-self = false
require-author = false
require-email = false

username =
password =
host = localhost
port = 25
security = none
to = <my email adress>
from = <isso at my fqdn>
timeout = 10

host equals to the websites where you want to embed Isso.

Systemd service

Isso will be used as a daemon listening on port 8080. We can create a systemd service (among other init systems) to manage it easily and autostart it.

Add the service in /etc/systemd/system/isso.service:

Description=lightweight Disqus alternative

ExecStart=/usr/local/bin/isso -c $ISSO_SETTINGS run


It’s very simple and straightforward.

systemctl enable isso
systemctl start isso

Nginx reverse proxy

We’ll use a reverse proxy to setup Isso under a subdomain with HTTPS.

Install Nginx:

apt install nginx

Here is a example vhost (/etc/nginx/conf.d/isso.conf):

server {
        listen 80;
        listen [::]:80;
        return 301$request_uri;

        access_log /dev/null;
        error_log /dev/null;
server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        access_log /var/log/nginx/isso-access.log;
        error_log /var/log/nginx/isso-error.log;

        ssl_certificate /etc/nginx/https/fullchain.pem;
        ssl_certificate_key /etc/nginx/https/key.pem;

        location / {
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_pass http://localhost:8080;

You can use to get a Let’s Encrypt certificate.

Using Isso on your website

Just embed the Isso JS file. For instance, put this under your article:

<script data-isso="" src=""></script>
<section id="isso-thread"></section>

I’m using my own Ghost theme, so you can see how I embedded the code at the end of my <article></article> block.


Well done! You own your comments again. Isso is super simple to install, and super lightweight. It integrates well with any websites, especially static and minimalist ones, so why not give it try?