Comp AI CRM 자체 호스팅 가이드 (오픈 소스, MIT): 설정 방법 및 발생한 두 가지 문제점
요약
AI 에이전트를 중심으로 구축된 오픈 소스 CRM(Comp AI CRM)을 로컬에 직접 호스팅하는 과정을 기록한 기술 가이드입니다. Next.js, NestJS, Postgres 등 다양한 스택을 사용하며, 설정 시 발생할 수 있는 두 가지 주요 환경 문제점과 시스템의 아키텍처적 특징을 공유합니다.
핵심 포인트
- `.env` 파일 생성 전 `bun install` 실행 금지: `DATABASE_URL` 누락으로 인한 실패를 방지해야 합니다.
- 포트 5432 충돌 시, `docker-compose.override.yml`을 추가하여 DB 포트를 매핑하는 것이 권장됩니다.
- 이 시스템은 단일 테넌트(single-tenant) 방식으로 설계되어 있어 SaaS 사용에는 배포 계획이 필요합니다.
- 에이전트는 '신뢰도' 대신 증거(evidence)를 기록하며, 코드가 이를 가중치화하여 활용합니다.
저는 Comp AI CRM (github.com/trycompai/crm, 약 12K stars, MIT)을 로컬에서 실행하는 데 하루를 보냈고 실제로 어떤 일이 일어났는지 기록했습니다. 이 시스템은 AI 에이전트를 중심으로 구축된 CRM입니다. Next.js 앱, Bun 기반의 NestJS + tRPC API, Postgres + Prisma (61 migrations), 그리고 eve에 배포된 별도의 에이전트로 구성되어 있습니다.
시간을 절약할 수 있도록 제가 겪었던 두 가지 문제점을 알려드립니다:
.env 파일을 생성하기 전에 bun install 실행하는 것. db 패키지는 postinstall 과정에서 Prisma를 실행하며, DATABASE_URL이 누락되면 실패합니다. 먼저 .env.example을 복사하여 .env로 만드세요.
포트 5432가 다른 프로젝트의 Postgres에 의해 이미 사용 중인 경우. 해당 프로젝트의 compose 파일을 수정하는 대신, db를 127.0.0.1:5443으로 매핑하는 docker-compose.override.yml을 추가하세요.
이 시스템을 선택하기 전에 알아두면 좋을 몇 가지 사항:
- 비밀번호 로그인 기능은 없습니다. Google, Microsoft 또는 자체 SSO를 통해 로그인하므로 OAuth 설정을 계획해야 합니다.
- 설계상 단일 테넌트(single-tenant) 방식입니다: 하나의 설치가 한 회사에만 사용됩니다. 내부 CRM으로는 괜찮지만, SaaS로 사용하려면 고객당 배포를 하나씩 실행해야 합니다.
- 에이전트는 절대 '신뢰도(confidence)'를 저장하지 않습니다. 대신 증거(evidence)를 기록하며, 코드가 이를 가중치화합니다 (프로필의 이메일 0.95, 서명 0.8 등...). 약한 증거는 사람이 승인하는 제안이 됩니다.
전체 과정을 녹화했습니다 (VS Code + 터미널, 약 14분 분량이며 설명란에 챕터가 있습니다). 시청을 선호하시면 다음 링크를 참고하세요:
Part 2에서는 Google 로그인, Gmail 동기화 및 에이전트의 키에 대해 다룰 예정입니다. 설정 관련 질문은 여기서 기꺼이 답변해 드리겠습니다.제출자: /u/Wise_Return5661 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기