Kommentare selber hosten mit Isso

Wenn du eine Kommentarfunktion auf deiner eigenen Seite einrichten möchtest gibt es drei Möglichkeiten. Neben den systemeigenen Kommentaren und Disqus gibt es noch Isso, welches ich dir heute vorstellen werde.

Warum Isso?

Im Normalfall wirst du auf das Kommentarsystem deines Content-Management-System (CMS) zurückgreifen wollen. Wordpress hat ein recht gutes, auch andere bieten das an. Wenn du einen Blog bei Blogger hast kannst du dort auch auf dieses System zurückgreifen.

Im Leben eines Webentwicklers gibt es aber auch Zeiten, in denen kein CMS verwendet wird sondern die Seite in reinem HTML geschrieben ist. Hierfür fällt einem dann als erstes Disqus ein, ein Kommentarsystem aus den USA. Gibts übrigens auch für Wordpress. Die Einrichtung ist denkbar einfach, Account erstellen, Einstellungen vornehmen und ein fertigen Codeblock direkt auf die Website packen. Disqus hat dabei aber zwei gravierende Nachteile: Erstens lässt sich das System vom Aussehen her fast gar nicht anpassen, da es per IFrame geladen wird (pfui!). Noch schlimmer aber: Du holst dir damit alle Möglichen Trackingtools mit ins Haus. Disqus setzt dabei mindestens Google Analytics ein. Außerdem werden alle Daten, Mailadressen der Nutzer u.ä. in den USA gespeichert. Und anonym kommentieren ist auch nicht möglich.

someone is wrongQuelle: Randall Munroe, cc-by-nc 2.5

Genau hier setzt Isso an. Da du dieses System auf deinem eigenen Server betreibst, bist du Herr über alle anfallenden Daten. Es wird auch nichts getrackt, es gibt einfach nur eine Kommentarfunktion und gut ist. Die Einrichtung auf der Website ist dabei genauso einfach wie bei Disqus, einfach einen Codeblock kopieren und gut ist.

Weiterhin kannst du Isso optisch beliebig anpassen, da die Elemente hierbei direkt in den DOM eingefügt werden und nicht per IFrame integriert werden. Ebenso ist anonymes Kommentieren möglich, dennoch können Nutzernamen, Mailadressen und Webseiten bei Bedarf angegeben werden.

Der Name Isso kommt übrigens wirklich von dem deutschen "Isso" (Kurzform für "Ist so!"). Nur falls du dich gewundert hast.

Installation

Überzeugt? Dann nichts wie ran an die Installation! Zu allererst brauchst du Python. Wenn du einen eigenen (virtuellen) Root-Server hast, kein Problem. Auch ein uberspace bietet Python von Haus aus an, hierfür gibt es sogar schon fertige Isso-Anleitungen. Wenn du nur ein einfaches Webhosting-Paket hast, wird die Installation wahrscheinlich nicht möglich sein, zur Not frag einfach mal beim Support nach.

Python installieren

Nun, da die Vorraussetzungen geklärt sind, musst du Python installieren. Das geschieht auf Debian-Systemen ganz einfach mit

sudo apt-get install python-setuptools python-virtualenv 
sudo apt-get install python-dev sqlite3 build-essential

Als nächstes legst du dir eine virtuelle Umgebung an. Das ist sinnvoll, damit sich verschiedene Anwendungen bei benötigten Bibliotheken nicht in die Quere kommen, wenn sie zB. verschiendene Versionen benötigen. Um diese Umgebung anzulegen und in diese hinein zu wechseln führst du folgende zwei Befehle (als normaler Nutzer) aus:

virtualenv /opt/isso source /opt/isso/bin/activate

Isso installieren

Nun geht es an die eigentliche Installation von Isso. Dazu reicht - wieder einmal - ein einziger Befehl:

pip install isso

Daumen drücken - nach etwa fünf bis zehn Sekunden sollte die Installation abgeschlossen sein.

Konfiguration

Isso konfigurieren

Vor dem ersten Start musst du Isso noch konfigurieren. Woher soll es schließlich wissen, wo es die Datenbank ablegen soll? (Moment, Datenbank ablegen? Ja, Isso verwendet SQLite, wo eine Datenbank aus einer einzigen Datei besteht, im Gegensatz zu MySQL und Konsorten.) Dazu legst du dir eine neue Datei an. Wo ist egal, ich lagere sie der einfachhalt halber direkt im Installationsverzeichnis.

touch /opt/isso/isso.cfg 
nano /opt/isso/isso.cfg

Hier hinein kannst du nun verschiedene Optionen setzten. Als erstes wird im [general]-Bereich festgelegt, wo deine Datenbank liegen soll. Du kannst die jetzt folgenden Codeblöcke einfach nacheinander in die Datei einfügen. Weiterhin definierst du hier die Domains, für die das Blogsystem gelten soll, die maximale Zeit, die Nutzer haben, ihre Beiträge zu editieren und die Benachrichtigung per Mail.

