상현에 하루하루
All 개발자의 하루

disqus 대안 (remark42)

( 업데이트: )

사용자들지 손쉽가 다가갈 수 있는 disqus 하지만 disqus는 버벅임이 심하고 유료 비즈니스 모델 무료로 사용할시에 광고 등등 불편한점들이 많다. 그렇다면 disqus를 대체할 무언가? 없을까?

필요한 요소 찾아보기

  • Markdown
  • Awesome ui
  • self-hosting
  • SNS Login

이렇게 필요한 요소들을 넣다보니 결국 유료 서비스를 찾고있게 되었다. 나의 블로그의 접속하는 모든 사용자가 개발자고 모두가 Github을 사용한다면 아주 손쉽게

giscus를 사용했겠지만 블로그도 따로 운영하고 개발에 관련되지 않은 포스팅도 따로 할 예정이다. 그렇다면 comment관련해서 어떻게 해야할까? 워드프레스에서 익명으로 관리해야할까?

워드프레스에서 CMS로만 사용하기도 벅찬데 댓글 & 유저 기능까지 부여 하고싶지 않았다.

그러다 자주 애용하는 Deliciousbrains Blog에서 코맨트를 Privacy-Focused Comment System | ReplyBox를 사용하는 것을보고 위의 조건중에 self-hosting은 안되지만 임시 방편으로 사용해보자 하고 결제를 하고 유지를 해왔다.

Replybox를 사용해보고 후기

Replybox 아주 훌륭하고 좋다! 매달 지불되는 금액이 부담스럽다.

  • markdown
  • awesome ui
  • SNS Login

아주 좋았지만 금액의 부담… 어쩔수 없이 self-hosting의 중요도를 높여서 오픈소스를 찾아보기 시작했다.

self-hosting을 우선순위로

self-hosting이 되어야해서 docker 예제가있는지 docker image로 만들수있는지를 중점적으로 봤다.

  1. posativ/isso: a Disqus alternative
    • ❌ SNS Login
    • ❌ Awesome UI
    • ✅ Self Hosting
  2. adtac/commento: A fast, bloat-free comments platform (Github mirror)
    • ❌ SNS Login
    • ✅ Awesome UI
    • ✅ Self Hosting
    • ✅ docker example
  3. umputun/remark42: comment engine
    • ✅ SNS Login
    • ❌ Awesome UI
    • ✅ Self Hosting
    • ✅ docker-compose!

위 처럼 정리되어서 commento랑 remark42를 테스트하기 시작했다

comment system 테스트

commento: 오류 발견? 작동하지 않는다?

commento의 문서(Using Docker · Commento)를 따라서 docker-compose를 만들어서 docker-compose up -d 기대하는 마음으로 시작해봤지만

2021/12/22 01:40:03 [ERROR] database_connect.go:31 dbConnect(): cannot talk to postgres, retrying in 10 seconds (4 attempts left): pq: unknown authentication response: 10
2021/12/22 01:40:13 [INFO] database_connect.go:20 dbConnect(): opening connection to postgres: postgres://postgres:redacted@db:5432/commento?sslmode=disable

무슨 문제일까? log에서 비밀번호가 재대로 표시되지 않아서 비밀번호가 문제인가? 생각을하고 비밀번호를 다시 설정하고 up! 역시나 실패헀다.

왜 그런지 살펴보니까 내가 사용하고있는 PostgreSQL는 14.1 버전인데 오류없이 작동하는 PostgreSQL은 11 버전인 것이다. 그래서 어쩔수 없이 일단은 remark42를 테스트해보자 하고 넘어갔다.

remark42: 404 page not found

remark42또한 docker-compsoe.yaml 예제를 통해서 up!! 실행해봤다.

version: "2"

services:
  remark:
    image: ghcr.io/umputun/remark42:master
    container_name: "remark42"
    hostname: "remark42"
    restart: always

    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "5"

    # uncomment to expose directly (no proxy)
    ports:
      - "3000:8080"

    environment:
      - REMARK_URL=http://localhost:3000
      - STORE_BOLT_PATH=/srv/var/db
      - BACKUP_PATH=/srv/var/backup
      - DEBUG=true
    volumes:
      - ./var:/srv/var

실행할때 사용했던 docker-compose이다.

localhost:3000 url로 접속해서 404 page not found가 뜨는 거다! 대략 난감 왜? why? 그렇게 예제들을 계속 찾아보다가

http://localhost:3000/web 으로 접속하면 데모가 잘 나온다.

remark42: 워드프레스에 적용

위 경험을 토대로 Frontend Configuration | Remark42 Remark42의 프론트엔드 적용방법을 보면서 재대로 적용하였다.

disqus의 대안 remark42 추천

간단하게 self-hosting을 할줄 안다면 아주 좋은 대안이다.