OpenClaw 설정: Docker, Chromium, noVNC를 활용한 인간 참여형 브라우저 자동화

✍️ OpenClawRadar📅 게시일: February 25, 2026🔗 Source
OpenClaw 설정: Docker, Chromium, noVNC를 활용한 인간 참여형 브라우저 자동화
Ad

r/openclaw의 한 개발자가 자동화된 브라우저 세션 중 CAPTCHA 해결 및 승인과 같은 인간 개입이 필요한 작업을 OpenClaw가 처리할 수 있도록 한 설정을 문서화했습니다. 이 솔루션은 필요할 때 원격 개입을 허용하기 위해 Chromium, noVNC 및 관련 도구가 포함된 Docker 컨테이너를 사용합니다.

작동 방식

에이전트는 Chrome DevTools Protocol(CDP)을 통해 헤드리스 브라우저를 구동합니다. CAPTCHA를 만나거나 인간 승인이 필요할 때 Telegram 알림을 보냅니다. 사용자는 휴대폰이나 노트북에서 noVNC URL을 열어 브라우저를 보고 상호작용한 후 "완료"라고 답장하여 에이전트가 계속 진행하도록 합니다. 이 설정은 약 300MB의 RAM과 3초의 콜드 스타트 시간이 필요합니다.

실제 적용 사례

개발자는 이 설정을 OpenClaw가 택배 픽업을 예약하도록 하여 테스트했습니다. 운송장과 이메일 사진을 제공한 후, 에이전트는 온라인 양식을 작성하고 날짜를 선택하여 제출하는 동안 개발자는 noVNC를 통해 모니터링했습니다. Claude Opus 4.6의 Chromium 위젯은 동일한 작업에서 네비게이션 루프에 갇히는 반면 OpenClaw는 예약을 완료했다고 언급했습니다.

기술적 구현

Docker 컨테이너는 다음을 실행합니다:

  • 가상 디스플레이를 위한 Xvfb
  • Playwright가 포함된 Chromium
  • 원격 보기를 위한 x11vnc 및 noVNC
  • 프로세스 관리를 위한 supervisord

봇은 컨테이너 내부에서 CDP를 통해 Chromium을 제어하는 반면, 사용자는 간단한 URL(앱 불필요)로 모든 기기에서 noVNC를 통해 브라우저를 볼 수 있습니다.

보안 조치

  • noVNC는 Tailscale을 통해서만 접근 가능(클라이언트 기기가 tailnet에 포함되어야 함)
  • CDP 포트는 localhost에만 바인딩
  • 컨테이너는 호스트 파일 시스템에 접근 불가
  • Chromium은 비특권으로 실행
  • 비밀번호/2FA는 noVNC 클립보드 패널을 통해 직접 처리

추가 강화

  • Docker 헬스체크: 30초마다 CDP 폴링, 비정상 상태 전에 3회 재시도
  • 리소스 제한: 1GB RAM + 2 CPU
  • 탭 정리기: 최대 5개 탭 유지, 빈 탭 닫기, 5분마다 실행
  • 컨테이너는 호스트 마운트 없이 격리 상태 유지
Ad

Docker 구성

Dockerfile은 Ubuntu 24.04를 사용하고 다음을 설치합니다:

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV DISPLAY=:99
ENV RESOLUTION=1920x1080x24
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates xvfb x11vnc fonts-liberation \
    dbus-x11 supervisor curl gnupg websockify novnc \
    && rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
    && apt-get install -y nodejs \
    && npx playwright install --with-deps chromium \
    && rm -rf /var/lib/apt/lists/*
RUN useradd -m -s /bin/bash browser \
    && mkdir -p /home/browser/.cache \
    && cp -r /root/.cache/ms-playwright /home/browser/.cache/ \
    && chown -R browser:browser /home/browser
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY start-chromium.sh /usr/local/bin/start-chromium.sh
RUN chmod +x /usr/local/bin/start-chromium.sh
RUN ln -sf /usr/share/novnc/vnc.html /usr/share/novnc/index.html
EXPOSE 6080 9222
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

supervisord.conf는 네 가지 프로세스(Xvfb, Chromium, x11vnc, noVNC/websockify)를 관리합니다.

start-chromium.sh 스크립트는 CDP 접근을 위해 --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0을 포함한 특정 플래그로 Chrome을 실행합니다.

할 일 항목

개발자는 noVNC에 토큰 인증을 추가하고 유휴 시간 초과 후 자동 중지 기능을 구현할 계획입니다.

📖 전체 소스 읽기: r/openclaw

Ad

👀 See Also

실용적인 OpenClaw 조언: 작게 시작하고 흔한 함정 피하기
Guides

실용적인 OpenClaw 조언: 작게 시작하고 흔한 함정 피하기

한 개발자가 OpenClaw로 개인 건강 추적기를 만든 경험에서 얻은 교훈을 공유하며, 좁은 범위, 결정론적 워크플로우, 하나의 LLM 고수 등을 강조했습니다. 이 글은 ChatGPT와 Gemini를 비교한 구체적인 모델 관찰도 포함하고 있습니다.

OpenClawRadar
OpenClaw의 기본 메모리를 프로덕션 다중 에이전트 시스템을 위해 Redis와 Qdrant로 교체하기
Guides

OpenClaw의 기본 메모리를 프로덕션 다중 에이전트 시스템을 위해 Redis와 Qdrant로 교체하기

한 개발자가 멀티 에이전트 설정에서 발생하는 확장성 문제를 해결하기 위해 OpenClaw의 기본 SQLite 메모리를 임시 상태용 Redis와 지속적 벡터 메모리용 Qdrant로 교체했습니다. 이로써 시맨틱 검색, 에이전트 간 공유, 동시 쓰기 기능을 구현했습니다.

OpenClawRadar
오픈소스 LLM 및 로컬 AI 프로젝트를 위한 오픈소스 런치 플레이북
Guides

오픈소스 LLM 및 로컬 AI 프로젝트를 위한 오픈소스 런치 플레이북

오픈소스 플레이북은 LLM 및 로컬 AI 프로젝트의 발견 가능성 문제를 해결하기 위해 출시 전 준비, 출시일 실행, 출시 후 후속 조치에 대한 체계적인 지침을 제공합니다. 커뮤니티 배포, 크리에이터 아웃리치, SEO 최적화를 위한 템플릿과 전략을 포함합니다.

OpenClawRadar
OpenClaw에서 Gemini CLI write_file을 찾을 수 없음 문제 해결: 두 가지 수정 필요
Guides

OpenClaw에서 Gemini CLI write_file을 찾을 수 없음 문제 해결: 두 가지 수정 필요

OpenClaw 에이전트가 google-gemini-cli를 사용할 때 잘못된 tools.profile과 서브프로세스의 --approval-mode auto_edit 플래그 누락으로 인해 파일을 쓸 수 없습니다(write_file / default_api_write_file 없음). 해결 방법: 프로필을 full로 설정하고 cliBackends 설정을 통해 플래그를 주입합니다.

OpenClawRadar