[general] 
dbpath = /opt/isso/isso.db 
host = 
    http://deinedomain.de 
    https://deinedomain.de 
max-age = 15m 
notify = smtp

Als nächstes muss der Server konfiguriert werden. Damit wird festgelegt, über welche Adresse (und vorallem: Port) der Server auf Eingaben wartet.

[server] 
listen = http://localhost:2345

Weiterhin braucht Isso die nötigen Einstellungen um die Mails per SMTP versenden zu lassen. Da hier dein Passwort im Klartext gespeichert wird, solltest du für Isso einen eigenen Account auf deinem Mailserver einrichten. Alternativ kannst du die Moderation natürlich auch sein lassen und Kommentare direkt anzeigen lassen.

[moderation] 
enabled = true 
purge-after = 30d 
[smtp] 
username = 
password = 
host = localhost 
port = 587 
security = starttls 
to = deine@mailadresse.de 
from = comments@deinedomain.de 
timeout = 10 

Der Guard schließlich bietet eine einfache Spamprotection:

[guard] 
enabled = true 
ratelimit = 2 
direct-reply = 3 
reply-to-self = false 

Zuletzt musst du auf deine Seite noch den Code einfügen, damit Isso überhaupt erscheint. Füge einfach an beliebiger Stelle (nach einem Artikel würde ggf. Sinn machen) folgenden Code ein:

<script data-isso="//comments.deinedomain.de/"  src="//comments.deinedomain.de/js/embed.min.js"></script>
<section id="isso-thread"></section>

Apache bereit machen

Du möchtest das Kommentarsystem ja unter comments.deinedomain.de erreichbar haben, nicht unter deinedomain.de:2345. Dafür muss der Apache richtig konfiguriert werden. Als erstes müssen dazu zwei Module aktiviert werden:

a2enmod proxy 
a2enmod proxy_http 
service apache2 restart

Als nächstes kannst du einen VirtualHost einrichten:

touch /etc/apache2/sites-avaible/comments.conf 
nano /etc/apache2/sites-avaible/comments.conf

Hierhinein schreibst du nun folgende Zeilen:

<virtualhost *:80="">
ServerName comments.deinedomain.de 
ProxyPreserveHost On 
ProxyRequests Off 
ProxyVia Off 
ProxyPass / http://127.0.0.1:2345/ 
ProxyPassReverse / http://127.0.0.1:2345/
</virtualhost>

Als letztes muss die Subdomain aktiviert werden, das geht mit

a2ensite comments.conf 
service apache2 reload

Isso starten

Noch wird bei einem Neuladen der Seite ziemlich genau nichts erscheinen. Isso muss nämlich erst gestartet werden.

isso -c /opt/isso/isso.cfg run

Nun sollte im Terminal einen neue Zeile erscheinen, die besagt, Isso ist erfolgreich auf die Domain gemappt worden. Auf der Website solltest du jetzt ein Kommentarsystem sehen. Herzlichen Glückwunsch! Bleibt nur noch ein Problem: Sobald du den Server mittels [Strg]+[c] oder verlassen des Terminals beendest, gibts auch keine Kommentare mehr zu sehen. Daher richten wir im letzten Schritt Isso als Service ein:

Isso-Service einrichten

Ein Service hat den Vorteil, das dieser immer im Hintergrund läuft und auch bei einem Neustart direkt mitgestartet wird. Um Isso als Service zu konfigurieren musst du folgendes machen:

Abschluss

Herzlichen Glückwunsch: Du hast jetzt ein voll funktionsfähiges Kommentarsystem!

Wenn du Kommentare von Disqus oder Wordpress importieren willst geht das auch ganz einfach:

isso -c /opt/isso/isso.cfg import disqus-or-wordpress.xml

Zu aller letzt kannst du jetzt noch Isso stylen wie du möchtest, es stehen dir mit CSS alle Optionen offen. Bei Fragen gilt wie immer: Ab in die Kommentare damit. Und jetzt: Viel Spaß!

Facebook Twitter Google+ WhatsApp

von Florian Schmidt

Gründer von Netzleben. Studiert IT System Engineering am Hasso-Plattner-Institut in Potsdam. Kauft viel zu viel Technik online ein. Liebt Kekse.

Hinterlasse einen Kommentar

Kommentare


mclien

evtl. bin ich nur zu doof, aber ich finde beim besten Willen nicht heraus, ob das ganze auch funktioniert, wenn den INhalt der Seite mit php queries steuert.
Nehmen wir an ich habe:
blog.example.com/bla/index.php?seite=1 und
blog.example.com/bla/index.php?seite=2
bekomme ich dann mit isso hin, dass die jeweils eine eigene Kommentar Sektion haben?

Hierauf antworten