2.6 KiB
2.6 KiB
Kord (Monorepo)
Kord는 Discord 서버 관리를 돕는 강력하고 유연한 다기능 봇 및 전용 웹 대시보드 프로젝트입니다. 현재 모노레포(Monorepo) 구조로 관리되고 있습니다.
1. 프로젝트 구조 (Structure)
본 프로젝트는 Turborepo와 Yarn Workspaces를 사용합니다.
apps/bot: Discord.js 기반의 봇 본체 (ShardingManager 적용)apps/dashboard: Next.js 기반의 봇 관리 웹 대시보드packages/db: Prisma 스키마 및 데이터베이스 데이터 접근 레이어 (공용)packages/grpc-contracts: 봇과 대시보드 간의 gRPC 통신 규약 (공용)
2. 요구사항 (Requirements)
- Runtime: Node.js v22 이상 (추천)
- Package Manager: Yarn v4 (Berry)
- Database: PostgreSQL (Prisma 사용)
- Discord: Bot Token 및 Client ID
3. 시작하기 (Quick Start)
로컬 개발 환경 설정
-
의존성 설치:
yarn install -
환경 변수 설정: 루트 및 각 앱 디렉토리의
.env설정을 완료합니다. -
데이터베이스 및 코드 생성:
yarn run generate
실행 방법
전체 프로젝트를 한꺼번에 실행하거나 개별 앱을 실행할 수 있습니다.
-
모든 앱 실행 (Bot + Dashboard):
yarn dev -
봇만 실행:
yarn workspace @kord/bot dev -
대시보드만 실행:
yarn workspace dashboard dev
5. 인프라 검증 (Infrastructure Verification)
인프라 설정(DB, gRPC, 환경 변수)이 올바른지 확인하려면 다음 스크립트를 실행합니다:
npx tsx scripts/verify-recovery.ts
6. 로컬 접속 정보 (Local Connection Info)
로컬에서 개발 및 테스트 시 다음 주소를 사용합니다.
- 웹 대시보드 (Dashboard): http://localhost:3000
- gRPC 프록시 서버 (Bot Proxy):
localhost:50051(대시보드와 봇 간 통신) - 데이터베이스 (PostgreSQL):
localhost:5432
5. 아키텍처 (Architecture)
Kord는 gRPC Proxy 아키텍처를 사용하여 대시보드와 샤딩된 봇 인스턴스 간의 실시간 통신을 처리합니다. 자세한 내용은 관련 문서를 참조하세요.
5. 문서 (Documentation)
모둔 상세 문서는 Docs/ 디렉토리에 위치합니다.