Skip to content

Isso

Isso

License: MIT

This guide is tested with Isso 0.14.0 on Uberspace 8.0.89. We can't guarantee it to work with newer versions.

Isso is a lightweight commenting server similar to Disqus. It allows anonymous comments, maintains identity and is simple to administrate. It uses JavaScript and cross-origin resource sharing for easy integration into (static) websites.


Note

For this guide you should be familiar with the basic concepts of:

Installation

isso can be most easily be managed with the python package and virtual environment manager pipx.

[isabell@moondust ~]$ pipx install isso
  installed package isso 0.14.0, installed using Python 3.14.6
  These apps are now available
    - isso
done! ✨ 🌟 ✨

Configuration

Create a configuration directory and a configuration file:

[isabell@moondust ~]$ mkdir -p /home/isabell/etc/isso/
[isabell@moondust ~]$ mkdir -p /home/isabell/lib/isso/

Then create a configuration file /home/isabell/etc/isso/isso.cfg.

[general]
dbpath = /home/isabell/lib/isso/isso.db
host = https://moondust.uberspace.de/
notify = smtp
reply-notifications = yes

[moderation]
enabled = yes
approve-if-email-previously-approved = yes
purge-after = 180d

[server]
listen = http://0.0.0.0:9000/
public-endpoint = https://moondust.uberspace.de/comments

[smtp]
username = isabell@moondust.uberspace.de
password = CDA65PSdVD7ZNHNrjT0fh6K1RGQM70Id_sEudskeSbw
host = moondust.uberspace.de
port = 465
security = ssl
from = "Isso" <isabell@moondust.uberspace.de>
to = isabell@moondust.uberspace.de

[guard]
enabled = yes
ratelimit = 2
direct-reply = 3
reply-to-self = yes
require-author = yes
require-email = yes

[hash]
salt = Z9q51OrQplUXLjNgqEGub8l3dX75qCxPZDvKoU8CIwM

[admin]
enabled = true
password = jRRm8QUhSlMomVlmkeazUR_pdCFYlolNan6T1tcjLpQ

Note

You can generate strong passwords with this python snippet:

[isabell@moondust ~]$ python
Python 3.14.6 (main, Jun 15 2026, 11:36:54) [GCC 16.1.1 20260430] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import secrets
>>> secrets.token_urlsafe(32)
'c-UQHsHFh5XFWqcfabjcsALiXu9DlH2phoWWYlBJZu4'

Systemd unit

[isabell@moondust ~]$ uberspace service add isso "/home/isabell/.local/bin/isso -c /home/isabell/etc/isso/isso.cfg run"
OK: Created service file: /home/isabell/.config/systemd/user/isso.service
OK: systemctl --user daemon-reload
OK: systemctl --user start isso.service
OK: systemctl --user enable isso.service
OK: systemctl --user status isso.service

● isso.service
     Loaded: loaded (/home/isabell/.config/systemd/user/isso.service; enabled; preset: enabled)
     Active: active (running) since Tue 2026-08-11 19:54:46 CEST; 313ms ago
 Invocation: 7151c8ba2f104fbaa2025a72deef0410
   Main PID: 3242136 (isso)
      Tasks: 1 (limit: 1025)
     Memory: 17.9M (peak: 18.3M)
        CPU: 251ms
     CGroup: /user.slice/user-1155.slice/user@1155.service/app.slice/isso.service
             └─3242136 /home/isabell/.local/share/pipx/venvs/isso/bin/python -E /home/isabell/.local/bin/isso -c /home/isabell/etc/isso/isso.cfg run

Aug 11 19:54:46 moondust.uberspace.de systemd[2327518]: Started isso.service.

Backend configuration

[isabell@moondust ~]$ uberspace web backend add --remove-prefix moondust.uberspace.de/comments PORT 9000
OK: Added webbackend 'moondust.uberspace.de/comments' to your Asteroid

Note

You can also use a subdomain for isso instead of the /comments "subdirectory", but it is much easier to configure this way. With subdomains you need to configure extra headers to allow cross origin requests to the isso domain.

Debugging

You can use journalctl to check the logs of isso:

[isabell@moondust ~]$ journalctl --user --unit isso.service

Updates

Note

Check the update feed regularly.

[isabell@moondust ~]$ pipx upgrade isso
[isabell@moondust ~]$ systemctl restart --user isso

Further Reading

Optional links for debugging, advanced configuration, and deeper documentation: