이 클론은 개념이 가지고있는 훌륭한 음표 기능 중 일부를 복제하려고합니다. 당신이 개념을 모른다면 아직, 나는 그것을 확인하는 것이 좋습니다!
? 라이브 데모 : Notion-clone.kmuenster.com
? 중간 기사 : 개념과 같은 텍스트 편집기를 구축하는 방법

/ 블록을 다른 컨텐츠 유형으로 전환하려면)<a> 와 같은 일반 HTML 태그 사용)/image 명령을 사용하여 이미지 업로드)프론트 엔드는 Next.js와 전체 서버 측 렌더링으로 구축됩니다. 백엔드에서 REST API는 사용자 컨텐츠 및 사용자 관리 저장을 처리합니다.
다음 .js · react.js · scss/sass
Express.js · Mongoose · NodeMailer · JWT (쿠키 기반)
프로젝트를 복제하십시오
git clone https://github.com/konstantinmuenster/notion-clone.git
cd notion-clone환경 변수를 추가하십시오
백엔드 : backend 디렉토리에서 .env 파일 생성 :
FRONTEND_URL="http://localhost:3000"
DOMAIN="localhost"
JWT_KEY="yourSecretForTokenGeneration"
PORT=8080
MONGO_URI="mongodb+srv://username:[email protected]/database?retryWrites=true&w=majority"
MAIL_HOST="smtp.sendgrid.net"
MAIL_PORT=465
MAIL_USER="apiKey"
MAIL_SENDER="Your Name <[email protected]>"
MAIL_PASSWORD="yourSendGridApiKey"
프론트 엔드 : frontend 디렉토리에서 .env.local 파일을 만듭니다.
NEXT_PUBLIC_API="http://localhost:8080" // references your Backend API endpoint
백엔드 설치 및 실행 (http : // localhost : 8080)
cd backend
npm install
npm start프론트 엔드 설치 및 실행 (http : // localhost : 3000)
cd frontend
npm install
npm run dev노드 응용 프로그램 및 사용자 정의 도메인을 지원하는 거의 모든 공급자에서 응용 프로그램을 호스팅 할 수 있습니다. 나는 vercel.com에서 프론트 엔드와 Heroku.com에서 백엔드를 주최하기로 결정했습니다. 그러나 원하는 경우 동일한 제공 업체에서 Frontend 및 Backend를 모두 호스팅 할 수 있습니다.
새로운 MongoDB 클러스터를 선불로 만들어야합니다. 모든 페이지 및 블록 데이터를 저장합니다. MongoDB Atlas에서 무료로 하나를 만들 수 있습니다.
다음 컬렉션을 만듭니다 .
Heroku로 인해 모든 사람에게 네트워크 액세스를 허용 하십시오 .
Heroku.com에 백엔드를 배포하려면 Heroku.com에서 선호하는 지역에서 새 앱을 만듭니다.
백엔드에 대한 모든 생산 환경 변수를 추가 하십시오 . 이 readme의 설치 부분에서 어떤 변수가 필요한지 알 수 있습니다.
백엔드 API에 맞춤 도메인을 추가 하십시오 . 응용 프로그램은 쿠키 기반 인증을 사용하므로 동일한 도메인에서 백엔드와 프론트 엔드를 실행해야합니다. 예를 들어, www.notion-clone.kmuenster.com 에서 Frontend를 실행하고 api.notion-clone.kmuenster.com 에서 백엔드를 실행하십시오.
예정된 작업을 실행하고 싶습니까? 비활성 페이지와 사용자를 삭제하기 위해 예정된 작업을 자주 실행합니다. 이 기능을 원한다면 응용 프로그램에 더 많은 Dynos를 추가하고 Heroku Scheduler를 통해 Job
$ node jobs/index.js실행해야합니다.
마지막으로 Heroku Git을 사용하여 앱을 배포 할 수 있습니다.
notion-clone 백엔드와 프론트 엔드를 포함하는 모노 리포이므로 백엔드를 Heroku로 밀면 git 하위 트리 푸시를 만듭니다 . 따라서 git subtree push --prefix backend heroku master 대신 git push heroku master 를 실행하십시오. 따라서 우리는 백엔드 부분 만 푸시합니다.
vercel.com에 프론트 엔드를 배포하려면 Vercel CLI를 쉽게 사용할 수 있습니다.
Vercel CLI를 사용하면 하위 트리 푸시를 만들 필요가 없으며 대신 프론트 엔드 폴더로 전환하고 vercel 명령을 실행하여 배포 할 수 있습니다.
cd frontend
vercel이렇게하면 프론트 엔드 응용 프로그램의 설정 안내서를 통해 이어집니다. 그 후 앱을 성공적으로 배포해야합니다.
vercel.com의 생산 환경 변수로 백엔드 API 엔드 포인트를 추가 하십시오 .
프론트 엔드에 대한 사용자 정의 도메인을 추가 하십시오 (백엔드 환경 변수에 지정된 도메인과 이상적으로 일치합니다).
Konstantin Münster - Konstantin.digital
MIT 라이센스에 따라 배포됩니다. 자세한 내용은 LICENSE 참조하십시오.
https://github.com/konstantinmuenster