A Disqus alternative https://posativ.org/isso/
Go to file
2013-10-31 17:39:45 +01:00
docs move developer section from CONTRIBUTING into its own document 2013-10-31 11:57:34 +01:00
isso remove admin interface fragments 2013-10-31 17:14:32 +01:00
specs remove stale threads after all comments have been deleted 2013-10-31 11:08:00 +01:00
.gitignore include uncompressed JS files for debugging purposes 2013-10-31 11:23:58 +01:00
CHANGES.rst Back to development: 0.3 2013-10-30 16:22:44 +01:00
CONTRIBUTING.md move developer section from CONTRIBUTING into its own document 2013-10-31 11:57:34 +01:00
isso.ini use uWSGIs locking 2013-10-30 10:52:06 +01:00
LICENSE re-license to MIT 2013-09-19 18:44:40 +02:00
Makefile include uncompressed JS files for debugging purposes 2013-10-31 11:23:58 +01:00
MANIFEST.in remove static/post.html from MANIFEST.in 2013-10-31 17:39:45 +01:00
README.md rewrite website integration part 2013-10-31 17:16:08 +01:00
setup.py Back to development: 0.3 2013-10-30 16:22:44 +01:00
tox.ini improve doctests and refactor title extraction 2013-10-29 12:01:45 +01: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.

Try Yourself!

Features

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

Roadmap

  • Ping/TrackBack™ support
  • simple admin interface (needs contributor)
  • spam filtering

Installation

  • Python 2.6, 2.7 or 3.3
  • a working C compiler

Install Isso with:

~> pip install isso

Set your database location and website:

~> cat my.cfg
[general]
dbpath = /var/lib/isso/comments.db
host = http://example.tld/

You can optionally import your comments from Disqus.com:

~> isso -c my.cfg 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/check-ip.

~> isso -c my.cfg run
2013-10-30 09:32:48,369 WARNING: unable to connect to SMTP server
2013-10-30 09:32:48,408 WARNING: connected to HTTP server

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

Website Integration

You can run Isso on a dedicated domain or behind a sub URI like /isso. It makes actually no difference except for the webserver configuration (see below).

Whatever method you prefer (just change the URL), you add comments to your site, add:

<head>
    ...
    <script src="http://example.tld/js/embed.min.js"></script>
    ...
</head>
<body>
    ...
    <div id="isso-thread"></div>
    ...
</body>

The JavaScript client will automatically detect the API endpoint. To show the comment count for a post, add #isso-thread to the link:

<head>
    ...
    <script src="http://example.tld/js/count.min.js"></script>
    ...
</head>
<body>
    ...
    <a href="/path/to/post#isso-thread">Comments</a>
    ...
</body>

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.

Webserver configuration

  • nginx configuration to run Isso on /isso:

    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;
        }
    }
    
  • nginx configuration to run Isso on a dedicated domain:

    server {
        listen       [::]:8080;
        server_name  comments.example.tld;
    
        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:8080;
        }
    }
    

Documentation

Alternatives