클라우드 VPC 상 Ubuntu 24.04 LTS 환경에서 설치하는 가이드입니다. 기타 Linux 배포 환경 및 물리 서버 등에서도 유사하게 적용할 수 있습니다.
OpenClaw에 대해서 지난 글에서 간단히 소개한 바 있습니다. OpenClaw는 AI Agent 패키지로서, LLM 모델을 활용하여 다양한 작업을 자동화할 수 있도록 도와주는 도구입니다.
공식 홈페이지의 문서에서도 Docker 환경에 OpenClaw를 설치하는 방법에 대해 안내하고 있는데, 가상 혹은 물리 Linux 서버와 같이 GUI가 없는 환경에서 Docker 컨테이너 내에 OpenClaw를 격리시켜 설치하는 방법을 안내해 드리겠습니다.
참고로, OpenClaw를 Docker 내에 격리 시킨다고 보안 이슈가 완전히 해결되는 것은 아닙니다. 호스트의 자원에 함부로 접근할 수 없을 뿐이지, 에이전트가 클라우드 상의 개인 정보에 접근할 수 있도록 설정이 되어 있으면, 해당 정보를 조회하고 외부에 유출시킬 가능성이 있기 때문입니다. 따라서, OpenClaw가 접근할 수 있는 정보와 자원에 대해서는 신중하게 설정하는 것이 중요합니다.
OpenClaw Docker 설치하기
OpenClaw 공식 문서에서 Docker 환경 설치에 대한 문서가 존재 하지만, 맥이나 데스크톱 환경을 기준으로 작성된 것으로 보입니다. VPC 환경에 대한 설치 안내 가이드도 있긴 하지만 설치 후 설정 과정에 대해서 아예 언급이 없기 때문에, 리눅스 서버 환경에서 Docker 컨테이너에 OpenClaw를 설치하고 설정하는 방법을 이 글에서 안내해 드리고자 합니다. 다만, 본 가이드의 초기 설치 과정의 경우, OpenClaw 공식 문서를 참고하여 작성되었음을 미리 알려드립니다.
우선, 이전 글 Docker 설치 시 사용자를 docker 그룹에 추가하지 않는 이유를 참고하시면 좋을 것 같습니다. 저는 Docker를 항상 sudo 명령어와 함께 사용하기 때문에, Docker 그룹에 사용자를 추가하지 않고 있습니다. Docker 그룹에 사용자를 추가하면, 해당 사용자가 Docker 데몬에 대한 권한을 가지게 되어 보안 이슈가 발생할 수 있기 때문입니다.
필수 패키지 설치를 위해 Dockerfile을 다음과 같이 수정합니다. 공식 문서에서 GOG (구글 서비스 연동 유틸리티) 등을 미리 구워서 설치하라고 하지만, 추후에 Docker 컨테이너 내에서도 설치가 가능합니다. 따라서, Dockerfile에서는 필수 패키지 설치만 진행하도록 수정하겠습니다.
이 부분은 OpenClaw의 모델 설정과 채널 연동을 수동으로 설정하는 방법에 대한 안내입니다. 만일 온보딩과 WebUI에서 설정하는 것을 마치셨다면, 이 부분은 건너뛰어도 됩니다.
모델 설정 및 채널 연동과 관련해서 이미 공식 문서에서도 상세하게 설명이 되어 있습니다. 차이는 저희는 도커 컨테이너 내에 OpenClaw를 설치하였다는 점 입니다.
OpenClaw의 경우 설정 파일을 /home/node/.openclaw/openclaw.json에 저장하게 되어 있습니다.
이미 저희는 위에서 설치 과정에서 호스트의 폴더로 Volume을 마운트하도록 설정했기 때문에, 호스트의 ~/.openclaw/openclaw.json 파일에 쉽게 접근하여 직접 수정할 수 있습니다.
기본적인 설정 파일은 다음과 같은 형태로 되어 있습니다.
GUI가 없는 원격 환경에서 설치를 하기 때문에 다음과 같이 GOG를 두번에 걸쳐 인증을 수행합니다.
gog auth add you@gmail.com --services user --remote --step 1
연동을 위하는 서비스를 --services gmail,drive,calendar,sheets,docs 와 같이 Scope을 제한할 수 있고, --services user로 설정하면 모든 서비스에 대한 접근 권한을 요청할 수 있습니다. 다만, 보안상 필요한 서비스에 대해서만 권한을 부여하는 것을 권장드립니다.
위 명령어를 실행하면 인증을 위한 URL이 출력됩니다. 해당 URL을 복사해서 로컬 머신의 브라우저에 붙여넣기 합니다. 브라우저에서 구글 계정으로 로그인을 하고, 각 서비스의 액세스 항목을 설정할 수 있습니다. 편의상 모두 체크해도 무방합니다. 다음으로 진행이 되면 브라우저의 오류 페이지로 이동하게 됩니다.
이 때, 브라우저의 주소창에 있는 URL을 다시 복사해 둡니다.
위와 같이 --auth-url 옵션에 복사해 둔 URL을 입력하면 최종적으로 인증이 완료됩니다. 이제 OpenClaw에서 구글 계정과 연동하여 지메일, 드라이브, 캘린더 등의 서비스를 활용할 수 있습니다.
Chrome 브라우저 설치
OpenClaw 에이전트가 웹을 겁색하는 방법 중 가장 강력한 수단은 직접 브라우저를 통해 웹사이트를 접속하는 것입니다. 로컬 PC에 설치한 것이 아닌 서버 환경에서 Docker 컨테이너 내부에 OpenClaw를 설치했기 때문에, 새로 Chrome 브라우저를 다운받아 설치해 주어야 합니다.
컨테이너 내부로 다시 아래 명령어로 접속합니다.
{ /*... 중략 ...*/ "browser": { "enabled": true, "remoteCdpTimeoutMs": 1500, "remoteCdpHandshakeTimeoutMs": 3000, "executablePath": "/usr/bin/google-chrome", "headless": true, /* GUI 없이 실행 */ "noSandbox": true, "attachOnly": false, "defaultProfile": "openclaw", /* OpenClaw 전용 프로필 사용 */ "profiles": {} }, /*... 중략 ...*/}
이제 호스트로 빠져나와서 OpenClaw Gateway를 재시작 해 줍니다.
sudo docker restart openclaw-openclaw-gateway-1
재시작 되면 에이전트가 웹 검색을 할 때, Chrome 브라우저를 활용해서 검색을 수행하게 됩니다. 에이전트가 스냅샷을 통해 웹페이지가 렌더링된 모습을 직접 볼 수 있기 때문에, 더 정확하고 빠르게 웹에서 정보를 수집할 수 있습니다.
마치며
서버 환경에서 Docker 컨테이너에 OpenClaw를 설치하는 방법에 대해서 간단하게 정리해 보았습니다. OpenClaw는 다양한 기능과 설정이 존재하기 때문에, 공식 문서 등을 살펴보면서 여러가지 설정을 조정하면서 사용해 보시는 것을 권장드립니다. 서버에 설치한 OpenClaw는 24시간 깨어있기 때문에 접근성이 매우 높고, Docker 컨테이너 내부에 설치할 경우 호스트의 모든 리소스에 접근하는 것을 방지하기 때문에 보안 문제의 일부분을 해소할 수 있는 방법입니다.
다만, 구글 서비스와 같이 개인 클라우드 서비스 상에 무제한 접근이 가능하기 때문에 항상 보안에 유의하면서 필요한 권한만 부여하고, 실제 액션을 취하기 전에 에이전트가 어떤 행동이나 스크립트를 실행할지 확인을 받도록 설정하는 것을 권장드립니다.
그럼, 즐거운 OpenClaw 라이프 되시길 바랍니다!