Simple Comment 는 모든 웹사이트에 대한 댓글 플랫폼입니다. 무료이고 유연하며 오픈 소스이며 비공개이며 확장 가능합니다.
데모 보기: https://simple-comment.netlify.app
주의: 조정 도구는 아직 적절하지 않습니다. 사용자가 댓글을 게시해도 알림이 전송되지 않으며, 승인 전까지 이를 적절히 보관할 방법도 없습니다. 이 프로젝트가 마음에 들고 특정 일정에 따라 추가 개발을 보고 싶다면 저에게 연락하세요. 그렇지 않으면, 이 프로젝트는 아직 진행 중이지만 느린 길에 있습니다.
최소한의 기능은 실행 중입니다!
Access-Control-Allow-Origin
.env
변수에 응답합니다.Referer
헤더와 topicId
올바르게 매핑되어야 합니다.Origin
Access-Control-Allow-Origin
목록에 있어야 합니다.Simple Comment는 귀하의 웹사이트와 동일한 서버 또는 별도의 크로스 도메인 서버에서 실행될 수 있습니다.
Simple Comment는 https를 통해 제공되어야 합니다 .
다음 지침을 따르세요. 불분명한 점이 있으면 새 문제를 작성해 주세요.
example.env
동일한 프로젝트 루트 디렉터리에 복사하고 이름을 .env
로 바꿉니다..env
에서 이러한 항목에 대한 고유한(구성되거나 무작위로 생성된) 비밀 값을 입력합니다(즉, 각 줄에서 =
오른쪽에 있는 모든 항목을 바꿉니다)..env
에 적절한 DB_CONNECION_STRING
추가하세요.Environmental Variables
에서 Edit Variables
버튼을 클릭합니다..env
의 각 항목에 대해 모든 변수에 대한 키와 해당 값을 추가합니다.IS_CROSS_SITE
의 경우 주석 시스템이 자체 도메인에서 호스팅되는 경우 true
값을 추가하고 동일한 도메인인 경우 false
값을 추가합니다.<script src="[path-to]/simple-comment.js" defer></script>
( src
simple-comment.js
파일을 가리켜야 함)<div id="simple-comment-display"></div>
simple-comment.js
파일을 웹사이트의 스크립트 폴더에 업로드하세요.Refused to connect to 'api/auth' because it violates the following Content Security Policy directive: connect-src 'self'
connect-src
옆의 콘텐츠 보안 정책 헤더에 https://<your-comment-app>.netlify.app
추가합니다(qv https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers /콘텐츠-보안-정책/connect-src)Access to fetch at 'https://<your-comment-app>.netlify.app/.netlify/functions/' from origin '<your-website>' has been blocked by CORS policy...
.env
의 ALLOW_ORIGIN
키에 <your-website>
Netlify 환경 변수로 추가합니다. login.html
페이지를 방문하여.env
파일에서 SIMPLE_COMMENT_MODERATOR_ID
및 SIMPLE_COMMENT_MODERATOR_PASSWORD
값을 사용하여 로그인하세요. 기본 스택은 백엔드에 Netlify + MongoDB를 사용하고 프런트엔드에 최소 fetch
기반 클라이언트를 사용하지만 테스트를 통과하고 API가 Open API 3 스키마 파일을 준수하는 한 모든 기술 스택을 사용하도록 쉽게 조정할 수 있습니다.
다음 지침에 따라 클라우드 내 무료 계층 MongoDB를 얻을 수 있습니다.
우분투와 같은 유닉스 계열 환경을 가정합니다.
nvm install
npm install -g yarn
yarn install
yarn run build
yarn run test
yarn run test:e2e
sudo systemctl start mongod
(qv Linux)yarn run start
API 사양은 Open API 3 형식의 simple-comment-openapi3.json 파일로 설명되며 모든 백엔드, 프런트엔드 및 식별 시스템과 상호 교환 가능하도록 설계되었습니다.
Simple Comment API 엔드포인트의 개요입니다.
/comment
comment
사용자가 다른 comment
이나 topic
에 대한 답글로 게시하는 텍스트이며, 이러한 답글을 제시하는 것이 이 프로젝트가 존재하는 유일한 이유입니다!
댓글 엔드포인트는 개별 댓글의 생성, 읽기, 업데이트 및 삭제(CRUD)를 위한 것입니다. 모든 댓글에는 상위 요소, 즉 topic
든 comment
이든 응답하는 항목이 있어야 합니다.
/topic
주제는 기본적으로 관리자만 생성할 수 있는 특별한 종류의 댓글이며 응답하는 댓글을 위한 조직 버킷을 형성합니다. 일종의 루트 주석이므로 상위 주석이 없습니다.
/topic 엔드포인트는 이러한 루트 주석에 대한 CRUD를 처리합니다. /topic
의 GET 작업은 주제 목록을 가져오고 /topic/{topicId}
에 대한 GET 작업은 해당 주제 및 해당 하위 항목에 대한 모든 댓글을 가져옵니다.
/user
기본적으로 댓글은 익명 사용자가 게시할 수 있지만 단순 댓글에는 정책에 따라 댓글 작성자가 댓글 게시 후 자신의 댓글을 제어할 수 있도록 최소한의 식별 체계가 있습니다.
/auth
Auth는 인증 및 식별 체계의 끝점입니다. 사용자는 인증 끝점에 사용자 이름과 비밀번호를 제출하고 다른 CRUD 작업에 대해 해당 사용자로 인증하는 JWT(JSON 웹 토큰)를 받습니다.
/verify
로그인한 사용자 ID 또는 401
반환합니다.
policy
은 Simple Comment의 동작 방식을 제어하는 키-값 쌍을 보유하는 객체로, 예를 들어 최대 댓글 길이 또는 일반 사용자가 스스로 삭제할 수 있는지 여부를 결정합니다.
{
isGuestAccountAllowed : boolean , // if true, a visitor can post anonymously using a guest account. if false, only authenticated users can comment.
canFirstVisitCreateTopic : boolean , // if a discussion does not exist for a page, shall it be created when visited for the first time, or does admin create all topics?
canGuestCreateUser : boolean , // can a user with guest credentials create (their own) user profile? if 'canPublicCreateUser' is set to 'true' this setting is ignored
canGuestReadDiscussion : boolean , // can a user with guest credentials browse and read discussions? if 'canPublicReadDiscussion' is set to 'true' this setting is ignored
canGuestReadUser : boolean , // can a user with guest credentials view user profiles? if 'canPublicReadUser' is true, this setting is ignored
canPublicCreateUser : boolean , // can a user with no credentials create (their own) user profile?
canPublicReadDiscussion : boolean , // can a user with no credentials browse and read discussions?
canPublicReadUser : boolean , // can an anonymous visitor view any user's profile?
canUserDeleteSelf : boolean , // can a user delete their own profile?
maxCommentLengthChars : number , // Attempting to post a comment longer than this number of characters will be rejected by the API
}
여기에 나열된 Simple Comment가 아닌 솔루션이 34개 있습니다. 이들 중 거의 모두 Simple Comment보다 더 성숙한 기능을 갖추고 있으며, 서버리스, 오픈 소스, 자체 호스팅 솔루션을 특별히 찾고 있지 않다면 한 가지를 고려해 보는 것이 좋습니다. 아래에는 Simple Comment와 구별되는 장단점이 나열되어 있습니다. 신뢰가 필요하다고 표시된 경우 서비스를 사용하려면 회사에 대한 신뢰가 필요하다는 의미입니다. 왜냐하면 회사에서는 귀하가 통제할 수 없고 쉽게 검사할 수 없는 비공개 소스 코드를 사용자에게 제공하기 때문입니다. 또한 사용자 데이터는 자신이 제어하는 서버에 보관됩니다. 이 목록은 경험이 아닌 공개 문서를 기반으로 합니다. 잘못된 내용이나 누락된 내용이 있으면 알려주시기 바랍니다.