rmyndharis/OpenWA
WhatsApp 비공식 API 게이트웨이 오픈소스로 공개
원제 rmyndharis/OpenWA
스타 16,088당일 +155TypeScript
Key Point
WhatsApp 공식 API의 비용과 제약을 피하되 계정 제한 위험을 관리하며 자체 메시징 인프라를 구축하려는 개발자에게, 세션/채팅 단위 권한 제한으로 공유 계정 운영이 가능한 점이 중요하다.
핵심 요약
- OpenWA는 TypeScript 기반의 무료 오픈소스 WhatsApp API 게이트웨이로, 개발자가 메시징 인프라를 완전히 제어할 수 있도록 설계됐다.
- 플러그인 아키텍처를 통해 데이터베이스(SQLite/PostgreSQL), 저장소(로컬/S3), 캐시(Redis) 등을 설정으로 자유롭게 선택할 수 있다.
- REST API, 웹훅, 웹 대시보드, API 키 인증, 다중 세션 관리, 그룹 관리, 채널 지원, 감사 로깅 등의 기능을 제공한다.
- 세션 범위와 채팅 범위로 API 키 권한을 제한할 수 있어, 공유 계정에서 특정 에이전트가 자신에게 할당된 그룹/연락처만 접근하도록 할 수 있다.
- whatsapp-web.js와 Baileys 두 역엔지니어링 클라이언트를 지원하며, 전자는 계정 제한 위험이 낮고 메모리 사용이 높고(세션당 300~500MB), 후자는 위험이 높지만 경량(세션당 30~80MB)이다.
- WhatsApp 비공식 게이트웨이이므로 계정 제한이나 차단의 위험이 항상 존재하며, 개발사는 규제 환경(금융, 의료, EU 내 대규모 상용)에서는 공식 Cloud API 사용을 권장한다.
- 새 번호 사용 초기에 정상 사용자처럼 행동하기, 대량 첫 메시지 발송 피하기, SEND_PACING_ENABLED로 일일 한도 설정, 기존 대화자에게만 메시지 전송 등의 안전 가이드라인을 제시한다.
- Docker 기반 배포를 권장하며, 개발용 docker-compose.dev.yml은 SQLite와 로컬 저장소를 사용하고, 프로덕션 docker-compose.yml은 PostgreSQL, Redis, MinIO 같은 선택적 서비스 프로필을 지원한다.
- Docker 소켓 프록시를 통해 애플리케이션 컨테이너가 Docker 데몬에 직접 접근하지 않으며, 루트가 아닌 openwa 사용자로 실행되어 보안을 강화했다.
- AI 에이전트(Claude, Cursor 등)를 위해 Model Context Protocol(MCP) 서버를 지원하며, 기본적으로 읽기 전용 25개 도구를 마운트하고 MCP_READONLY=false로 쓰기 포함 51개 도구를 활성화할 수 있다.
- MCP를 사용할 때는 비관리자, 세션 범위 제한 API 키로 전용 키를 생성하고 에이전트에 할당하는 최소 권한 원칙을 따를 것을 권장한다.
저장소 보기 ↗github.com