Raspberry Pi에서 OpenClaw 운영
목표
Raspberry Pi에서 약 $35-80 일회성 비용으로 (월간 비용 없이) 영구적이고 항상 켜져 있는 OpenClaw 게이트웨이를 운영합니다.
적합한 용도:
- 24/7 개인 AI 비서
- 홈 자동화 허브
- 저전력, 항상 사용 가능한 Telegram/WhatsApp 봇
하드웨어 요구 사항
| Pi 모델 | RAM | 동작 여부 | 비고 |
|---|---|---|---|
| Pi 5 | 4GB/8GB | ✅ 최적 | 가장 빠름, 권장 |
| Pi 4 | 4GB | ✅ 양호 | 대부분의 사용자에게 적합 |
| Pi 4 | 2GB | ✅ 보통 | 동작함, 스왑 추가 필요 |
| Pi 4 | 1GB | ⚠️ 빡빡 | 스왑과 최소 구성으로 가능 |
| Pi 3B+ | 1GB | ⚠️ 느림 | 동작하지만 느림 |
| Pi Zero 2 W | 512MB | ❌ | 비권장 |
최소 사양: 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비트)**를 사용하세요 — 헤드리스 서버에는 데스크톱이 필요 없습니다.
- Raspberry Pi Imager 다운로드
- OS 선택: Raspberry Pi OS Lite (64-bit)
- 기어 아이콘(⚙️)을 클릭하여 사전 설정:
- 호스트명 설정:
gateway-host - SSH 활성화
- 사용자명/비밀번호 설정
- WiFi 설정 (이더넷 미사용 시)
- 호스트명 설정:
- SD 카드 / USB 드라이브에 플래시
- 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
마법사를 따라가세요:
- 게이트웨이 모드: 로컬
- 인증: API 키 권장 (헤드리스 Pi에서 OAuth가 까다로울 수 있음)
- 채널: Telegram이 시작하기 가장 쉬움
- 데몬: 예 (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”로 실패하면:
- 해당 바이너리에 ARM64 빌드가 있는지 확인
- 소스에서 빌드 시도
- 또는 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개월 만에 본전을 뽑습니다.
참고 자료
- Linux 가이드 — 일반 Linux 설정
- DigitalOcean 가이드 — 클라우드 대안
- Hetzner 가이드 — Docker 설정
- Tailscale — 원격 접근
- 노드 — 노트북/스마트폰을 Pi 게이트웨이에 페어링