README.md (3889B)
1 본 소프트웨어는 nextjs 프레임워크와 typescript로 작성되었습니다. 2 3 4 ## Getting started 5 6 다음 소프트웨어가 필요합니다. 7 8 - Node.js 9 - Yarn 10 - MySQL 8 11 - Redis 12 13 다음 내용을 참고해서 `.env.local` 파일을 작성해주세요. 14 15 ``` 16 WIKI_SITE_URL=https://dhdemo.yongbin.kim 17 18 WIKI_DB_HOST=127.0.0.1 19 WIKI_DB_NAME=dreamhanks_demo 20 WIKI_DB_USER=dreamhanks_demo 21 WIKI_DB_PASS=dreamhanks_demo 22 23 WIKI_PAGE_CACHE_TTL=3600 24 25 WIKI_JWT_SECRET=1q2w3e4r 26 WIKI_JWT_COOKIE_PREFIX=wiki_jwt_ 27 28 WIKI_SMTP_HOST=smtp.domain.tld 29 WIKI_SMPT_PORT=465 30 WIKI_SMTP_USER=dhdemo 31 WIKI_SMTP_PASS=supersecurepassword! 32 WIKI_SMTP_FORCE_TLS=true 33 WIKI_SMTP_FROM=dhdemo@yongbin.kim 34 35 WIKI_HOME_WIKI=main 36 WIKI_PAGE_ENTRY=Home 37 38 NEXT_PUBLIC_WIKI_SOCKET_URL=ws://localhost:3001/ws 39 ``` 40 41 다음 명령어로 실행할 수 있습니다. 42 43 ``` 44 # 이벤트 큐 서버 45 yarn node bin/event-queue.mjs 46 ``` 47 48 ``` 49 # 앱 서버 50 yarn 51 yarn build 52 yarn start 53 ``` 54 55 56 ## 설정 57 58 설정은 환경 변수를 통해 이루어집니다. 59 60 `.env` 파일을 작성하거나, 환경 변수를 직접 설정할 수 있습니다. 61 62 - `WIKI_SITE_URL`: 사이트의 URL입니다. 이 값은 이메일 전송에 사용됩니다. 63 - `WIKI_DB_HOST`: 데이터베이스 호스트입니다. 64 - `WIKI_DB_NAME`: 데이터베이스 이름입니다. 65 - `WIKI_DB_USER`: 데이터베이스 사용자 이름입니다. 66 - `WIKI_DB_PASS`: 데이터베이스 사용자 비밀번호입니다. 67 - `WIKI_PAGE_CACHE_TTL`: 페이지 캐시 유효 시간입니다. 기본값은 3600초입니다. 68 - `WIKI_JWT_SECRET`: JWT 토큰의 시크릿입니다. 69 - `WIKI_JWT_COOKIE_PREFIX`: JWT 토큰을 저장할 쿠키의 접두사입니다. 70 - `WIKI_SMTP_HOST`: SMTP 호스트입니다. 71 - `WIKI_SMTP_PORT`: SMTP 포트입니다. 72 - `WIKI_SMTP_USER`: SMTP 사용자 이름입니다. 73 - `WIKI_SMTP_PASS`: SMTP 사용자 비밀번호입니다. 74 - `WIKI_SMTP_FORCE_TLS`: TLS를 강제로 사용할지 여부입니다. 75 - `WIKI_SMTP_FROM`: SMTP에서 사용할 이메일 주소입니다. 76 - `WIKI_HOME_WIKI`: 홈 위키 이름입니다. (사이트의 첫 페이지로 이동할 때 사용) 77 - `WIKI_PAGE_ENTRY`: 각 위키의 첫 페이지 이름입니다. 78 - `NEXT_PUBLIC_WIKI_SOCKET_URL`: 소켓 서버의 URL입니다. (이벤트 큐 서버에 접속하기 위해 사용) 79 - `WIKI_REDIS_URL`: Redis 서버의 URL입니다. 80 - `WIKI_REDIS_USERNAME`: Redis 서버의 사용자 이름입니다. 81 - `WIKI_REDIS_PASSWORD`: Redis 서버의 비밀번호입니다. 82 - `WIKI_REDIS_DB`: Redis 서버의 데이터베이스 번호입니다. 83 84 85 ### 이벤트 큐 서버 설정 86 87 - `REDIS_URL`: Redis 서버의 URL입니다. 88 - `REDIS_USERNAME`: Redis 서버의 사용자 이름입니다. 89 - `REDIS_PASSWORD`: Redis 서버의 비밀번호입니다. 90 - `REDIS_DB`: Redis 서버의 데이터베이스 번호입니다. 91 - `WSS_PORT`: 이벤트 큐 소켓 서버의 포트입니다. 92 93 94 ## 소스코드 개요 95 96 다음은 소스코드의 간략한 레이아웃 개요입니다. 97 98 - `/` 99 - `bin/`: 실행 가능한 파일들. 현재는 이벤트 큐 서버 스크립트 하나뿐입니다. 100 - `components/`: 컴포넌트 폴더 101 - `docs/`: 개발 관련 문서들 102 - `lib/`: 기타 소스코드들 103 - `email/`: 이메일 전송과 관련된 코드들이 들어 있습니다. 104 - `hooks/`: 커스텀 훅들이 들어 있습니다. 105 - `markup/`: 마크업 언어 파서와 렌더러 구현이 들어 있습니다. 106 - `models/`: 데이터베이스 모델들이 들어 있습니다. 107 - `security/`: 보안 관련 소스코드들이 들어 있습니다. 108 - `utils/`: 유틸리티 함수들이 들어 있습니다. 109 - 기타 분류하기 힘든 소스코드들 110 - `pages/`: 페이지 폴더 111 - `public/`: 정적 파일들이 들어 있습니다. 112 - `sql/`: 데이터베이스 스키마와 관련된 SQL 파일들 들어 있습니다. 113 - `styles/`: 스타일 파일들이 들어 있습니다.