들어가며
시놀로지 NAS는 많은 가정과 소규모 기업의 데이터 센터로, Docker 기능을 활용하여 OpenClaw를 배포하면 24시간 온라인 AI 어시스턴트 서비스를 구현할 수 있습니다. 본 문서에서는 시놀로지의 Container Manager(이전 버전에서는 Docker 패키지)를 통해 OpenClaw를 배포하는 방법을 상세히 안내합니다.
사전 요구 사항
| 요구 사항 | 설명 |
|---|---|
| NAS 모델 | Docker를 지원하는 x86 아키텍처 시놀로지 (예: DS220+, DS920+, DS1621+ 등) |
| DSM 버전 | DSM 7.2 이상 |
| 메모리 | 최소 4GB (8GB+ 권장) |
| 저장 공간 | 최소 2GB 여유 공간 |
| 패키지 | Container Manager 설치 필요 |
참고: ARM 아키텍처의 입문형 시놀로지(예: DS120j, DS220j)는 Docker를 지원하지 않아 본 튜토리얼의 방법을 사용할 수 없습니다.
1단계: Container Manager 설치
아직 Container Manager 패키지를 설치하지 않았다면:
- DSM을 열고 "패키지 센터"에 진입합니다
- "Container Manager"를 검색합니다
- "설치"를 클릭합니다
- 설치가 완료될 때까지 기다립니다
2단계: OpenClaw 이미지 다운로드
방법 1: Container Manager 인터페이스를 통해
- Container Manager를 엽니다
- 왼쪽의 "레지스트리"(Registry)를 클릭합니다
- 검색창에
openclaw/openclaw를 입력합니다 - 공식 이미지를 선택하고 "다운로드"를 클릭합니다
- 태그로
latest를 선택하고 다운로드를 확인합니다
방법 2: SSH 명령줄을 통해
먼저 DSM에서 SSH를 활성화합니다: 제어판 > 터미널 및 SNMP > SSH 서비스 활성화.
# 시놀로지에 SSH 연결
ssh admin@NAS주소
# sudo 권한으로 이미지 풀
sudo docker pull openclaw/openclaw:latest
3단계: 구성 디렉토리 준비
시놀로지에 OpenClaw 구성 및 데이터를 저장할 디렉토리를 생성합니다.
File Station을 통해
- File Station을 엽니다
docker공유 폴더로 이동합니다 (없으면 먼저 스토리지 관리자에서 생성)openclaw폴더를 생성합니다openclaw하위에 두 개의 하위 폴더를 생성합니다:config와data
최종 디렉토리 구조:
/docker/openclaw/
├── config/
└── data/
SSH를 통해
sudo mkdir -p /volume1/docker/openclaw/config
sudo mkdir -p /volume1/docker/openclaw/data
sudo chown -R 1000:1000 /volume1/docker/openclaw
4단계: 구성 파일 생성
config 디렉토리에 openclaw.json5 구성 파일을 생성합니다. File Station을 통해 업로드하거나 SSH를 통해 생성할 수 있습니다.
cat > /volume1/docker/openclaw/config/openclaw.json5 << 'EOF'
{
// OpenClaw 구성 파일
// 상세 설정은 구성 파일 가이드를 참조하십시오
gateway: {
port: 18789,
host: "0.0.0.0",
},
models: {
default: "claude",
providers: {
claude: {
apiKey: "sk-ant-your-api-key-here",
model: "claude-sonnet-4-20250514",
},
},
},
channels: {
// 필요에 따라 통신 채널을 구성합니다
},
logging: {
level: "info",
file: "/app/data/openclaw.log",
},
}
EOF
sk-ant-your-api-key-here를 실제 API 키로 교체하십시오.
5단계: 컨테이너 생성
방법 1: Container Manager 인터페이스를 통해
- Container Manager를 열고 "컨테이너" > "생성"을 클릭합니다
openclaw/openclaw:latest이미지를 선택합니다- 컨테이너 이름을
openclaw로 설정합니다 - "자동 재시작 활성화"를 선택합니다
포트 설정:
| 로컬 포트 | 컨테이너 포트 | 프로토콜 |
|---|---|---|
| 18789 | 18789 | TCP |
스토리지 설정 (볼륨 매핑):
| 로컬 경로 | 컨테이너 경로 | 권한 |
|---|---|---|
| /volume1/docker/openclaw/config | /app/config | 읽기/쓰기 |
| /volume1/docker/openclaw/data | /app/data | 읽기/쓰기 |
환경 변수:
| 변수명 | 값 |
|---|---|
| OPENCLAW_CONFIG | /app/config/openclaw.json5 |
| TZ | Asia/Shanghai |
| NODE_ENV | production |
- "다음"을 클릭하고 설정을 확인한 후 "완료"를 클릭합니다
방법 2: docker-compose를 통해 (권장)
/volume1/docker/openclaw/ 디렉토리에 docker-compose.yml을 생성합니다.
version: "3.8"
services:
openclaw:
image: openclaw/openclaw:latest
container_name: openclaw
restart: always
ports:
- "18789:18789"
volumes:
- ./config:/app/config
- ./data:/app/data
environment:
- OPENCLAW_CONFIG=/app/config/openclaw.json5
- TZ=Asia/Shanghai
- NODE_ENV=production
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:18789/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
SSH를 통해 시작합니다.
cd /volume1/docker/openclaw
sudo docker-compose up -d
6단계: 배포 확인
컨테이너 상태 확인
Container Manager에서 컨테이너가 정상적으로 실행 중인지 확인합니다(녹색 상태). 또는 명령줄을 통해:
sudo docker ps | grep openclaw
로그 확인
sudo docker logs -f openclaw
다음과 유사한 출력이 표시되어야 합니다.
[OpenClaw] Gateway started on port 18789
[OpenClaw] Model provider: Claude (claude-sonnet-4-20250514)
[OpenClaw] Channels: ready
Dashboard 접속
브라우저에서 다음을 엽니다.
http://NAS주소:18789/dashboard
7단계: 시놀로지 방화벽 설정
시놀로지에서 방화벽을 활성화한 경우 18789 포트를 허용해야 합니다.
- DSM 제어판을 엽니다
- "보안" > "방화벽"으로 이동합니다
- "규칙 편집"을 클릭합니다
- 새 규칙을 생성합니다:
- 포트: 사용자 정의,
18789입력 - 프로토콜: TCP
- 동작: 허용
- 포트: 사용자 정의,
- 저장하고 적용합니다
8단계: 리버스 프록시 설정 (선택 사항)
시놀로지에는 리버스 프록시 기능이 내장되어 있어 도메인명으로 OpenClaw에 접근할 수 있습니다.
- DSM 제어판을 엽니다
- "로그인 포털" > "고급" > "리버스 프록시 서버"로 이동합니다
- 새 규칙을 생성합니다:
- 설명: OpenClaw
- 소스 프로토콜: HTTPS
- 소스 호스트명: openclaw.yourdomain.com
- 소스 포트: 443
- 대상 프로토콜: HTTP
- 대상 호스트명: localhost
- 대상 포트: 18789
시놀로지의 DDNS와 Let's Encrypt 인증서를 함께 사용하면 외부 네트워크에서 안전하게 접근할 수 있습니다.
자동 재시작 정책
Container Manager에서 설정
컨테이너 설정에서 "자동 재시작 활성화"를 선택하면 됩니다. 이렇게 하면 NAS 재부팅 후 컨테이너가 자동으로 시작됩니다.
헬스 체크
docker-compose의 healthcheck 구성을 사용하면 Docker가 주기적으로 OpenClaw의 건강 상태를 확인합니다. 비정상이 감지되면 자동으로 컨테이너를 재시작합니다.
건강 상태 확인:
sudo docker inspect --format='{{.State.Health.Status}}' openclaw
데이터 백업
시놀로지의 Hyper Backup을 활용하여 OpenClaw의 구성과 데이터를 백업합니다.
- Hyper Backup을 엽니다
- 새 백업 작업을 생성합니다
- 백업 대상을 선택합니다
- 폴더 선택에서
/docker/openclaw/를 선택합니다 - 정기 백업 일정을 설정합니다 (매일 백업 권장)
수동 백업도 간단합니다.
# 백업 생성
sudo tar -czf /volume1/backups/openclaw-backup-$(date +%Y%m%d).tar.gz \
/volume1/docker/openclaw/config \
/volume1/docker/openclaw/data
자주 발생하는 문제
| 문제 | 해결 방법 |
|---|---|
| 컨테이너 시작 불가 | 포트 사용 여부 확인: sudo netstat -tlnp | grep 18789 |
| 구성 파일 미적용 | 볼륨 매핑 경로가 정확하고 파일 권한이 읽기 가능한지 확인 |
| 외부 네트워크 접근 불가 | 라우터 포트 포워딩 및 시놀로지 방화벽 설정 확인 |
| 이미지 풀 실패 | Docker 미러 가속기 설정 시도 |
| 컨테이너 메모리 부족 | 컨테이너 설정에서 메모리 제한을 늘리기 |
Docker 미러 가속 설정
이미지 풀 속도가 느린 경우 미러 가속기를 설정할 수 있습니다. SSH를 통해 Docker 설정을 편집합니다.
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
EOF
sudo systemctl restart docker
마무리
시놀로지 NAS의 Docker 기능을 통해 OpenClaw를 배포하면 안정적이고 저전력으로 24시간 온라인 AI 어시스턴트 서비스를 얻을 수 있습니다. 시놀로지의 스토리지 관리, 백업 및 리버스 프록시 기능 덕분에 운영 관리가 매우 간편합니다. Hyper Backup을 사용하여 구성 데이터를 정기적으로 백업하여 데이터 안전을 확보하시기 바랍니다.