Saltar al contenido
Docker · serve() · CDP

Un navegador antidetect en un solo docker run

Descarga la imagen oficial y tendrás un navegador Clearcote escuchando en un puerto CDP. Apunta Playwright, Puppeteer, browser-use, Crawl4AI o Stagehand hacia él y tu código queda tal cual. La imagen lanza el binario directamente, sin el flag de automatización, y navigator.webdriver sigue en false.

La imagen ejecuta el build abierto sin clave. Agrega una clave gratuita de GitHub para usar el build más reciente.

Ejecútalo y conéctate

# CDP on http://localhost:9222, published to this host only
docker run -d --rm -p 127.0.0.1:9222:9222 --shm-size=1g teamflatearth/clearcote

Lo más destacado

Un binario verificado, ya incluido

La imagen trae el build abierto para Linux verificado con SHA-256 y clones con métricas compatibles de las fuentes comunes de Windows, así que el texto latino mide lo mismo que con las fuentes de la persona. El paquete de fuentes del build abierto no incluye tipografías CJK; el del build con licencia sí.

Configurado con variables de entorno

Seed, plataforma, marca, idioma, zona horaria y perfil TLS son variables de entorno CC_*. No hay código que mantener dentro del contenedor.

El build más reciente cuando lo pidas

Configura CLEARCOTE_LICENSE_KEY y el contenedor obtiene el build con licencia más reciente o, en Pro, uno fijado con CC_VERSION.

serve() y una CLI

¿No usas Docker? serve() en Python, Node o .NET, o clearcote serve desde una terminal, hace el mismo lanzamiento directo y te da una URL de CDP.

Cualquier cliente CDP

connectOverCDP de Playwright, puppeteer.connect, browser-use, Crawl4AI, Stagehand o el DevTools Protocol directamente en el puerto.

Un Dockerfile auditable

El Dockerfile y su entrypoint están en el repositorio público, así que puedes leer exactamente qué instala y ejecuta la imagen, y construirla tú mismo. Eso cubre la imagen y el build abierto que incluye; con una clave de licencia, el contenedor descarga el motor con licencia al iniciar.

Cómo está configurado el contenedor

El contenedor inicia Clearcote directamente, no a través de un driver de pruebas, y expone el Chrome DevTools Protocol en el puerto 9222. El lanzamiento directo es la clave: los frameworks de automatización agregan flags de lanzamiento que los delatan, y un endpoint permanente iniciado por la imagen nunca los pasa.

La persona por defecto es una identidad nativa de Linux coherente, y ese valor por defecto es deliberado. Parte de lo que una página puede leer viene del sistema operativo que hay debajo del navegador: en un contenedor Linux, FreeType da forma al texto y las fuentes vienen de fontconfig, diga lo que diga el user agent. Medido en esta imagen con una persona de Windows, un paso de 0.01 px en el tamaño de fuente cambió el ancho del texto en el 66% de los pasos, frente al 99% en un Chrome real en Windows. Para una identidad de Windows, ejecuta el build de Windows o usa navegadores alojados, que corren en máquinas Windows.

Un contenedor con licencia descarga su motor en el primer inicio y obtiene una concesión de concurrencia, así que necesita acceso saliente a la API de licencias. Monta el volumen de caché para que el motor se descargue una sola vez y no en cada contenedor nuevo.

Qué se conecta por CDP

ClienteCómo
Playwrightchromium.connect_over_cdp(url) / connectOverCDP(url)
Puppeteerpuppeteer.connect({ browserURL: url, defaultViewport: null })
browser-use · Crawl4AI · StagehandApunta su opción de endpoint CDP a la URL
Cualquier otro cliente que hable CDPEl DevTools Protocol directamente en el puerto publicado

Para qué se usa

Scrapers en Compose o Kubernetes

Un servicio de navegador junto a tus workers, configurado por completo con variables de entorno.

Frameworks de agentes

Dale a browser-use, Crawl4AI o Stagehand una URL de CDP en lugar de un Chrome local.

CI reproducible

Un tag de imagen fijado le da el mismo build abierto a cada ejecución del pipeline; con una clave de licencia, solo CC_VERSION de Pro fija el build con licencia.

Cualquier lenguaje

Cualquier cosa con un cliente CDP, desde Python y Node hasta Go o Rust, puede controlar el endpoint.

Clearcote está hecho para la privacidad, las pruebas, la investigación y la automatización lícita. Tú eres responsable de cómo lo usas y de respetar los términos de los sitios que visitas.

Qué plan lo incluye

La imagen de Docker, serve() y el endpoint CDP están en todos los planes. La imagen ejecuta el build abierto por defecto; pasa una clave de licencia (gratis con GitHub para un navegador a la vez) para ejecutar el build más reciente. El límite de un navegador de una clave gratuita aplica al conjunto de tus contenedores.

Comparar planes

Preguntas frecuentes

¿Qué imagen de Docker es?

teamflatearth/clearcote en Docker Hub, construida a partir del Dockerfile del repositorio público clearcote-browser. Ejecuta docker pull teamflatearth/clearcote para actualizar una copia antigua.

¿Es seguro publicar el puerto 9222?

Solo en una red de confianza. Un endpoint CDP da control total del navegador. Publícalo solo en el host con -p 127.0.0.1:9222:9222, o mantenlo en una red privada, y nunca lo expongas en una interfaz pública.

¿Puede el contenedor presentar una identidad de Windows?

Puedes configurar CC_PLATFORM=windows, pero en un contenedor Linux las métricas de fuentes y las fuentes del sistema siguen viniendo de Linux, y un test de huella digital lo nota. La persona de Linux por defecto es coherente. Para una identidad de Windows, ejecuta el build de Windows en Windows o usa navegadores alojados.

¿Cómo ejecuto el build con licencia en Docker?

Configura CLEARCOTE_LICENSE_KEY y monta un volumen en /opt/xdg-cache para que el motor se descargue una sola vez. Necesitas una imagen construida con el SDK 0.26.1 o posterior, y 0.30.0 o posterior para una clave gratuita de GitHub. El log de inicio indica qué motor obtuviste y si se consiguió la concesión de la licencia.

¿Por qué navigator.webdriver sigue en false?

El motor ya no lo activa a partir de --enable-automation, el flag que usa la automatización estándar, y de todos modos la imagen inicia el navegador sin ese flag. Conectar después un cliente por CDP no lo cambia.

Profundiza en la documentación

Características relacionadas

Prueba Clearcote

Un reemplazo directo para Playwright y Puppeteer, coherente hasta el handshake TLS, con un build de código abierto para empezar.

Gratis para un navegador con GitHub. Sin tarjeta.