콘텐츠로 이동

설치

Revka의 모든 설치 방법 — Homebrew, install.sh 부트스트랩, 사전 빌드 바이너리, 소스 빌드, Scoop, Windows 설치 스크립트, Docker.

Revka는 단일 Rust 바이너리(revka)로 배포되어 Raspberry Pi부터 프로덕션 클라우드 클러스터까지 어디서든 실행됩니다. 이 페이지에서는 바이너리를 머신에 설치하는 모든 지원 방법을 설명합니다: 원라인 부트스트랩, 패키지 매니저(Homebrew, Scoop), Windows 설치 스크립트, 사전 빌드 릴리스 바이너리, 소스 빌드, Docker.

가장 빠른 방법을 원한다면 원클릭 부트스트랩을 사용하세요. 설치 후 온보딩 마법사를 실행하고 빠른 시작으로 이동하세요.

사전 빌드 바이너리는 요구사항이 거의 없어 바로 다운로드하여 실행할 수 있습니다. 소스 빌드는 더 많은 리소스가 필요합니다:

리소스소스 빌드 최소 사양
RAM2 GB (스왑 포함)
여유 디스크6 GB
Rust 툴체인1.87+

부트스트랩 설치 프로그램은 컴파일 전에 프리플라이트 검사로 이 조건을 확인합니다. REVKA_BOOTSTRAP_MIN_RAM_MB(기본값 2048)와 REVKA_BOOTSTRAP_MIN_DISK_MB(기본값 6144)로 임계값을 조정할 수 있습니다. Raspberry Pi 등 리소스가 제한된 기기에서는 컴파일을 건너뛰기 위해 --prefer-prebuilt(아래 참조)를 사용하는 것을 권장합니다.

install.sh는 전체 흐름을 자동화하는 POSIX 셸 설치 프로그램입니다: RAM/디스크를 확인하고, 선택적으로 Rust와 OS 컴파일러 툴체인을 설치하며, 소스에서 빌드하거나 검증된 사전 빌드 바이너리를 다운로드하고, revka onboard를 실행하며, 데몬을 시작할 수 있습니다. 가이드(대화형) 모드와 완전 비대화형 모드, Docker 우선 모드를 모두 지원합니다.

Terminal window
curl -fsSL https://raw.githubusercontent.com/KumihoIO/Revka/main/install.sh | bash

리포지토리 체크아웃 외부에서 실행하면 스크립트가 임시 워크스페이스를 클론하고, 빌드 및 설치 후 정리합니다.

기본적으로 스크립트는 앱 전용이며 기존 Rust 툴체인이 있다고 가정합니다. 기본 동작은 다음과 같습니다:

Terminal window
cargo build --release --locked
cargo install --path . --force --locked

사전 빌드 바이너리 vs 소스 빌드

섹션 제목: “사전 빌드 바이너리 vs 소스 빌드”

부트스트랩은 소스에서 컴파일(Cargo 기능 플래그 완전 제어)하거나 GitHub Releases에서 검증된 사전 빌드 바이너리를 가져올 수 있습니다(컴파일러 불필요, 훨씬 빠름).

Terminal window
./install.sh --prefer-prebuilt # 바이너리 우선 다운로드, 실패 시 소스 빌드로 폴백
./install.sh --prebuilt-only # 바이너리 전용 — 일치하는 에셋이 없으면 실패
./install.sh --force-source-build # 사전 빌드 바이너리 사용 안 함

CI 및 스크립트 부트스트랩에 이상적으로, 프롬프트 없이 온보딩이 실행되도록 프로바이더와 API 키를 미리 설정합니다:

