A Disqus alternative https://posativ.org/isso/
Go to file
2013-10-24 14:38:40 +02:00
docs purge comments in moderation queue after given time, closes #13 2013-10-24 14:38:40 +02:00
isso purge comments in moderation queue after given time, closes #13 2013-10-24 14:38:40 +02:00
specs purge comments in moderation queue after given time, closes #13 2013-10-24 14:38:40 +02:00
.gitignore split 3rd-party packages to vendor and components 2013-10-02 14:26:06 +02:00
CONTRIBUTING.md update README and add CONTRIBUTING page 2013-10-19 14:27:25 +02:00
isso.ini add uWSGI development ini 2013-10-06 15:36:43 +02:00
LICENSE re-license to MIT 2013-09-19 18:44:40 +02:00
MANIFEST.in fix MANIFEST.in 2013-10-19 14:27:05 +02:00
README.md update README and add CONTRIBUTING page 2013-10-19 14:27:25 +02:00
setup.py support for Python 3.3 2013-10-09 16:33:49 +02:00
tox.ini purge comments in moderation queue after given time, closes #13 2013-10-24 14:38:40 +02:00

Isso Ich schrei sonst

You love static blog generators (especially Acrylamid cough) and the only option to interact with the community is Disqus. There's nothing wrong with it, but if you care about the privacy of your audience you are better off with a comment system that is under your control. This is, where Isso comes into play.

Screenshot @2013-09-13 | Screenshot @2013-10-03 | Try Yourself! (in case it's not crashed ;-)

Isso is not stable (pretty far from that state) and the database format may change without any backwards compatibility. Just saying.

Features

  • CRUD comments
  • SQLite backend, Disqus import
  • client-side JS (currently 61kb minified, 21kb gzipped)
  • I18N, available in german and english (also fallback)

Roadmap

  • Ping/TrackBack™ support
  • simple admin interface
  • spam filtering

Installation

Note, there is currently no PyPi release, but I'll upload a snapshot infrequently. Nevertheless, here are the requirements:

  • Python 2.6, 2.7 or 3.3
  • easy_install or pip

Install Isso (and its dependencies) with:

~> pip install http://posativ.org/~tmp/isso-latest.tar.gz

Before you start, you may want to import comments from Disqus.com:

~> isso import ~/Downloads/user-2013-09-02T11_39_22.971478-all.xml
[100%]  53 threads, 192 comments

You start the server via (try to visit http://localhost:8080/static/post.html).

~> isso run

Webserver Configuration

This part is not fun, I know. I have prepared two possible setups for nginx, using Isso on the same domain as the blog, and on a different domain. Each setup has its own benefits.

Isso on a Sub URI

Let's assume you want Isso on /isso, use the following nginx snippet:

server {
    listen       [::]:80;
    listen       [::]:443 ssl;
    server_name  example.tld;
    root         /var/www/example.tld;

    location /isso {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Script-Name /isso;
        proxy_pass http://localhost:8080;
    }
}
<link rel="stylesheet" href="http://example.tld/isso/css/isso.css" />
<script src="http://example.tld/isso/js/embed.min.js"></script>

Isso on a Dedicated Domain

Now, assuming you have your isso instance running on a different URL, such as http://example.tld:8080, but your blog runs on http://example.tld:

~> cat example.cfg
[general]
host = http://example.tld/
~> isso -c example.cfg run
 * connecting to SMTP server [failed]
 * connecting to HTTP server [ok]
 * Running on http://localhost:8080/

Make sure, Isso can connect to server that hosts your blog, otherwise you are not able to post comments.

Integrate Isso with:

<link rel="stylesheet" href="http://example.tld:8080/css/isso.css" />
<script src="http://example.tld:8080/js/embed.min.js"></script>

Also, put the plain isso server behind a real web server or use uWSGI.

Website Integration

To enable comments, add a <div id="isso-thread"></div> below your post and let the magic happen :-)

To add comment count links to your index page, include count.min.js at the very bottom of your document. All links followed by #isso-thread, are updated with the current comment count.

This functionality is already included when you embed embed.min.js, do not mix embed.min.js and count.min.js in a single document.

Other Documents

Alternatives