Rakazo: 개인용 AI 에이전트 및 자체 호스팅 AI 비서
요약
Rakazo는 사용자가 자신의 기기에서 실행할 수 있는 오픈 소스 AI 에이전트이자 개인용 AI 비서입니다. 웹, 데스크톱 앱, 모바일 환경을 지원하며, 사용자가 직접 모델과 인프라를 가져와 로컬에서 전체 스택을 운영할 수 있다는 것이 특징입니다. 이는 Grok Bot이나 Meta Muse 같은 기존의 상업적/클라우드 기반 에이전트들의 자체 호스팅 대안으로 제시됩니다.
핵심 포인트
- 개인 소유 및 자체 호스팅 가능한 AI 비서 솔루션입니다.
- 웹, Electron 데스크톱 앱, iOS/Android 등 다양한 플랫폼을 지원합니다.
- 사용자가 모델과 인프라를 직접 제어할 수 있어 높은 개인 정보 보호가 가능합니다.
- Grok Bot, Muse 등 기존 상업 에이전트의 오픈 소스 대안으로 포지셔닝됩니다.
Rakazo

Rakazo는 지속적인 팀원 역할을 하는 오픈 소스 AI 에이전트이자, 사용자가 자신의 기기에서 실행할 수 있는 자체 호스팅(self-hosted) AI 비서입니다. 웹, Electron 데스크톱 앱, 그리고 iPhone 및 Android에서 사용할 수 있습니다. 사용자가 직접 모델과 컴퓨터 제공업체를 가져오거나, 전체 스택을 로컬에서 실행할 수 있습니다.
이것은 Grok Bot, Meta Muse, OpenAI Dots, Instinct, OpenClaw, Hermes Agent, 그리고 Hark Pro의 오픈 소스 자체 호스팅 대안입니다.
Rakazo는 베타 버전입니다. 자세한 내용은 rakazo.com에서 확인하세요.
Rakazo 비교 방법
Rakazo가 실행되면, Grok Bot처럼 단순히 채팅하는 방식입니다. 즉, 봇을 설정하고 해당 채팅창에서 관리합니다. Muse, Dots, Instinct, 그리고 Hark Pro는 호스팅되는 비서(hosted assistants)들입니다. OpenClaw와 Hermes Agent 역시 사용자가 직접 실행할 수 있는 오픈 소스 에이전트입니다. 이들의 문서는 설치 프로그램, 설정 파일, 게이트웨이에 대해 설명하고 있습니다. Hermes Desktop은 CLI 없이 첫 채팅에 도달할 수 있으며, 메시징 게이트웨이는 별도의 프로세스입니다.
- Grok Bot
- Muse
- Dots
- Instinct, 텍스트나 전화를 거는 개인 비서
- OpenClaw
- Hermes Agent, Nous Research의 오픈 소스 에이전트
- Hark Pro, hark.com의 개인 에이전트
- 모든 비교
- 자체 호스팅 가이드
기능
- 자체 대화 기록, 메모리, 루틴 및 히스토리가 있는 영속적인 봇(Persistent bots)
- 음성 모드: 답변 말하기, 받아쓰기 및 봇 호출. 사용자의 ElevenLabs, OpenAI, Cartesia 또는 Fish Audio 키를 가져와 사용 가능
- 공유 팀 컴퓨터와 격리된 개인 컴퓨터
- 브라우저, 터미널, 파일 및 그래픽 데스크톱 접근
- 피어 봇(peer bots)이나 단명하는 서브 에이전트(short-lived subagents)에게 작업을 위임할 수 있는 봇
- Pi를 통해 자체 모델 자격 증명 가져와 사용 가능
- Composio 또는 Pipedream Connect를 통한 앱 통합, 그리고 사용자 설치형 Treg, 원격 MCP, 및 OpenAPI 도구 소스 추가 지원
- Docker, E2B, Daytona, CreateOS, Box, 그리고 신뢰할 수 있는 로컬 컴퓨터 지원
데모(Demo)
스택(Stack)
- TypeScript
- React 19, Vite, 및 Tailwind CSS
- Electron 및 Expo
- Hono 및 oRPC
- PostgreSQL 및 Prisma
- Better Auth
- Graphile Worker
- Pi
- Docker, E2B, Daytona, CreateOS, 및 Box
- Composio, Pipedream Connect, MCP, 및 OpenAPI 통합
빠른 시작(Quick start) (게시된 이미지)
Docker Engine, Compose 플러그인, curl, 그리고 OpenSSL이 필요합니다. 클론 또는 Node 설치는 필요 없습니다.
mkdir -p rakazo && cd rakazo &&
curl -fsSLO https://raw.githubusercontent.com/elie222/rakazo/main/infra/compose/install-images.sh &&
bash install-images.sh
이 설치 프로그램은 Compose 파일을 다운로드하고, 무작위 시크릿으로 .env를 생성하며, Rakazo를 시작합니다.
다시 실행해도 기존의 .env는 유지됩니다.
http://127.0.0.1:5173에서 접속하여 계정을 만들고 모델을 연결하세요. 로컬 Docker 컴퓨터는 기본적으로 켜져 있습니다. 선택적 원격 제공업체로는 일치하는 API 키와 함께 e2b, daytona, createos, box, 또는 railway가 있습니다.
기본 이미지 태그는 edge입니다(main 빌드, linux/amd64 + linux/arm64). 자세한 내용과 태그: self-hosting guide.
제한된 네트워크 환경에서는 설치 프로그램 다운로드 기본 경로(RAKAZO_DOWNLOAD_BASE)를 재정의하거나, 기존 Compose 파일을 건너뛰거나(--local / RAKAZO_DOWNLOAD_SKIP_EXISTING), 부트스트랩 스크립트 URL을 미러링할 수 있습니다. 자세한 내용은 Restricted networks / mirror downloads를 참조하세요.
에이전트의 도움을 받아 설치하려면 SETUP_PROMPT.md를 사용하세요.
서버에서 실행하기
백엔드가 서버에서 실행되는 동안 봇은 계속 작동합니다. VPS(Virtual Private Server)에서도 동일한 설치 프로그램을 사용한 다음, 데스크톱 앱, 모바일 앱 또는 브라우저에서 연결할 수 있습니다.
bash install-images.sh --prepare-only
# .env 수정: SANDBOX_PROVIDER=box (또는 e2b / daytona / createos)에 API 키를 넣고, RAKAZO_HOST=your.domain 설정
bash install-images.sh
포트 5173 앞에 HTTPS를 붙여야 합니다. docs/self-host.md에서는 Caddy 설정과 호스트 강화(host hardening)에 대해 다루고 있습니다. 데스크톱 앱에서 **기존 인스턴스(Existing instance)**를 선택하고 https:// 주소를 입력하세요.
로컬 개발 (소스 체크아웃)
Node.js 22.22.2 이상 또는 22.x 라인의 Node.js 24.x, 또는 Node.js 26+가 필요하며, pnpm 9와 Docker가 필요합니다. Node.js 23.x와 25.x는 지원되지 않습니다.
git clone https://github.com/elie222/rakazo.git
cd rakazo
cp .env.example .env
POSTGRES_PASSWORD를 설정합니다 (예: openssl rand -hex 16), 그런 다음 동일한 값을 DATABASE_URL에 넣으세요. BETTER_AUTH_SECRET, ENCRYPTION_KEY, 그리고 SCREEN_PROXY_SECRET을 독립적인 긴 무작위 값으로 설정해야 합니다. Docker 샌드박스도 전용의 SANDBOX_SUPERVISOR_TOKEN이 필요합니다. 또한 OPENROUTER_API_KEY를 설정하거나 온보딩 중에 지원되는 모델 제공업체에 연결할 수도 있습니다.
Docker Desktop을 사용한 호스트 측 개발의 경우, .env 파일에 SANDBOX_CONTROL_VIA_LOOPBACK=true를 설정하세요. 슈퍼바이저는 Docker Desktop의 사용자 소켓(user socket)을 자동으로 발견하며, 다른 Docker 런타임을 위해 DOCKER_HOST 또는 DOCKER_SOCKET으로 이를 재정의할 수 있습니다.
관리형 앱 카탈로그(Managed app catalogs)는 선택 사항입니다. Composio의 경우 COMPOSIO_API_KEY를 설정하거나, Pipedream Connect의 경우 PIPEDREAM_CLIENT_ID, PIPEDREAM_CLIENT_SECRET, 그리고 PIPEDREAM_PROJECT_ID 세 가지 값을 설정할 수 있습니다. 사용자는 관리형 카탈로그를 활성화하지 않고도 Integrations에서 HTTPS MCP 서버, Treg 엔드포인트 또는 OpenAPI JSON 문서를 추가할 수 있습니다. 커넥터 자격 증명(Connector credentials)은 서버에 암호화되어 저장되며 API를 통해 절대 반환되지 않습니다.
Treg는 사용량 측정 방식(usage-metered)입니다. 자체 호스팅 사용자들은 자체 Treg 토큰을 제공해야 하며, 호스팅된 제품에 Treg를 통합하는 운영자는 Treg의 통합 약관을 검토해야 합니다. 이 약관에는 호스팅 재판매(hosted resale)에 대한 서면 계약이 필요합니다.
docker compose --env-file .env \
-f infra/compose/docker-compose.yml \
-f infra/compose/docker-compose.postgres-host.yml \
...
기본 Compose 파일에서 Postgres는 네트워크 내부(network-internal)에 유지됩니다(게시된 이미지와 동일). postgres-host 오버레이는 호스트 측의 pnpm 및 DB 도구를 위해 루프백 주소 127.0.0.1:5433을 게시합니다. 해당 포트가 사용 중이라면, .env 파일에서 POSTGRES_HOST_PORT와 DATABASE_URL에 있는 포트를 변경하십시오. 오버레이 없이 실행하려면 다음 명령어로 쉘을 여십시오:
docker compose --env-file .env -f infra/compose/docker-compose.yml exec postgres sh -c 'psql -U "$POSTGRES_USER" -d "$POSTGRES_DB"'.
URI 안전한 POSTGRES_PASSWORD(openssl rand -hex 16)를 사용하십시오. 기존의 pgdata 볼륨은 첫 초기화 시점의 사용자, 비밀번호 및 데이터베이스를 유지하므로, 해당 값들을 .env에 유지하거나 ALTER ROLE / rename을 사용하여 제자리에 변경하십시오. 백업 후(또는 데이터가 폐기 가능한 경우)에만 볼륨을 재구성해야 합니다; docker compose down -v는 모든 Postgres 상태를 삭제합니다.
http://127.0.0.1:5173에서 접속하여 계정을 만들고, 모델을 연결한 다음, 첫 번째 봇을 만드십시오.
배포(deployment), 제공업체 선택(provider selection), 백업 및 업그레이드에 대해서는 자체 호스팅 가이드를 참조하십시오.
CreateOS를 사용하려면 SANDBOX_PROVIDER=createos와 CREATEOS_SANDBOX_API_KEY를 설정하세요.
선택적으로 CREATEOS_SANDBOX_BASE_URL, CREATEOS_SANDBOX_SHAPE, 그리고
CREATEOS_SANDBOX_ROOTFS는 각각 https://api.sb.createos.sh, s-2vcpu-2gb,
그리고 desktop:1의 기본값을 사용합니다.
Railway computers를 사용하려면 API와 worker에 SANDBOX_PROVIDER=railway, RAILWAY_API_TOKEN,
그리고 RAILWAY_ENVIRONMENT_ID를 설정하세요. 샌드박스 환경을 명시적으로 선택해야 합니다. Railway의 자동 환경 ID는 호스팅된 앱의 환경을 식별합니다.
작동하는 가장 제한적인 Railway API 토큰을 사용하세요: 샌드박스 작업에 충분하고 클라이언트 인증에서 지원되는 경우 프로젝트 토큰을 선호하세요. 이 제공업체는 현재 bearer 인증을 사용하므로 개인 계정 토큰보다는 팀/워크스페이스 토큰을 사용하세요.
라이브 화면과 데스크톱은 Railway의 공개 도메인이 화면을 제공하려면 PRIVATE 네트워킹이 필요합니다. 컴퓨터는 이 모드를 사용하며, 동일한 Railway 프로젝트/환경 내 다른 서비스뿐만 아니라 공용 인터넷에도 접근할 수 있습니다. 앱 및 데이터베이스와 분리된 전용 Railway 프로젝트(또는 최소한 별도의 환경)를 샌드박스에 할당하는 것을 권장합니다. 기존 ISOLATED 컴퓨터는 사용 전에 다시 생성하세요.
데스크톱은 첫 시작 시 설치됩니다. 컴퓨터를 중지하면 포터블 홈이 저장되고 샌드박스가 파괴되며, 다음 시작 시 이 홈이 새로운 샌드박스에 복원됩니다.
Railway 샌드박스 사용량은 측정(metered)됩니다.
워크스페이스 내보내기는 파일을 자르지 않고 64 MiB가 넘는 파일은 거부합니다. 이 제한을 변경하려면 RAILWAY_MAX_WORKSPACE_FILE_BYTES를 설정하세요.
데스크톱 및 모바일
Electron 및 Expo 앱은 웹 앱에서 사용되는 동일한 Rakazo API의 클라이언트입니다.
개발 스택이 실행 중일 때 다음 명령어로 Electron을 시작합니다:
pnpm --filter @rakazo/desktop dev
최초 실행 시 데스크톱 앱은 Rakazo를 이 컴퓨터에서 실행할지 아니면 기존 서버에 연결할지 묻습니다. 이 컴퓨터는 Docker Compose(파일은 infra/compose/install-images.sh와 동일)를 사용하여 앱의 데이터 디렉터리 아래에 배포된 이미지를 설치하고 시작합니다. 따라서 Docker Desktop, OrbStack 또는 Docker Engine이 설치되어 있어야 하며, 그렇지 않은 경우 앱이 연결해 줍니다. 설치된 빌드는 이미지 태그를 자체 버전으로 고정합니다. 패키징되지 않은 빌드는 edge를 가져옵니다. pnpm dev를 실행하는 개발자는 대신 기존 인스턴스와 http://127.0.0.1:5173을 선택해야 합니다. 공개 서버는 HTTPS를 사용해야 하며, HTTP는 루프백 및 사설 LAN 주소(링크-로컬 아님)에 대해서만 허용됩니다. 앱은 저장하기 전에 Rakazo의 상태 확인 엔드포인트(health endpoint)를 검증하며, 나중에 실행할 때는 해당 인스턴스로 바로 이동합니다. 스택은 앱을 종료한 후에도 계속 실행되며, 애플리케이션 메뉴에서 로컬 스택 중지를 누르면 꺼집니다.
애플리케이션 메뉴의 **Rakazo 서버 변경…**을 사용하여 다시 연결할 수 있습니다. 해당 창을 저장하지 않고 닫으면 이전 인스턴스로 돌아갑니다. 개발 자동화를 위해 RAKAZO_WEB_URL을 설정하여 셸이 다른 곳을 가리키도록 하거나, 저장된 인스턴스를 변경하지 않고 RAKAZO_FORCE_SETUP=1을 사용하여 설정을 다시 실행할 수 있습니다.
모바일 빌드 및 릴리스 지침은 docs/mobile-release.md에 있습니다.
UI 언어
웹(및 Electron 호스팅) UI는 설정 → 언어에서 영어, 독일어(Deutsch), 한국어, 터키어(Türkçe), 힌디어(हिन्दी), 포르투갈어(브라질)(Português (Brasil)), 간체 중국어(简体中文), 스페인어(Español), 그리고 러시아어(Русский)를 지원합니다. Expo 앱은 영어, 간체 중국어, 러시아어, 독일어 카탈로그를 배포하며, 계정 → 언어에서는 영어와 간체 중국어를 제공하고 다른 카탈로그는 기기 언어나 EXPO_PUBLIC_DEFAULT_UI_LOCALE를 따릅니다. 마케팅 홈페이지(apps/www)는 푸터 언어 링크( /, /de/, /ko/, /zh/)를 통해 en/de/ko/zh로 이용 가능하며, 다른 마케팅 페이지는 영어로 유지됩니다. 러시아 마케팅 홈페이지와 네이티브 Electron 설정/메뉴는 별도의 후속 작업으로 남아 있습니다.
개발
apps/ web, api, worker, desktop, mobile, 및 public website
packages/ domain, contracts, persistence, adapters, UI, 및 test tooling
infra/ local services 및 computer images
...
Common checks:
pnpm lint
pnpm check
pnpm test
...
개발 워크플로우와 테스트 매트릭스는 CONTRIBUTING.md를 참조하세요.
문서화 (Documentation)
기여 (Contributing)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending TypeScript (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기