/ Isso

Isso für Ghost auf uberspace - HowTo

Auch wenn ich erst mal die Google+ Kommentare als einfach und bequem einzubinden verwendet hab - so recht passt mir das nicht. Die Suche ist in Ordnung, dafür ist Google ja unter anderem da, aber Kommentare mit Registrierungszwang und auf einem fremden Server wollte ich dann doch nicht haben. Also versuchen wir's noch mal.

Disclaimer

Dieser Artikel beschreibt meine eigenen Versuche mit Isso. Es läuft danach auf einem eigenen Port und ist über eine mittels RewriteRule gemappte Adresse verfügbar. Um Isso schnell mal auszuprobieren (danach auf FastCGI umzusteigen ist ja keine Hexerei) ist das ganz brauchbar.

Mittlerweile verwende ich Isso über FastCGI. Eine tolle Anleitung hierzu gibt es vom Isso-Autor persönlich.

Server installieren

Zunächst mal lässt sich Isso ganz einfach - wie in der Dokumentation beschrieben - installieren. In diesem Fall mit python 2.7 - es sollten aber auch 2.6 bzw. 3.2 funktionieren.

~> pip-2.7 install isso

Danach ist etwas Konfiguration erforderlich. Zunächst ist der Datenbankpfad anzupassen. Ich hab unter ~/etc ein Verzeichnis für Isso angelegt.

mkdir ~/etc/isso

und danach unter ~/bin/isso.cfg die entsprechende Zeile angepasst. Dann noch den Host anpassen (in diesem Falle auf http://christianpfanner.at) und einen geeigneten Port wählen. Auf dem Uberspace muss dieser zwischen 61000 und 65535 liegen und frei sein, was mit

/usr/sbin/ss -ln | fgrep PORT 

geprüft werden kann. No news are good news - es sollte keine Ausgabe stattfinden, sonst ist der Port schon in Verwendung. Aber es gibt ja ein paar. Schließlich schaut die isso.cfg in etwa so aus:

[general]
; database location, check permissions, created if not exists
dbpath = ~/etc/isso/comments.db
; your website or blog (not the location of Isso!)
host = 
	http://meineseite.com/
    https://meineseite.com/
; you can add multiple hosts for local development
; or SSL connections. There is no wildcard to allow
; any domain.
host = localhost:PORT

ACHTUNG: Das Einrücken der Host-Einträge ist NICHT optional. Ich hatte bei einer Konfiguration darauf vergessen, dann liest Isso keine Hosts ein! Ist nur ein Host gewünscht, kann dies auch in einer Zeile angegeben werden:
host = http://meineseite.com

Somit sollte die Konfiguration erst mal passen. Mit

isso -c ~/bin/isso.cfg

kann das Ganze gestartet werden. Und knallt auch gleich, das argparse-Paket fehlt noch.

pip install argparse

Nächster Versuch. Die unsympathische Meldung

sqlite3.OperationalError: unable to open database file

ist der Erfolg. Ich probiere ein wenig herum - mit einem "richtigen" Pfad scheint es zu gehen, offenbar wird die Tilde im dbpath nicht richtig interpretiert. Also änderne ich die Zeile auf

/home/username/etc/isso/comments.db

und hiermit startet Isso schon mal. Es gibt noch Hoffnung.

Verfügbar machen

Als Nächstes braucht das Ganze einen Namen, damit das Script auch eingebunden werden kann. Direkten Zugriff auf den Indianer hab ich hier keinen, aber das Rewrite-Module müsste hier ja durchaus gute Dienste leisten. Also flugs einen Ordner für die comments-subdomain angelegt

mkdir /var/www/virtual/USER/comments.meineseite.com

und dort eine Proxykonfiguration reingeklopft

RewriteEngine On
RewriteRule (.*) http://localhost:PORT/$1 [P]

das ist jetzt zwar im Moment auch direkt über die URL erreichbar, was weder ideal noch empfohlen ist, darum kümmere ich mich später.

Einbinden in Ghost

Jetzt lässt sich das Ganze endlich in Ghost einbinden. An der gewünschten Stelle im Template das Script einbinden:

<script isso-data="http://comments.meineseite.com"
    src="http://comments.meineseite.com/js/embed.min.js"></script>
    <section id="isso-thread">
</section>

Das funktioniert natürlich nicht nur mit Ghost, aber dieser Blog hier basiert eben darauf. Es gibt auch da noch einiges an Konfigurationsmöglichkeiten. Wünschenswert wäre z.B. die Übergabe einer eindeutigen ID, denn wenn ich die URL ändere, können die Kommentare natürlich nicht mehr zugeordnet werden. Das Problem haben aber die meisten Kommentarsysteme, vorerst mal kann ich damit sicher leben. Jetzt erst mal Ghost neustarten (damit das geänderte Theme eingelesen wird) und Isso anwerfen.

svc -du ~/services/ghost
isso -c isso.cfg

Tadaa!

Sodala - ich habe isso mal von der Kommandozeile aus gestartet und in den Hintergrund geschickt.

isso -c ~/bin/isso.cfg

Ctrl + z

bg
exit

Service

Den Prozess einfach in den Hintergrund zu schicken ist natürlich nicht die feine englische Art. Jetzt wo offenbar alles funktioniert ist noch der Service einzurichten. Uberspace stellt da ein paar hilfreiche Tools zur Verfügung.

 uberspace-setup-service isso  env ISSO_SETTINGS=~/bin/isso.cfg python ~/bin/isso

Würde man meinen. So einfach funktionert das dann doch nicht - dazu komme ich bald. Danke für's lesen und viel Spaß beim kommentieren einstweilen!