Raspberry Pi에서 OpenClaw 운영

목표

Raspberry Pi에서 약 $35-80 일회성 비용으로 (월간 비용 없이) 영구적이고 항상 켜져 있는 OpenClaw 게이트웨이를 운영합니다.

적합한 용도:

  • 24/7 개인 AI 비서
  • 홈 자동화 허브
  • 저전력, 항상 사용 가능한 Telegram/WhatsApp 봇

하드웨어 요구 사항

Pi 모델RAM동작 여부비고
Pi 54GB/8GB✅ 최적가장 빠름, 권장
Pi 44GB✅ 양호대부분의 사용자에게 적합
Pi 42GB✅ 보통동작함, 스왑 추가 필요
Pi 41GB⚠️ 빡빡스왑과 최소 구성으로 가능
Pi 3B+1GB⚠️ 느림동작하지만 느림
Pi Zero 2 W512MB비권장

최소 사양: 1GB RAM, 1코어, 500MB 디스크 권장: 2GB+ RAM, 64비트 OS, 16GB+ SD 카드 (또는 USB SSD)

필요한 것

  • Raspberry Pi 4 또는 5 (2GB+ 권장)
  • MicroSD 카드 (16GB+) 또는 USB SSD (더 나은 성능)
  • 전원 공급기 (공식 Pi PSU 권장)
  • 네트워크 연결 (이더넷 또는 WiFi)
  • 약 30분

1) OS 설치

**Raspberry Pi OS Lite (64비트)**를 사용하세요 — 헤드리스 서버에는 데스크톱이 필요 없습니다.

  1. Raspberry Pi Imager 다운로드
  2. OS 선택: Raspberry Pi OS Lite (64-bit)
  3. 기어 아이콘(⚙️)을 클릭하여 사전 설정:
    • 호스트명 설정: gateway-host
    • SSH 활성화
    • 사용자명/비밀번호 설정
    • WiFi 설정 (이더넷 미사용 시)
  4. SD 카드 / USB 드라이브에 플래시
  5. Pi에 삽입하고 부팅

2) SSH로 접속

ssh user@gateway-host
# 또는 IP 주소 사용
ssh [email protected]

3) 시스템 설정

# 시스템 업데이트
sudo apt update && sudo apt upgrade -y

# 필수 패키지 설치
sudo apt install -y git curl build-essential

# 시간대 설정 (cron/알림에 중요)
sudo timedatectl set-timezone America/Chicago  # 자신의 시간대로 변경

4) Node.js 24 설치 (ARM64)

# NodeSource를 통한 Node.js 설치
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install -y nodejs

# 확인
node --version  # v24.x.x가 표시되어야 함
npm --version

5) 스왑 추가 (2GB 이하에서 중요)

스왑은 메모리 부족 크래시를 방지합니다:

# 2GB 스왑 파일 생성
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 영구 설정
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 저메모리 환경 최적화 (스왑 사용 빈도 감소)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

6) OpenClaw 설치

옵션 A: 표준 설치 (권장)

curl -fsSL https://openclaw.ai/install.sh | bash

옵션 B: 해커블 설치 (직접 수정용)

git clone https://github.com/openclaw/openclaw.git
cd openclaw
npm install
npm run build
npm link

해커블 설치는 로그와 코드에 직접 접근할 수 있어 ARM 관련 문제 디버깅에 유용합니다.

7) 온보딩 실행

openclaw onboard --install-daemon

마법사를 따라가세요:

  1. 게이트웨이 모드: 로컬
  2. 인증: API 키 권장 (헤드리스 Pi에서 OAuth가 까다로울 수 있음)
  3. 채널: Telegram이 시작하기 가장 쉬움
  4. 데몬: 예 (systemd)

8) 설치 확인

# 상태 확인
openclaw status

# 서비스 확인
sudo systemctl status openclaw

# 로그 보기
journalctl -u openclaw -f

9) OpenClaw 대시보드 접근

user@gateway-host를 Pi 사용자명 및 호스트명 또는 IP 주소로 바꾸세요.

컴퓨터에서 Pi에 새 대시보드 URL을 출력하도록 요청합니다:

ssh user@gateway-host 'openclaw dashboard --no-open'

명령이 Dashboard URL:을 출력합니다. gateway.auth.token 설정에 따라 URL은 일반 http://127.0.0.1:18789/ 링크이거나 #token=...이 포함된 링크일 수 있습니다.

다른 터미널에서 SSH 터널을 생성합니다:

ssh -N -L 18789:127.0.0.1:18789 user@gateway-host

그런 다음 출력된 대시보드 URL을 로컬 브라우저에서 엽니다.

UI에서 인증을 요청하면, gateway.auth.token(또는 OPENCLAW_GATEWAY_TOKEN)의 토큰을 Control UI 설정에 붙여넣으세요.

항시 원격 접근이 필요하면 Tailscale을 참고하세요.


성능 최적화

USB SSD 사용 (큰 개선)

SD 카드는 느리고 마모됩니다. USB SSD는 성능을 크게 향상시킵니다:

# USB 부팅 확인
lsblk

설정은 Pi USB 부팅 가이드를 참고하세요.

CLI 시작 속도 개선 (모듈 컴파일 캐시)

저전력 Pi 호스트에서 Node의 모듈 컴파일 캐시를 활성화하여 반복 CLI 실행을 빠르게 하세요:

