Migration von Disqus zu isso

Bald ist es soweit. Die DSGVO greift und die Übergangszeit ist zu Ende. Für mich ist es also an der Zeit, Disqus abzulösen und durch eine eigene Plattform zu ersetzen. Erst dachte ich: Das programmierst Du eben selbst. Aber warum so kompliziert, wenn es auch einfacher geht? Mit isso wurde nämlich schon genau so eine Lösung geschaffen.

Mir ging es darum, dass ich die Webseite eigentlich genauso lassen kann wie zuvor. Also weiterhin statischer Content und ein JavaScript lädt dann die Kommentare dazu. Genau wie bei Disqus also. Und das habe ich getan. Zum Glück gibt es auch schon fertige Docker-Images. Zusammen mit LetsEncrypt und der Apache-Konfiguration hatte ich Ablösung innerhalb weniger Stunden stehen.

Docker-Container starten

Der Container war schnell gestartet. In /config liegt nur eine isso.conf, welche ich danach beschreibe.

docker run -itd --restart=always -v /docker/isso/config:/config -v /docker/isso/db:/db -e GID=1000 -e UID=1000 --hostname=comment-haus-automatisierung-com.docker --name isso-comment-haus-auto wonderfall/isso

Hier der Inhalt der isso.conf

[general]
dbpath = /db/comments.db
host = https://haus-automatisierung.com/
max-age = 15m
[server]
listen = http://0.0.0.0:8095/
[moderation]
enabled = false
[guard]
enabled = true
ratelimit = 2
direct-reply = 3
reply-to-self = true
require-author = true
require-email = true

Das ist auch schon alles. Host die die Webseite, welche später die Kommentare laden soll. Diese Angabe ist für die CORS-Geschichten notwendig. Der Teil läuft also schonmal. Nur ist nun noch nichts von extern erreichbar. Man könnte natürlich die Ports direkt freigeben und das Ganze auf Port 8080 oder so laufen lassen. Aber ich habe mich für eine Variante mit https über den Apache per ReverseProxy entschieden:

<Macro comment-haus-automatisierung-com>
        ServerName comment.haus-automatisierung.com

        ServerAdmin postmaster@emailu.de

        DocumentRoot "/blabla/htdocs/comment/"
        ErrorLog "/blabla/logs/comment.error.log"
        CustomLog "/blabla/logs/comment.access.log" combined

        ProxyPreserveHost On
        ProxyRequests off
        ProxyPass / http://localhost:8095/
        ProxyPassReverse / http://localhost:8095/
</Macro>

<VirtualHost *:80>
        Use comment-haus-automatisierung-com
</VirtualHost>
<VirtualHost *:443>
        Use comment-haus-automatisierung-com

        SSLEngine on
        SSLCertificateFile /blabla/comment.cert.cer
        SSLCertificateKeyFile /blabla/comment.private.key
        SSLCertificateChainFile /blabla/comment.fullchain.cer
</VirtualHost>

Das wars. Zertifikat erstellt und gestartet. Läuft alles. Eigentlich arbeite ich intern ebenfalls mit Namensauflösung. Für diesen Beitrag habe ich das aber in localhost geändert. Müsste eigentlich auch klappen.

Kommentare migrieren

Auf dieser Seite kann man sich einen Export der aktuellen Kommentare laden. Sobald man dies getan hat, sollte man Disqus abschalten. Ansonsten bekommt man logischerweise eventuell eine Differenz. Danach bekommt man per Mail einen öffentlich zugänglichen Link auf die XML-Datei mit den Kommentaren. Alleine an dieser Stelle sollte man sich schon fragen, wie groß Datenschutz dort wirklich geschrieben wird. Meine Datei enthält gut 32.000 Zeilen und ziemlich viele Kommentare.

Jetzt muss diese Datei natürlich noch importiert werden. Dazu kopiere ich die XML-Datei auf den Server und schiebe sie einfach in das DB-Verzeichnis (da dieses ja eh schon ein Volume von Docker ist). Dann führe im Container den folgenden Befehl aus:

isso -c /config/isso.conf import /db/haus-automatisierung-2018-05-01T09_00_33.682754-all.xml

Der Fortschritt wird dann mit einer Prozentanzeige angezeigt und am Ende hoffentlich wie folgt quittiert:

[100%]  98 threads, 1876 comments

Das sollte der wichtigste Schritt auch schon gewesen sein. Gar nicht so schwer bis hier hin.

Client-Seite ändern

Wie man gesehen hat, lautet meine Domain für die Kommentare comment.haus-automatisierung.com. Entsprechend binde ich nun das JavaScript dafür ein.

        <script data-isso="//comment.haus-automatisierung.com/"
                data-isso-css="true"
                data-isso-lang="de"
                data-isso-reply-to-self="true"
                data-isso-require-author="true"
                data-isso-require-email="true"
                data-isso-max-comments-top="inf"
                data-isso-avatar="false"
                data-isso-vote="true"
                src="//comment.haus-automatisierung.com/js/embed.min.js"></script>

        <section id="isso-thread"></section>

Fertig. Läuft!

Leider steht jetzt noch die Aufgabe an, das Design an den Rest der Seite etwas anzupassen.

Zum Backup gehört nun noch das comments.db-File, welches eine sqllite-Datenbank ist.


Beitrag veröffentlicht

in

von

Schlagwörter: