Remark42 댓글 구현하기

Remark42 댓글(자체호스팅) + OAuth(구글/깃허브/X) 준비 체크리스트

목표: “댓글 기능을 바로 붙이진 않더라도”, 나중에 Publii에 쉽게 연결할 수 있게
Remark42 서버와 OAuth 연동까지 미리 준비해두기.


0) 결정해야 할 것 (먼저 정하기)

  • 댓글 서버 도메인 정하기 (예: comments.wdk.kr)
  • 블로그 도메인(실제 글이 올라갈 도메인) 확인 (예: wdk.kr / blog.wdk.kr)
  • Remark42 site_id 정하기 (예: wdkblog)
    • 나중에 여러 사이트 붙일 수도 있으니 식별자처럼 짧고 고유하게.
  • 로그인 정책
    • 익명 OFF (권장)
    • 이메일 로그인 OFF (권장)
    • OAuth만 ON (Google/GitHub/X)

1) Remark42 서버 띄우기 (OAuth 키 없어도 우선 구동 가능)

  • Remark42 데이터 디렉터리 만들기 (예: ./remark42/data)
  • SECRET 생성 (길고 랜덤하게)
  • Docker Compose로 remark42 컨테이너 구성
    • REMARK_URL=https://comments...
    • SITE=...
    • AUTH_ANON=false
    • AUTH_EMAIL_ENABLE=false
    • AUTH_GITHUB=true
    • AUTH_GOOGLE=true
    • AUTH_TWITTER=true
    • ADMIN_SHARED_EMAIL=내 이메일

이 단계에서는 OAuth Client ID/Secret이 아직 없어도 컨테이너 구동 자체는 미리 준비할 수 있음.


2) HTTPS 도메인 연결 (댓글 서버는 반드시 https가 편함)

  • DNS에 댓글 서버 도메인 A/AAAA 레코드 설정 (예: comments.wdk.kr -> 서버 IP)
  • Nginx 리버스 프록시 설정
    • comments 도메인 -> remark42:8080 프록시
  • TLS 인증서 준비
    • Certbot(LE) 또는 Cloudflare 방식 중 선택해서 https 적용
  • 브라우저에서 https://comments... 접속이 되는지 확인

3) OAuth 앱 등록 (핵심 준비 작업)

여기서부터 “나중에 댓글 붙일 때” 가장 시간을 잡아먹는 파트.

3-1) GitHub OAuth App 만들기

  • GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
  • Homepage URL: 블로그 주소
  • Authorization callback URL:
    • https://comments.도메인/auth/github/callback
  • Client ID / Client Secret 발급받기
  • (선택) GitHub 계정 이메일 공개/비공개 설정 확인
    • 관리자 권한 매칭에 영향 줄 수 있음.

3-2) Google OAuth(Cloud Console) 만들기

  • Google Cloud Console에서 프로젝트 생성/선택
  • OAuth 동의 화면 구성(External)
  • Credentials → OAuth client ID 생성(Web)
  • Authorized redirect URIs:
    • https://comments.도메인/auth/google/callback
  • Client ID / Client Secret 발급받기

3-3) X(Twitter) Developer App 만들기

  • X Developer Portal에서 App 생성
  • OAuth 설정(가능 범위 확인)
  • Redirect/Callback URL:
    • https://comments.도메인/auth/twitter/callback
  • Client ID / Client Secret 발급받기
  • (주의) X는 정책/플랜 변경이 잦아서 “무료로 가능한지”를 먼저 확인

4) Remark42에 OAuth 키 주입(환경변수)

  • GitHub Client ID/Secret 환경변수 추가
  • Google Client ID/Secret 환경변수 추가
  • X Client ID/Secret 환경변수 추가
  • 컨테이너 재시작 후 로그인 버튼이 뜨는지 확인

⚠️ 환경변수 이름은 Remark42 버전에 따라 약간 다를 수 있음
(예: AUTH_GITHUB_CID vs AUTH_GITHUB_ID 등).
실제 적용 전에 umputun/remark42 문서/컨테이너 help로 한 번 정확히 맞추기.


5) (나중에) Publii에 붙이기 준비만 해두기

  • Publii → “사용자 지정 HTML”에서 넣을 위치 확인:
    • 포스트 후 (글 본문 아래)
  • 나중에 삽입할 기본 위젯 코드 초안 메모해두기
    • host: https://comments...
    • site_id: wdkblog
    • url 키: window.location.origin + window.location.pathname

6) 점검/운영 체크(권장)

  • 백업: ./remark42/data 정기 백업(스냅샷/rsync 등)
  • 관리자 계정 확인: ADMIN_SHARED_EMAIL이 실제 OAuth 제공 이메일과 매칭되는지
  • 스팸 대비: 익명 OFF 유지(권장)
  • 업데이트 정책: image 업데이트 주기 정하기 (너무 자주-너무 드물게 사이 타협)

나중에 댓글 붙일 때 최종 확인 3가지

  • https://comments.도메인이 https로 정상 접속된다
  • OAuth 로그인 1회 이상 성공한다
  • Publii 글 주소가 고유하게 댓글 스레드로 매핑된다 (url 키)

This article was updated on