.. frontmatter title: comments date: 2014-10-15 author: Johannes Löthberg author_link: /~kyrias/about.html .. role:: sc :sc:`Finally set it up so` that each journal entry gets a separate page generated for itself too in addition to being on the `journal index`_. Each entry gets a file in the ``/~kyrias/journal/`` subdirectory named after the entry source file but with the extension changed to ``.html`` instead of ``.rst``. My first thought for which commenting system to use was disqus, but I don't really like using it at all in practice so I quickly decided against it. I do quite like discourse_ though and thought about setting it up, but that would require me setting up PostgreSQL and Redis, neither of which I feel like setting up nor that I would have any other use for, and both would use up quite a bit of resources for basically nothing, so discourse was out. After looking around for a bit and finding a few disqus clones I finally found isso_, which is named after either a German abbreviation or after the 360th_ Pokémon’s name in German. While it’s probably the first alternative, the second sounds more fun so I’ll just go with that. Isso is a rather simple commenting server written in python, uses Markdown for stylinx (hopefully I can get it to do reStructuredText too maybe), and using SQLite for storage which is a plus since it means I don't have to set up some big bulky SQL server. All you need to do to try it out is on the `quickstart page`_, but it roughly comes down to first installing isso (it’s installable through ``pip``), then writing a really short config file that tells isso where to store the SQLite database for comments and which hosts isso will be used on for CORS_. After that you just start isso up pointing it at the config file and it’s up and running. The client-side of isso is just ``script`` and ``section`` tag away, and then you’re done setting it up. Isso has support for simple moderation where new comments end up in a queue and has to be manually activated by going through a URL that can be emailed to you if you want, and things like rate limiting new comments. All of it is documented on the `server configuration`_ and `client configuration`_ pages, and there's also some info on the isso API and things like a comment counter. I could continue rambling about what it supports, but that would be rather pointless since it’s written so nicely on their website. Where I had some issues was getting it run properly under uWSGI_ and using NGINX_ as a reverse proxy, but it turned out after an hour of testing that I had installed uWSGI but not the python plugin. D’oh. Once I had that installed and added ``plugins = python`` to the uWSGI config file and adjusted my NGINX config file slightly since I run isso under a sub URI instead of on a separate domain it worked perfectly though. Here’s the config files I’m currently using: .. raw:: html As far as I know the ``uwsgi_param HTTP_X_SCRIPT_NAME /isso;`` line is only needed if you’re running isso under a sub URI and I think it isn’t needed if you aren’t, but don’t quite me on that. I have yet to set up the moderation part of isso though, and that’s probably what I’m going to play with next. geros ilas. .. _journal index: https://theos.kyriasis.com/~kyrias/journal.html .. _discourse: http://www.discourse.org/ .. _isso: https://posativ.org/isso/ .. _360th: http://bulbapedia.bulbagarden.net/wiki/Wynaut_(Pok%C3%A9mon) .. _quickstart page: https://posativ.org/isso/docs/quickstart/ .. _CORS: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS .. _server configuration: https://posativ.org/isso/docs/configuration/server/ .. _client configuration: https://posativ.org/isso/docs/configuration/client/ .. _uWSGI: http://projects.unbit.it/uwsgi .. _NGINX: http://nginx.org/