grep -q 'NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache' ~/.bashrc || cat >> ~/.bashrc <<'EOF' # pragma: allowlist secret
export NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
mkdir -p /var/tmp/openclaw-compile-cache
export OPENCLAW_NO_RESPAWN=1
EOF
source ~/.bashrc

참고:

  • NODE_COMPILE_CACHE는 이후 실행(status, health, --help)을 빠르게 합니다.
  • /var/tmp/tmp보다 재부팅 후에도 잘 유지됩니다.
  • OPENCLAW_NO_RESPAWN=1은 CLI 자기 리스폰의 추가 시작 비용을 회피합니다.
  • 첫 실행은 캐시를 워밍업하고, 이후 실행에서 효과가 나타납니다.

systemd 시작 튜닝 (선택 사항)

이 Pi가 주로 OpenClaw을 실행한다면, 재시작 지터를 줄이고 시작 환경을 안정적으로 유지하기 위해 서비스 드롭인을 추가하세요:

sudo systemctl edit openclaw
[Service]
Environment=OPENCLAW_NO_RESPAWN=1
Environment=NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
Restart=always
RestartSec=2
TimeoutStartSec=90

그런 다음 적용:

sudo systemctl daemon-reload
sudo systemctl restart openclaw

가능하면 OpenClaw 상태/캐시를 SSD 기반 스토리지에 유지하여 콜드 스타트 시 SD 카드의 랜덤 I/O 병목을 피하세요.

Restart= 정책이 자동 복구에 어떻게 도움되는지: systemd로 서비스 복구 자동화.

메모리 사용량 줄이기

# GPU 메모리 할당 비활성화 (헤드리스)
echo 'gpu_mem=16' | sudo tee -a /boot/config.txt

# 블루투스 불필요 시 비활성화
sudo systemctl disable bluetooth

리소스 모니터링

# 메모리 확인
free -h

# CPU 온도 확인
vcgencmd measure_temp

# 실시간 모니터링
htop

ARM 관련 참고 사항

바이너리 호환성

대부분의 OpenClaw 기능은 ARM64에서 동작하지만, 일부 외부 바이너리에는 ARM 빌드가 필요할 수 있습니다:

도구ARM64 상태비고
Node.js잘 동작
WhatsApp (Baileys)순수 JS, 문제 없음
Telegram순수 JS, 문제 없음
gog (Gmail CLI)⚠️ARM 릴리스 확인 필요
Chromium (브라우저)sudo apt install chromium-browser

스킬이 실패하면 해당 바이너리에 ARM 빌드가 있는지 확인하세요. 많은 Go/Rust 도구는 있지만, 없는 것도 있습니다.

32비트 vs 64비트

항상 64비트 OS를 사용하세요. Node.js와 많은 최신 도구가 이를 필요로 합니다. 확인:

uname -m
# aarch64 (64비트)이어야 함, armv7l (32비트)이 아님

권장 모델 설정

Pi는 게이트웨이 역할만 하므로 (모델은 클라우드에서 실행), API 기반 모델을 사용하세요:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-sonnet-4-20250514",
        "fallbacks": ["openai/gpt-4o-mini"]
      }
    }
  }
}

Pi에서 로컬 LLM을 실행하지 마세요 — 작은 모델도 너무 느립니다. Claude/GPT에 무거운 작업을 맡기세요.


부팅 시 자동 시작

온보딩 마법사가 이를 설정하지만, 확인하려면:

# 서비스 활성화 확인
sudo systemctl is-enabled openclaw

# 활성화되지 않은 경우
sudo systemctl enable openclaw

# 부팅 시 시작
sudo systemctl start openclaw

문제 해결

메모리 부족 (OOM)

# 메모리 확인
free -h

# 스왑 추가 (5단계 참조)
# 또는 Pi에서 실행 중인 서비스 줄이기

느린 성능

  • SD 카드 대신 USB SSD 사용
  • 미사용 서비스 비활성화: sudo systemctl disable cups bluetooth avahi-daemon
  • CPU 스로틀링 확인: vcgencmd get_throttled (0x0이어야 함)

서비스 시작 불가

# 로그 확인
journalctl -u openclaw --no-pager -n 100

# 일반적인 수정: 재빌드
cd ~/openclaw  # 해커블 설치 사용 시
npm run build
sudo systemctl restart openclaw

ARM 바이너리 문제

스킬이 “exec format error”로 실패하면:

  1. 해당 바이너리에 ARM64 빌드가 있는지 확인
  2. 소스에서 빌드 시도
  3. 또는 ARM을 지원하는 Docker 컨테이너 사용

WiFi 끊김

헤드리스 Pi에서 WiFi 사용 시:

# WiFi 전원 관리 비활성화
sudo iwconfig wlan0 power off

# 영구 설정
echo 'wireless-power off' | sudo tee -a /etc/network/interfaces

비용 비교

설정일회성 비용월 비용비고
Pi 4 (2GB)~$45$0+ 전기료 (~$5/년)
Pi 4 (4GB)~$55$0권장
Pi 5 (4GB)~$60$0최고 성능
Pi 5 (8GB)~$80$0과하지만 미래 대비
DigitalOcean$0$6/월$72/년
Hetzner$0€3.79/월~$50/년

손익분기점: Pi는 클라우드 VPS 대비 약 6-12개월 만에 본전을 뽑습니다.


참고 자료