Terminal window
./install.sh --api-key "sk-..." --provider openrouter
# Or via environment variables
REVKA_API_KEY="sk-..." REVKA_PROVIDER="openrouter" ./install.sh
플래그용도
--guided / --no-guided대화형 모드 강제 켜기/끄기
--install-system-depsOS 컴파일러/빌드 툴체인 설치
--install-rust없는 경우 rustup을 통해 Rust 설치
--prefer-prebuilt사전 빌드 바이너리 우선 다운로드, 소스로 폴백
--prebuilt-only바이너리 전용; 소스 폴백 없음
--force-source-build사전 빌드 경로 완전 비활성화
--dockerDocker/Podman 부트스트랩 모드
--skip-build(Docker 모드) 로컬 이미지 재사용 또는 GHCR에서 풀
--skip-install빌드만; 바이너리 설치 안 함
--api-key <key>API 키 프롬프트 건너뜀
--provider <id>프로바이더 이름 (기본값: openrouter)
--model <id>모델 ID 재정의
--cargo-features <list>소스 빌드용 추가 Cargo 기능 플래그
--skip-onboard프로바이더/API 키 설정 건너뜀
--install-sidecars / --skip-sidecarsPython MCP 사이드카 설치 제어
--with-session-managerNode.js Session Manager 사이드카도 설치

유용한 환경 변수: REVKA_API_KEY, REVKA_PROVIDER, REVKA_MODEL, REVKA_CARGO_FEATURES, REVKA_CONTAINER_CLI, REVKA_DOCKER_DATA_DIR, REVKA_DOCKER_IMAGE, REVKA_BOOTSTRAP_MIN_RAM_MB, REVKA_BOOTSTRAP_MIN_DISK_MB, REVKA_SKIP_VERIFY.

전체 목록을 보려면 ./install.sh --help를 실행하세요.

사전 빌드 바이너리 및 서명 검증

섹션 제목: “사전 빌드 바이너리 및 서명 검증”

부트스트랩(및 revka update)은 플랫폼을 감지하고 GitHub Releases에서 일치하는 릴리스 에셋을 다운로드합니다.

타겟 트리플플랫폼
x86_64-unknown-linux-gnuLinux x86-64
aarch64-unknown-linux-gnuLinux ARM64 (Raspberry Pi 4/5, 64비트)
armv7-unknown-linux-gnueabihfLinux ARMv7 (Raspberry Pi 2/3)
arm-unknown-linux-gnueabihfLinux ARMv6
x86_64-apple-darwinmacOS Intel
aarch64-apple-darwinmacOS Apple Silicon
aarch64-linux-androidAndroid ARM64 (Termux)

다운로드된 모든 아카이브는 동일한 릴리스에 게시된 SHA256SUMS 파일과 대조하여 검증됩니다. cosign이 설치된 경우 설치 프로그램은 GitHub OIDC 아이덴티티에 대해 SHA256SUMS의 키리스 서명(SHA256SUMS.sig + SHA256SUMS.pem)도 검증합니다:

  • Issuer: https://token.actions.githubusercontent.com
  • Identity: KumihoIO/Revka 릴리스 워크플로우

cosign이 없는 경우 SHA256 체크섬은 여전히 적용되며 서명 검증은 안내 메시지와 함께 건너뜁니다. 모든 검증을 우회하려면(권장하지 않음) REVKA_SKIP_VERIFY=1로 설정하세요.

macOS와 Linux에서 가장 간단한 방법:

Terminal window
brew install revka
brew upgrade revka
brew uninstall revka

Homebrew는 바이너리를 /opt/homebrew/bin/revka(Apple Silicon) 또는 /usr/local/bin/revka(Intel)에 배치하고, 런타임 데이터로 var/revka/ 디렉터리를 사용하여 launchd 서비스로 실행할 수 있습니다:

Terminal window
brew services start revka

리포지토리 루트에서 대화형 스크립트가 환경을 자동으로 감지하고 설치를 안내합니다:

Terminal window
setup.bat

모드 플래그로 메뉴를 건너뜁니다:

플래그빌드
--prebuilt사전 컴파일된 바이너리 다운로드 (가장 빠름)
--minimal기본 기능만
--standardMatrix + Lark/Feishu + Postgres
--full모든 기능

setup.bat은 RAM을 확인하고(2 GB 미만이면 경고), Rust 여부를 확인하며, cargo install을 호출합니다. x86_64-pc-windows-msvc를 타겟으로 합니다.

요구사항필수 여부비고
Git필수git-scm.com/download/win
Rust 1.87+필수setup.bat이 없으면 자동 설치
Visual Studio Build Tools필수 (소스 빌드)C++ 워크로드 — MSVC 링커에 필요
Node.js선택소스에서 웹 대시보드를 빌드할 때만 필요

