Commento++ mit Docker und Traefik als Kommentarsystem
Selbstgehostetes Kommentarsystem Commento++ mit Traefik als Reverse-Proxy. So ersetzt du Disqus durch eine datenschutzfreundliche Alternative auf deinem Blog.
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 ~/docker
touch docker-compose-commento.yml
mkdir appdata/commento/db -p
nano docker-compose-commento.yml
version: "3.7"
### NETWORKS ###
networks:
web:
external:
name: web
internal:
external: false
default:
driver: bridge
### SERVICEs ###
services:
commento-server:
container_name: commento
image: registry.gitlab.com/commento/commento
restart: unless-stopped
networks:
- internal
- web
security_opt:
- no-new-privileges:true
environment:
- COMMENTO_ORIGIN=https://commento.einedomain.de
- COMMENTO_PORT=8080
- COMMENTO_POSTGRES=postgres://postgres:passwort@commento-db:5432/commento?sslmode=disable
labels:
- "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-db
commento-db:
container_name: commento-db
image: postgres
restart: unless-stopped
networks:
- internal
security_opt:
- no-new-privileges:true
environment:
- POSTGRES_DB=commento
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=passwort
volumes:
- $DOCKERDIR/appdata/commento/db:/var/lib/postgresql/data
labels:
- "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: web
internal:
external: false
default:
driver: bridge
### SERVICEs ###
services:
commento-server:
container_name: commento
image: registry.gitlab.com/commento/commento
restart: unless-stopped
networks:
- internal
- web
security_opt:
- no-new-privileges:true
environment:
- COMMENTO_ORIGIN=https://commento.einedomain.de
- COMMENTO_PORT=8080
- COMMENTO_POSTGRES=postgres://postgres:passwort@commento-db:5432/commento?sslmode=disable
- COMMENTO_FORBID_NEW_OWNERS=true
labels:
- "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-db
commento-db:
container_name: commento-db
image: postgres
restart: unless-stopped
networks:
- internal
security_opt:
- no-new-privileges:true
environment:
- POSTGRES_DB=commento
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=passwort
volumes:
- $DOCKERDIR/appdata/commento/db:/var/lib/postgresql/data
labels:
- "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 ~/docker
docker-compose -f docker-compose-commento.yml down
nano docker-compose-commento.yml
version: "3.7"
### NETWORKS ###
networks:
web:
external:
name: web
internal:
external: false
default:
driver: bridge
### SERVICEs ###
services:
commento-server:
container_name: commento
image: caroga/commentoplusplus
restart: unless-stopped
networks:
- internal
- web
security_opt:
- no-new-privileges:true
environment:
- 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=true
labels:
- "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-db
commento-db:
container_name: commento-db
image: postgres
restart: unless-stopped
networks:
- internal
security_opt:
- no-new-privileges:true
environment:
- POSTGRES_DB=commento
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=IrerenrBeAsdf
volumes:
- $DOCKERDIR/appdata/commento/db:/var/lib/postgresql/data
labels:
- "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 🙂
Verwandte Artikel
Calibre mit Docker und Traefik als Reverse Proxy einrichten
Selbstgehosteter E-Book-Manager Calibre mit Calibre-Web als GUI und Traefik als Reverse-Proxy. So verwaltest du deine E-Books privat auf dem eigenen Server.
Ghost CMS mit Docker und Traefik einrichten (Anleitung)
Ghost CMS mit Docker hinter einem Traefik Reverse Proxy betreiben. Schritt-für-Schritt-Anleitung für dein eigenes Blog-System mit SSL und Domain – jetzt starten!
Anleitung für Mailserver Mailcow hinter Traefik mit Docker
Eigener Mailserver mit Mailcow und Docker einrichten. Hinter Traefik als Reverse Proxy mit SSL, Spam-Filter und Webmail. Schritt-für-Schritt zum eigenen Mailserver!
n8n mit Docker und Traefik: Workflow-Automatisierung
n8n mit Docker und Traefik einrichten: Automatisiere Workflows effizient. Mit Reverse-Proxy, SSL und Beispielen – Prozesse automatisieren und Zeit sparen!