Commento - Selfhosting Comment
Selfhosting Comment
some people mentioned that they can’t commment on some blogs. let’s change that, even there is not lot of feedback. i appreciate and read every comment and interaction with you, my readers.
poeple who knows me that i like todo most of the stuff self. so, i’d never buy a “service” for hosting some comments. i’ve got enough infrastructure running so i can host and operate it on my own.
did some research what kind of comments exists and how to integrate them into my blog.
- isso -> used it earlier days and was not trivial to setup.
- commento -> stumpled upon commento and thought i’ll give a try.
There is a “hosted” Version, but also the possibility to Host it on your own. As i have some Docker Containers running, i’ll add them there.
Commento got two Container. A Go App as Webfrontend, and a Postgres DB as Backend. Here, i’ll describe how to host it on your own.
… more to come …
docker-compose
here is the docker-compose.yml file. it contains the commento container and the postgres sql container. replace the following Values with your needs:
BLOG_URL=“https://your.blog.de” -> where do you wanna add the comments ? COMMENTO_URL=“https://commento.your.domain” -> where are this containers running ? i have a traefik in front which handles the TLS Cert and Port Forwarding PG_USER=“username for postgres” PG_PASS=“password for postgres”
version: '3'
networks:
traefik:
external: true
services:
server:
image: registry.gitlab.com/commento/commento:v1.8.0
restart: always
environment:
COMMENTO_ORIGIN: BLOG_URL
COMMENTO_PORT: 8080
COMMENTO_POSTGRES: postgres://${PG_USER}:${PG_PASS}@db:5432/commento?sslmode=disable
COMMENTO_GZIP_STATIC: "true"
COMMENTO_FORBID_NEW_OWNERS: "true"
depends_on:
- db
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.commento.rule=Host(`${COMMENTO_URL}`)"
- "traefik.http.routers.commento.tls=true"
db:
image: postgres:11.4
restart: always
environment:
POSTGRES_DB: commento
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASS}
networks:
- traefik
volumes:
- postgres_data_volume:/var/lib/postgresql/data
volumes:
postgres_data_volume:
Integration into Hugo
this is quite simple. just add the following Line at the End of your posts. Or even better, add it to the Template so all now Posts have got the Footer :)
{{ <rawhtml> }} <hr><b>Any Comments ?</b><script defer src="https://${COMMENT_URL}/js/commento.js"></script><div id="commento"></div> {{ </rawhtml> }}
Mail Relay
if you wann get mails whe new comments are added, you have to configure mail relay, src and dst mail addresses. let’s update our docker-compose.yml file.
COMMENTO_SMTP_HOST=smtp.gmail.com
COMMENTO_SMTP_PORT=587
COMMENTO_SMTP_USERNAME=example@gmail.com
COMMENTO_SMTP_PASSWORD=hunter2
COMMENTO_SMTP_FROM_ADDRESS=no-reply@example.com
or without Auth/TLS
COMMENTO_SMTP_HOST=you_mail_server
COMMENTO_SMTP_PORT=25
COMMENTO_SMTP_FROM_ADDRESS=no-reply@example.com
TODO
- DB Backup
Any Comments ?
sha256: 53cfba923f8e1142b10cf51ca5681d13855e3c416a23d9ce63efc24c592e247e