Windows에서 소스 빌드는 Visual Studio Build Tools에 포함된 MSVC 링커가 필요합니다. C++ 워크로드가 포함된 Visual Studio가 없는 경우:

  1. visualstudio.microsoft.com/visual-cpp-build-tools에서 다운로드합니다.
  2. “C++를 사용한 데스크톱 개발” 워크로드를 선택합니다.
  3. 설치 후 터미널을 재시작합니다.

링커 오류로 빌드가 실패하면 이 워크로드 누락이 거의 항상 원인입니다. cargo build가 메모리 부족으로 실패하면 setup.bat --prebuilt를 사용하여 바이너리를 다운로드하세요.

  1. PATH 변경이 적용되도록 터미널을 재시작합니다.
  2. Revka를 초기화합니다: revka onboard
  3. %USERPROFILE%\.revka\config.toml에서 API 키를 설정합니다.
  4. http://127.0.0.1:42617에서 게이트웨이 + 대시보드를 시작합니다: revka gateway (또는 revka daemon으로 전체 런타임 실행).

컴파일 타임 기능이 필요한 경우 Cargo로 직접 빌드하세요. --locked로 재현 가능한 빌드가 가능하며, --features로 통합을 선택합니다:

Terminal window
cargo build --release --locked --features hardware,channel-matrix
cargo install --path . --force --locked

리소스가 제한된 머신에서는 메모리 부족 오류를 방지하기 위해 병렬성을 제한하세요:

Terminal window
CARGO_BUILD_JOBS=1 cargo build --release --locked

전체 기능 목록은 Cargo 기능 플래그 및 ADR을 참조하고, ARM/임베디드 빌드(--features hardware,peripheral-rpi)는 네트워크 배포, Raspberry Pi & 프록시를 참조하세요.

GitHub Container Registry에 두 가지 멀티아치 이미지가 게시되어 있습니다:

  • ghcr.io/kumihoio/revka:latestdistroless(셸 없음), 최소 공격 표면. 엔트리포인트: revka daemon.
  • ghcr.io/kumihoio/revka:debianbash, git, curl이 포함된 Debian bookworm-slim. 에이전트에 셸 기반 도구가 필요할 때 사용하세요.
Terminal window
docker run -d \
-e API_KEY=sk-... \
-e PROVIDER=openrouter \
-v revka-data:/revka-data \
-p 42617:42617 \
ghcr.io/kumihoio/revka:latest

주요 환경 변수: API_KEY(또는 REVKA_API_KEY), PROVIDER(기본값 openrouter), REVKA_MODEL, REVKA_GATEWAY_PORT(기본값 42617), REVKA_ALLOW_PUBLIC_BIND=true(컨테이너 네트워킹에 필요). 컨테이너는 UID 65534(nobody)로 실행되며 HOME=/revka-data입니다.

표준 활성 상태 확인(이미지 HEALTHCHECK에서도 사용):

Terminal window
docker exec revka revka status --format=exit-code

부트스트랩 기반 Docker 플로우:

Terminal window
./install.sh --docker
REVKA_CONTAINER_CLI=podman ./install.sh --docker # Podman

로컬 이미지를 빌드하고 컨테이너에서 온보딩을 실행하며, ./.revka-docker에 데이터를 유지합니다(REVKA_DOCKER_DATA_DIR로 재정의). Podman 실행 시 --userns keep-id:Z 볼륨 레이블이 자동으로 적용됩니다.

Compose, 원클릭 PaaS 템플릿(Coolify, Dokploy, EasyPanel), 전체 컨테이너 레퍼런스는 Docker, Compose & 원클릭 PaaS를 참조하세요.

설치 방법에 관계없이 바이너리가 작동하고 환경이 정상인지 확인합니다:

Terminal window
revka --version
revka doctor # structured config / workspace / environment diagnostics
revka self-test # full diagnostic suite
revka self-test --quick # offline checks only

revka doctor는 설정 파일, 프로바이더, API 키, 워크스페이스, 사이드카, CLI 도구를 검증합니다 — 문제가 생기면 가장 먼저 실행하세요. revka doctor, status & self-test를 참조하세요.