Alboh Blog

AB

Octopress mit Isso als Alternative zu disqus

Als fähige Alternative zu disqus – nur ohne den Datensilo – kommt Isso daher. Dazu braucht man Python in der Version 2.6, 2.7 oder 3.3 und einen Server. Da beides vorhanden ist, habe ich mich entschieden, Isso eine Chance zu geben. Also los …

Installation Isso

Zuerst Isso über pip installieren.

1
$ pip install isso

Dabei gibt es schon den ersten Fehler. Der GCC benötigt die “development version of Python”, um Missaka1 zu kompilieren.

1
2
3
src/misaka.c:4:20: error: Python.h: Datei oder Verzeichnis nicht gefunden
src/misaka.c:6:6: error: #error Python headers needed to compile C extensions, please install development version of Python.
error: command 'gcc' failed with exit status 1

Also zack, zack!

1
2
$ apt-get apt-get update
$ apt-get install python-dev

Dann klappt die Installation von Isso problemlos. Als Nächstes wird die Konfigurationsdatei von Isso angelegt …

1
$ touch /etc/isso.cfg

… der Pfad zur SQLite-Datenbank und die Adresse des Blogs eingetragen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[general]
    dbpath = /var/lib/isso/comments.db

    host =
        http://blog.alboh.de/
        https://blog.alboh.de/

    notify = smtp

[smtp]
    username = <username>
    password = <password>

    host = <host>
    port = <port>
    security = <none|starttls|ssl>

    to = <empfänger>
    from = <sender>

Isso bietet ja die Möglichkeiten, sich bei neuen Kommentaren via Mail benachrichtigen zu lassen. Da es noch2 keine Administrationsoberfläche gibt, scheint es mir die bequemste Möglichkeit, um über den Stand der Kommentare auf dem Laufenden zu bleiben. Damit das Funktionert, müssen noch die Einstellungen für SMTP in die Konfig eingetragen werden.

Anschließend wird die fehlende Datenbank erstellt und die Rechte angepasst. Da wir den Apache für die Auslieferung verwenden, wird der Datenbank die www-data-Gruppe zuweisen.

1
2
3
$ mkdir /var/lib/isso
$ touch /var/lib/isso/comments.db
$ chown www-data:www-data -R /var/lib/isso

Auslieferung über Apache

Isso soll über eine Subdomain erreichbar sein. Damit das möglich ist, legen wir erst mal die entsprechende Ordnerstruktur und eine Konfigurationsdatei an.

1
2
$ cd /var/www/vhosts/system/isso.alboh.de/conf
$ vi last_httpd.conf

Der Inhalt der Konfigurationsdatei sieht dabei wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
<VirtualHost 83.169.20.139:80 >
    ServerName "isso.alboh.de:80"
    ServerAlias  "www.isso.alboh.de"

    ErrorLog /var/log/apache2/isso.log

    WSGIScriptAlias / /var/www/vhosts/alboh.de/httpdocs/isso/isso.wsgi
    WSGIDaemonProcess isso.alboh.de user=www-data group=www-data threads=5
    WSGIProcessGroup isso.alboh.de

</VirtualHost>

Die Direktive WSGIScriptAlias muss auf isso.wsgi3 verweisen. Für den Daemon legen wir noch die Benutzergruppe und die Anzahl der Threads fest.

1
2
$ /etc/apache2/mods-enabled # ln -s ../mods-available/wsgi.load
$ /etc/apache2/mods-enabled # ln -s ../mods-available/wsgi.conf

Wenn mod_wsgi nicht aktiviert ist, muss dies ebenfalls noch getan werden.

1
$ sudo /etc/init.t/apache restart

Apache neustarten. Fertig!

Isso und Octopress

Um Isso in Octopress einzubinden, kommt in die _config.yml die Adresse der Subdomain rein.

1
isso_domain: isso.alboh.de

Zur Integration in die Webseite benötigen wir ein wenig Markup. In dieses lädt Isso das Formular und die bestehenden Kommentare nach. Am besten unter /.themes/<template>/source/_layouts/post.html einfügen, damit Isso nur bei Artikeln angezeigt wird. Die if-Abfrage sorgt dafür, dass Kommentare nur angezeigt werden, wenn sie im jeweiligen Artikel aktiviert sind.

(post.html) download
1
2
3
4
5
6
{% if site.isso_domain and page.comments == true %}
  <section>
    <h1>Kommentare</h1>
    <section id="isso-thread"></section>
  </section>
{% endif %}

Und zuletzt noch das Skript in /.themes/<template>/source/_includes/custom/footer.html einbinden.

(footer.html) download
1
2
<script data-isso="http://{{ site.isso_domain }}"
    src="//{{ site.isso_domain }}/js/embed.min.js"></script>

Danach sollte Isso – wie unten – angezeigt werden. Wenn ihr Probleme habt, hinterlasst einen Kommentar oder schaut im IRC #isso auf Freenode vorbei.

Edit

Wie Martin in einem Kommentar angemerkt hat, sollte man bei mod_wsgi noch einen session-key in die Konfigurationsdatei aufnehmen.

1
2
[general]
    session-key = superrandomkey1

  1. Misaka dient als Brücke zum markdown parser Sundown.

  2. Es gibt bereits ein Ticket für eine Web-Administrationsoberfläche. Siehe https://github.com/posativ/isso/issues/10

  3. Den Inhalt findet ihr auf der Seite von Isso.

Comments