함께 엔클레이브를 더 좋게 만들어요
엔클레이브는 MIT 라이선스로 완전히 오픈소스이며, 아주 작은 팀과 사용자들이 천천히 키워 왔습니다. 캐릭터 설정을 공유하고 싶든, 버그를 제보하고 싶든, PR을 보내고 싶든 — 여기엔 당신이 참여할 자리가 있습니다.
네 가지 참여 방법
캐릭터 만들고 세계관 이야기하기
앱에서 만든 캐릭터, 고민해 낸 세계관 설정, 재미있는 사용법 — 모두 공유할 가치가 있습니다. GitHub Discussions에 올려 다른 플레이어·개발자와 이야기해 보세요. 많은 기능의 영감이 바로 여기서 나왔습니다.
문제 제보하기
버그나 어색한 경험을 만났다면 GitHub Issues에 재현 단계와 환경 정보(OS, 브라우저, 셀프 호스팅/클라우드)를 적어 올려 주세요. 명확한 이슈 하나는 수정 하나만큼 가치 있습니다.
버그 수정과 기능 개발
저장소를 포크하고 브랜치를 만들어 pnpm build가 통과하는지 확인한 뒤, 변경 내용을 설명하는 PR을 보내 주세요. 커밋 메시지에는 시맨틱 접두사(feat: / fix: / docs: 등)를 사용합니다. 작은 수정부터 시작하는 것도 훌륭합니다.
번역과 문서
엔클레이브는 한·중·영·일 4개 언어를 지원하며 모든 문구는 packages/i18n의 catalogs에서 관리됩니다. README와 개발 문서도 4개 언어 버전이 있습니다. 번역 한 곳을 고치거나 문서 한 단락을 보태는 것도 어엿한 기여입니다.
개발자: 3단계로 로컬 환경 실행
환경 준비
Node.js ≥ 18, pnpm 8.15.4(corepack enable로 버전 고정 권장). 데이터베이스는 내장 SQLite라 추가 설치가 필요 없습니다.
의존성 설치
클론 후 pnpm install로 워크스페이스 패키지를 설치합니다. api는 자체 npm 락 파일을 가지며 pnpm 워크스페이스 밖에 있으므로 별도로 cd api && npm install이 필요합니다.
설정하고 실행
api/.env.example을 api/.env로 복사하고 모델 API 키를 최소 하나 입력하세요. 그다음 pnpm dev:api로 백엔드(:3000), pnpm dev:app으로 프런트엔드(:5180)를 시작합니다. 주의: pnpm dev를 그대로 실행하지 마세요 — 그건 멀티테넌트 클라우드 모드용 명령입니다. 셀프 호스팅/로컬 개발은 dev:api + dev:app을 사용합니다.
전체 포트 목록, 로그 위치, Android 연동 디버깅 안내는 저장소의 DEVELOPMENT.md를 참고하세요.
저장소 구조 한눈에 보기
단일 모노레포입니다. apps/app은 메인 앱(기능 모듈 단위 구성 — 채팅, 모멘트, 게임, 펫, 지식 베이스, 일정 등), api는 NestJS 백엔드, apps/site는 이 공식 사이트, packages에는 공유 계약과 다국어 리소스가 있습니다. 프런트엔드 수정은 대부분 apps/app의 feature 디렉터리 하나만 건드리면 됩니다.
교체 가능한 모델 레이어(BYOK)
AI 모델 연결은 교체 가능합니다. OpenAI, Claude, Gemini, DeepSeek 같은 클라우드 모델은 자신의 API 키로, 혹은 로컬 Ollama / vLLM을 지정해 완전 오프라인으로 돌릴 수 있습니다. 각 모델의 연결 방법은 '모델 연동' 페이지를 참고하세요.
여기서 시작하세요
어디서 시작할지 모르겠다면 먼저 Discussions에서 인사하고 하고 싶은 일을 들려주세요. 또는 Issues를 둘러보며 이해할 수 있는 작은 문제를 찾아보세요. 기여 규칙 전문은 CONTRIBUTING.md에 있습니다.