OpenSource-Hub
R

Remark42

SHA-256
5.5k stars·개인정보 보호·SHA-256 체크섬 확인됨

사용자 데이터를 추적하지 않는 경량 자체 호스팅 댓글 시스템입니다.

스마트 다운로드

Download 버전 다운로드

v1.15.0 · 9.6 MB

댓글을 직접 관리하고 사용자 데이터를 훔쳐보지 않는 경량 도구입니다.

주요 기능

  • 다양한 소셜 계정과 이메일 로그인 지원, 익명 댓글 작성 가능
  • 다단계 중첩 댓글, 투표·고정·인증 기능 포함
  • Markdown 에디터, 이미지 드래그 앤 드롭 업로드 지원
  • Disqus/WordPress 댓글 데이터 가져오기 가능
  • 관리자와 사용자 모두 새 댓글이나 답글 알림 수신 가능

할 수 없는 것

  • •서버와 SSL 인증서를 직접 유지 관리해야 하며, 내장 스팸 방지 메커니즘이 없으므로 서드파티 서비스와 함께 사용하는 것이 좋습니다. OAuth 및 알림의 초기 설정이 다소 복잡할 수 있습니다.

사용 사례

  • 개인 블로그, 기술 아티클, 뉴스 웹사이트의 댓글 시스템
  • 자체 호스팅이 필요하고, 사용자 댓글을 제3자에게 맡기고 싶지 않은 시나리오

상세 설명

Remark42는 가볍고 자체 호스팅이 가능한 댓글 엔진으로, 사용자 프라이버시를 중시합니다. Google, Facebook, GitHub, Apple 등 다양한 소셜 로그인을 지원하며, 이메일 로그인과 익명 액세스도 지원합니다. 다단계 중첩 댓글, Markdown 에디터, 이미지 드래그 앤 드롭 업로드를 제공하며, Disqus/WordPress에서 데이터를 가져올 수 있습니다. 투표, 고정, 인증 시스템 및 모더레이션 도구가 내장되어 있어 댓글을 정렬할 수 있습니다. 관리자와 사용자 모두 이메일, Telegram 등을 통해 알림을 받을 수 있습니다. 전체 시스템이 하나의 Docker 컨테이너로 패키징되어 있어 외부 데이터베이스가 필요 없으며, 모든 데이터는 하나의 파일에 저장됩니다. 멀티 사이트 모드를 지원하며, UI는 간결하고 커스터마이징이 가능하며, 다크/라이트 테마를 제공합니다.

문제 해결 & FAQ (2)

문제 해결
새 remark42 댓글이 제출 후 즉시 표시되지 않고 TypeError "can't access property 'block', e.data.user is undefined" 오류가 발생하는 이유는 무엇인가요?

댓글은 저장되지만, 프론트엔드가 create-comment 응답을 파싱할 수 없습니다. rest_private.go에서 createCommentCtrl()이 R.RenderJSON()보다 먼저 w.WriteHeader(http.StatusCreated)를 호출합니다. WriteHeader()가 호출되면 헤더가 잠기므로 Content-Type: application/json이 설정되지 않고 응답이 기본값인 text/plain으로 처리되어 프론트엔드 오류가 발생합니다.

임시 해결 방법: 페이지를 새로 고치면 댓글이 표시됩니다.

코드 수정: rest_private.go에서 먼저 실행되는 상태 코드 줄을 제거하세요:

-	w.WriteHeader(http.StatusCreated)
 	R.RenderJSON(w, &finalComment)

그런 다음 remark42를 다시 빌드하고 재배포하세요. 이렇게 하면 201 대신 HTTP 200이 반환되지만, 응답은 JSON이며 UI가 즉시 업데이트됩니다. 201을 유지하려면 WriteHeader()를 호출하기 전에 Content-Type: application/json을 설정하고 그 후에 JSON을 인코딩하세요. 이 회귀는 PR #1919 / 커밋 baf0db19에서 유입되었습니다.

원본 Issue #1979
문제 해결
Google Page Experience에서 'Browser errors logged to the console' 경고를 401 API 오류로 인해 해결하는 방법은?

사용자가 인증되지 않은 상태에서 API 호출 시 사이트에서 401 오류가 기록되면, Google의 Core Web Vitals 평가에서 'Browser errors were logged to the console' 페이지 경험 문제가 트리거될 수 있습니다. 이를 해결하려면 인증이 필요한 API 요청이 로그인된 사용자에 대해서만 이루어지도록 하거나, console.error를 호출하지 않고 401 응답을 처리하는 오류 핸들링(예: 무음 catch 블록)을 구현하세요. 이렇게 하면 오류가 콘솔에 표시되어 페이지 경험 점수에 영향을 미치는 것을 방지할 수 있습니다.

원본 Issue #1188

태그

commentself-hostedprivacydockergo

시작하기

1

설치 프로그램 다운로드

위 버튼을 클릭하여 시스템에 맞는 설치 프로그램을 다운로드

2

소프트웨어 설치

다운로드한 설치 프로그램을 더블 클릭하고 안내에 따르세요

3

Docker가 설치되어 있는지 확인한 후 다음을 실행하세요: docker run -d --name remark42 -p 8080:8080 -e REMARK_URL=https://yourdomain.com -e SITE=your-site umputun/remark42

4

환경 변수(OAuth 키, 이메일 등)를 구성하세요. 자세한 내용은 공식 문서를 참조하세요.

5

웹 페이지에 <script> 태그를 삽입하면 댓글 창이 표시됩니다.

설치 가이드
  1. Docker가 설치되어 있는지 확인한 후 다음을 실행하세요: docker run -d --name remark42 -p 8080:8080 -e REMARK_URL=https://yourdomain.com -e SITE=your-site umputun/remark42
  2. 환경 변수(OAuth 키, 이메일 등)를 구성하세요. 자세한 내용은 공식 문서를 참조하세요.
  3. 웹 페이지에 <script> 태그를 삽입하면 댓글 창이 표시됩니다.
파일 무결성

SHA-256 체크섬 확인됨

GitHub 공식 Release 페이지에서 추출된 체크섬

SHA256 체크섬

38cb334d6e6dba1affda726fe96df255b56d20b7693ec147d8a000aceb8a4b63

이 체크섬은 GitHub Release 페이지에서 추출되었습니다. 다운로드 후 파일 무결성을 확인하세요.

이 플랫폼의 모든 SHA-256 체크섬은 프로젝트의 공식 GitHub Release 페이지에서 추출되었으며, 어떠한 변경도 없습니다. GitHub Releases 페이지에서 직접 검증할 수 있습니다.

오픈소스 투명성

GitHub 소스 보기
환경 가이드

제거 정보

컨테이너 중지: docker stop remark42 && docker rm remark42, 그런 다음 데이터 디렉토리(기본값은 ./var)를 삭제하면 완전히 제거됩니다.

추가 의존성 없음

다운로드 후 바로 사용 가능. 추가 런타임이 필요하지 않습니다.

프로젝트 정보
라이선스MIT
마지막 업데이트2026-10-15 08:55:49
GitHub 저장소공식 웹사이트

문제 발생? 아래 FAQ 확인

2 FAQs

유사한 프로젝트