Ich möchte gerne Kommentare in meinem Blog ermöglichen. Disqus kostet Geld, wenn man keine Werbung haben möchte und die Nutzer werden getrackt. Deshalb muss eine selbst gehostete Lösung her: Commento.
Commento is a fast, privacy-focused commenting platform
Es ist möglich für $ 10 / Monat Commento hosten zu lassen. In dieser Anleitung geht es aber darum, wie man Commento selbst hostet mit Traefik als reverse Proxy. Der Server sollte ungefähr so wie hier beschrieben eingerichtet sein.
Commento benötigt zum Laufen eine Datenbank, wir nutzen Postgres. Zunächst brauchen wir einen neuen Ordner.
cd ~/dockertouch docker-compose-commento.ymlmkdir appdata/commento/db -pnano docker-compose-commento.yml
version: "3.7"### NETWORKS ###networks:web:external:name: webinternal:external: falsedefault:driver: bridge### SERVICEs ###services:commento-server:container_name: commentoimage: registry.gitlab.com/commento/commentorestart: unless-stoppednetworks:- internal- websecurity_opt:- no-new-privileges:trueenvironment:- COMMENTO_ORIGIN=https://commento.einedomain.de- COMMENTO_PORT=8080- COMMENTO_POSTGRES=postgres://postgres:passwort@commento-db:5432/commento?sslmode=disablelabels:- "traefik.enable=true"- "traefik.http.routers.commento-rtr.entrypoints=https"- "traefik.http.routers.commento-rtr.rule=Host(`commento.$DOMAINNAME`)"- "traefik.http.routers.commento-rtr.tls=true"- "traefik.http.routers.commento-rtr.service=commento-svc"- "traefik.http.services.commento-svc.loadbalancer.server.port=8080"- "traefik.http.routers.commento-rtr.middlewares=chain-no-auth@file"depends_on:- commento-dbcommento-db:container_name: commento-dbimage: postgresrestart: unless-stoppednetworks:- internalsecurity_opt:- no-new-privileges:trueenvironment:- POSTGRES_DB=commento- POSTGRES_USER=postgres- POSTGRES_PASSWORD=passwortvolumes:- $DOCKERDIR/appdata/commento/db:/var/lib/postgresql/datalabels:- "traefik.enable=false"
Was geändert werden muss ist die Domain und das Passwort. Das war’s auch schon, docker-compose -f docker-compose-commento up -d
startet den Container. Jetzt rufen wir die Domain auf unter der Commento läuft und erstellen einen Account. Wenn der Account erstellt ist und wir uns im Dashboard befinden, geben wir wieder den Befehl docker-compose -f docker-compose-commento down
ein.
Wir passen die Einstellungen an.
version: "3.7"### NETWORKS ###networks:web:external:name: webinternal:external: falsedefault:driver: bridge### SERVICEs ###services:commento-server:container_name: commentoimage: registry.gitlab.com/commento/commentorestart: unless-stoppednetworks:- internal- websecurity_opt:- no-new-privileges:trueenvironment:- COMMENTO_ORIGIN=https://commento.einedomain.de- COMMENTO_PORT=8080- COMMENTO_POSTGRES=postgres://postgres:passwort@commento-db:5432/commento?sslmode=disable- COMMENTO_FORBID_NEW_OWNERS=truelabels:- "traefik.enable=true"- "traefik.http.routers.commento-rtr.entrypoints=https"- "traefik.http.routers.commento-rtr.rule=Host(`commento.$DOMAINNAME`)"- "traefik.http.routers.commento-rtr.tls=true"- "traefik.http.routers.commento-rtr.service=commento-svc"- "traefik.http.services.commento-svc.loadbalancer.server.port=8080"- "traefik.http.routers.commento-rtr.middlewares=chain-no-auth@file"depends_on:- commento-dbcommento-db:container_name: commento-dbimage: postgresrestart: unless-stoppednetworks:- internalsecurity_opt:- no-new-privileges:trueenvironment:- POSTGRES_DB=commento- POSTGRES_USER=postgres- POSTGRES_PASSWORD=passwortvolumes:- $DOCKERDIR/appdata/commento/db:/var/lib/postgresql/datalabels:- "traefik.enable=false"
Das Environment vom Commento-Server ist um einen Eintrag erweitert.
docker-compose -f docker-compose-commento up -d
Nun sollte es nicht mehr möglich sein einen neuen Account bei Commento anzulegen.
Warum werden dann unten keine Kommentare angezeigt? Weil die DSGVO es ohne Einschränkungen nicht zulässt. In Commento ist bisher keine Möglichkeit für die Nutzer integriert, ihren Account selbst zu löschen. Anonyme Kommentierer haben keine Möglichkeit einen Namen einzugeben (also heißen dann alle gleich). Jeder kann sich mit jeder E-Mail Adresse registrieren, man muss keine Bestätigungsmail akzeptieren.
Dies führt dazu, dass ich mich zum jetzigen Zeitpunkt dazu entschieden habe, keine Kommentarfunktion einzufügen. 😢
Update:
Nach einiger Suche habe ich das Repository von souramoo mit Commento++ gefunden. Sein Fork von Commento erlaubt es zumindest anonymen Nutzern einen Namen zu wählen, wodurch der Einsatz von Fake-Mail-Adressen nicht mehr nötig ist.
Er hat auch innerhalb weniger Minuten auf meine Anfrage reagiert, ob die Implementierung einer Funktion möglich wäre, die es Nutzern erlaubt, ihren Account wieder zu löschen. Diese wurde bereits umgesetzt und ist ab Version 1.8.6 verfügbar.
Es wird jedenfalls Zeit das Docker-Image zu ändern.
cd ~/dockerdocker-compose -f docker-compose-commento.yml downnano docker-compose-commento.yml
version: "3.7"### NETWORKS ###networks:web:external:name: webinternal:external: falsedefault:driver: bridge### SERVICEs ###services:commento-server:container_name: commentoimage: caroga/commentoplusplusrestart: unless-stoppednetworks:- internal- websecurity_opt:- no-new-privileges:trueenvironment:- COMMENTO_ORIGIN=https://commento.einedomain.de- COMMENTO_PORT=8080- COMMENTO_POSTGRES=postgres://postgres:IrerenrBeAsdf@commento-db:5432/commento?sslmode=disable- COMMENTO_FORBID_NEW_OWNERS=true- COMMENTO_GZIP_STATIC=truelabels:- "traefik.enable=true"- "traefik.http.routers.commento-rtr.entrypoints=https"- "traefik.http.routers.commento-rtr.rule=Host(`commento.$DOMAINNAME`)"- "traefik.http.routers.commento-rtr.tls=true"- "traefik.http.routers.commento-rtr.service=commento-svc"- "traefik.http.services.commento-svc.loadbalancer.server.port=8080"- "traefik.http.routers.commento-rtr.middlewares=chain-no-auth@file"depends_on:- commento-dbcommento-db:container_name: commento-dbimage: postgresrestart: unless-stoppednetworks:- internalsecurity_opt:- no-new-privileges:trueenvironment:- POSTGRES_DB=commento- POSTGRES_USER=postgres- POSTGRES_PASSWORD=IrerenrBeAsdfvolumes:- $DOCKERDIR/appdata/commento/db:/var/lib/postgresql/datalabels:- "traefik.enable=false"
Die wichtigste Änderung ist das Image vom Commento-Server.
docker-compose -f docker-compose-commento up -d
Damit läuft der Server. Commento++ muss nur noch in die eigene Webseite eingebunden werden 🙂