Comments Enabled

06 Feb 2022
4 minute read

I’ve enabled comments on the blog.

If you scroll down to the bottom of the post, you should see a comment entry form. Anyone can add a comment to any post (the form is on all posts, back to the very first post. Hooray for templates!)

I chose Isso as the backend to drive the comment system. There’s actually quite a few options for people looking to add comments to their blog. I wasn’t aware there was such a large ecosystem. I chose Isso because it seems to be in active development and is well supported, it was fairly easy to install, and doesn’t take a lot of resources to render.

When I first started this blog, I originally didn’t want a comment system, mainly because I didn’t want to deal with comment spam. Then I found Webmentions and thought that would be a perfect solution. To comment via webmention, you have to have your own web site. You post the comment there and then link it (send a webmention) to the original site. In theory, this should make comments self-policing. No spam bot is going to create its own web site, just to spam link comments elsewhere. In practice, this creates an impossibly high bar for commenters. Almost nobody outside the IndieWeb community is going to have their own web site to send webmentions from.

Then I tried Bridgy, which can forward posts from social sites and turn them into webmentions. I have Bridgy linked to my twitter account, and in theory replies there should show up as comments. Then I tried linking in Reddit, and as far as I can tell, Bridgy is buggy and won’t send Reddit replies. I talked briefly with its creator and he seemed to think there was an issue, but there wasn’t any follow up.

So I’ve enabled regular comments, available to anyone. Isso does have an admin page so I can delete comment spam if I get any. But to be honest, this site is small enough that worrying about comment spam seems a little unnecessary.

Setting up Isso

The Isso Quickstart is pretty well documented. I don’t use python, but it was easy enough to install on my Debian Bullseye

$ sudo apt-get install python-dev sqlite3 build-essential
$ sudo -H pip install isso

I installed isso as a global system package instead of in a home dir for a specific isso account. Maybe it would have been better to have it there. I did decide to make an isso user:

$ sudo adduser isso --disabled-login --disabled-password

and place the config files there.

Then I created a systemd unit to make sure isso is running on startup. I kind of wanted this as a user unit, but I couldn’t get systemd to run units from a user that has login disabled. So it’s just with all my other local units:

[Unit]
Description=Isso Comment Server
 
[Service]
Type=simple
User=isso
Group=isso
WorkingDirectory=/home/isso
ExecStart=/usr/local/bin/isso -c /home/isso/isso.conf
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target

And then I needed to add an entry in my domain for the comments server, comments.reiterate.app, and add a server block in my nginx config to respond to that:

server {
    listen [::]:80;
    server_name comments.reiterate.app comments.reiterate-app.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

One thing that was different for me – I needed an extra block to handle SSL.

But after that, it all seemed to work. It was remarkably hassle-free to set up and get running. Now I just have to see how much of an issue comment spam will be.

Tagged with

Comments and Webmentions


You can respond to this post using Webmentions. If you published a response to this elsewhere,

This post is licensed under CC BY 4.0