Kord/README.md

82 lines
2.6 KiB
Markdown

# 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)
### 로컬 개발 환경 설정
1. **의존성 설치**:
```bash
yarn install
```
2. **환경 변수 설정**: 루트 및 각 앱 디렉토리의 `.env` 설정을 완료합니다.
3. **데이터베이스 및 코드 생성**:
```bash
yarn run generate
```
### 실행 방법
전체 프로젝트를 한꺼번에 실행하거나 개별 앱을 실행할 수 있습니다.
- **모든 앱 실행 (Bot + Dashboard)**:
```bash
yarn dev
```
- **봇만 실행**:
```bash
yarn workspace @kord/bot dev
```
- **대시보드만 실행**:
```bash
yarn workspace dashboard dev
```
## 5. 인프라 검증 (Infrastructure Verification)
인프라 설정(DB, gRPC, 환경 변수)이 올바른지 확인하려면 다음 스크립트를 실행합니다:
```bash
npx tsx scripts/verify-recovery.ts
```
## 6. 로컬 접속 정보 (Local Connection Info)
로컬에서 개발 및 테스트 시 다음 주소를 사용합니다.
- **웹 대시보드 (Dashboard)**: [http://localhost:3000](http://localhost:3000)
- **gRPC 프록시 서버 (Bot Proxy)**: `localhost:50051` (대시보드와 봇 간 통신)
- **데이터베이스 (PostgreSQL)**: `localhost:5432`
## 5. 아키텍처 (Architecture)
Kord는 **gRPC Proxy** 아키텍처를 사용하여 대시보드와 샤딩된 봇 인스턴스 간의 실시간 통신을 처리합니다. 자세한 내용은 관련 문서를 참조하세요.
- [대시보드 통신 아키텍처 가이드](Docs/Decisions/Dashboard_Architecture_gRPC.md)
## 5. 문서 (Documentation)
모둔 상세 문서는 `Docs/` 디렉토리에 위치합니다.
- [문서 전체 색인 (Docs Index)](Docs/index.md)
- [로컬 가이드북 (SKILL.md)](SKILL.md)