콘텐츠로 이동

Raspberry Pi에서 OpenClaw Gateway 운영하기

개인용 AI 어시스턴트나 봇을 24시간 운영하고 싶지만, 매달 나가는 클라우드 비용이 부담스러울 때가 있습니다. 그렇다고 고사양 PC를 하루 종일 켜두는 것도 전력 낭비처럼 느껴지죠. 저렴하면서도 전기를 적게 쓰는 나만의 작은 서버가 간절해지는 순간입니다.

Raspberry Pi를 사용하면 약 35~80달러의 한 번의 비용으로 나만의 OpenClaw Gateway를 구축할 수 있습니다. 텔레그램이나 왓츠앱 봇을 운영하거나 홈 오토메이션 허브로 쓰기에 딱 좋습니다.

구축을 시작하기 전에 다음 준비물을 확인해 주세요.

  • Raspberry Pi 4 또는 5 (2GB RAM 이상 권장)
  • MicroSD 카드 (16GB 이상) 또는 USB SSD (성능 향상을 위해 권장)
  • 전원 공급 장치 (공식 Pi PSU 권장)
  • 네트워크 연결 (이더넷 또는 WiFi)
  • 약 30분의 시간

데스크탑 화면이 필요 없는 서버용이므로 **Raspberry Pi OS Lite (64-bit)**를 사용합니다.

  1. Raspberry Pi Imager를 다운로드하세요.
  2. OS 선택: Raspberry Pi OS Lite (64-bit)
  3. 톱니바퀴 아이콘(⚙️)을 클릭해 설정을 미리 구성하세요.
    • Hostname: gateway-host
    • SSH 활성화
    • 사용자 이름 및 비밀번호 설정
    • WiFi 설정 (이더넷을 쓰지 않는 경우)
  4. SD 카드 또는 USB 드라이브에 쓰기를 진행하세요.
  5. Pi에 삽입하고 부팅합니다.
Terminal window
ssh user@gateway-host
# 또는 IP 주소로 접속
ssh user@192.168.x.x
Terminal window
# 시스템 업데이트
sudo apt update && sudo apt upgrade -y
# 필수 패키지 설치
sudo apt install -y git curl build-essential
# 시간대 설정 (알림 및 크론탭에 중요)
sudo timedatectl set-timezone Asia/Seoul
Terminal window
# NodeSource를 통해 Node.js 설치
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
# 설치 확인
node --version # v22.x.x가 표시되어야 합니다
npm --version

메모리 부족으로 인한 크래시를 방지하기 위해 Swap을 설정합니다.

Terminal window
# 2GB swap 파일 생성
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
# 낮은 RAM 환경을 위한 최적화 (swappiness 감소)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

두 가지 방법 중 선택할 수 있습니다.

방법 A: 표준 설치 (권장)

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

방법 B: 직접 빌드 (수정 및 디버깅용)

Terminal window
git clone https://github.com/openclaw/openclaw.git
cd openclaw
npm install
npm run build
npm link
Terminal window
openclaw onboard --install-daemon

마법사 안내에 따라 설정을 진행하세요.

  1. Gateway mode: Local
  2. Auth: API keys 권장 (Headless 환경에서 OAuth는 까다로울 수 있습니다)
  3. Channels: Telegram이 시작하기 가장 쉽습니다
  4. Daemon: Yes (systemd)
Terminal window
# 상태 확인
openclaw status
# 서비스 상태 확인
sudo systemctl status openclaw
# 로그 확인
journalctl -u openclaw -f

Pi는 화면이 없으므로 SSH Tunnel을 사용해 접속합니다.

Terminal window
# 로컬 PC(노트북)에서 실행
ssh -L 18789:localhost:18789 user@gateway-host
# 브라우저에서 아래 주소로 접속
http://localhost:18789

Tailscale을 사용하면 어디서든 접속할 수 있습니다.

Terminal window
# Pi에서 실행
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# 설정 업데이트
openclaw config set gateway.bind tailnet
sudo systemctl restart openclaw

SD 카드는 느리고 수명이 짧습니다. USB SSD를 사용하면 성능이 크게 좋아집니다. lsblk 명령어로 부팅 장치를 확인할 수 있습니다.

Terminal window
# GPU 메모리 할당 최소화 (Headless 환경)
echo 'gpu_mem=16' | sudo tee -a /boot/config.txt
# 블루투스가 필요 없다면 비활성화
sudo systemctl disable bluetooth

반드시 64-bit OS를 사용하세요. Node.js와 최신 툴들은 64-bit 환경이 필요합니다. uname -m을 실행했을 때 aarch64가 나와야 합니다.

Pi는 Gateway 역할만 수행하고 실제 모델은 클라우드 API를 사용하는 것이 좋습니다. Pi에서 직접 로컬 LLM을 돌리는 것은 매우 느리므로 권장하지 않습니다.

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

  • free -h로 메모리를 확인하세요.
  • Step 5를 참고하여 Swap을 늘리거나 불필요한 서비스를 종료하세요.
  • SD 카드 대신 USB SSD를 사용하세요.
  • sudo systemctl disable cups bluetooth avahi-daemon으로 불필요한 서비스를 끄세요.
  • vcgencmd get_throttled 결과가 0x0인지 확인하여 CPU 스로틀링 여부를 체크하세요.
  • 로그를 확인하세요: journalctl -u openclaw --no-pager -n 100
  • 직접 빌드한 경우 다시 빌드해 보세요: npm run build 후 sudo systemctl restart openclaw

WiFi 절전 모드를 비활성화하면 도움이 됩니다.

Terminal window
sudo iwconfig wlan0 power off

설정 중에 막히는 부분이 있다면 AI Setup Assistant에게 물어보세요.

OpenClaw

OpenClaw Expert

아직 막혀 있나요?

이 문서에서 답을 못 찾았다면 OpenClaw Expert에게 바로 물어보세요.