Camofox Browser
Desplegar Camofox: paquete, binario, bibliotecas nativas y disponibilidad real
Planifica un despliegue reproducible con Node 22, vínculo explícito y pruebas distintas de salud HTTP y renderizado de una página.
Qué aprenderás
- Controla paquete, distribución del navegador y entorno nativo por separado.
- Un Dockerfile parcialmente fijado no es inmutable.
- Un servicio inactivo saludable aún necesita probar una página.
Antes de empezar
- HTTP y JSON básicos
- Servicio aislado y página propia o permitida
Explica la frontera real del servicio y verifica la muestra de observación o ciclo propuesta.
Conclusiones clave
- Controla paquete, distribución del navegador y entorno nativo por separado.
- Un Dockerfile parcialmente fijado no es inmutable.
- Un servicio inactivo saludable aún necesita probar una página.
El paquete JavaScript es solo un artefacto
El paquete revisado requiere Node 22 o posterior y arranca con node server.js. Depende de camoufox-js, playwright-core y SQLite nativo. Instalar dependencias npm no demuestra que el navegador arranque. Registra revisión, distribución del navegador, sistema operativo y arquitectura como partes independientes del manifiesto.
El README documenta descarga postinstall y CAMOUFOX_EXECUTABLE para una distribución ya administrada. Advierte que el ejecutable externo necesita los archivos acompañantes, no solo un binario aislado. Revisa scripts antes de ejecutarlos. Para reproducibilidad, fija y verifica artefactos en vez de depender del contenido futuro de una URL latest.
Leer el contenedor como mapa de dependencias
El Dockerfile inspeccionado usa node:22-trixie-slim e incluye bibliotecas gráficas, de audio, fuentes, renderizado por software y Xvfb. Fija versión y release de Camoufox, mientras otra descarga usa el último yt-dlp. Por tanto, no es completamente inmutable por fijar un solo componente. Registra o fija todos los artefactos pertinentes para tu política de reconstrucción.
También instala herramientas para dependencias nativas y copia directorios mcp y plugins necesarios para importaciones. Sus comentarios describen fallos que pueden esconderse tras un endpoint HTTP saludable. No elimines bibliotecas o directorios para acelerar la imagen solo porque sus nombres parezcan ajenos a REST: verifica importaciones y la primera pestaña real en la arquitectura destino.
Separar escucha, salud y trabajo útil
Configura CAMOFOX_BIND_HOST explícitamente. Si está vacío, el servidor pasa un host no especificado a listen; no supongas que solo escucha en loopback. Para una prueba local, usa 127.0.0.1 y CAMOFOX_ACCESS_KEY. Un despliegue remoto necesita acceso autenticado, transporte seguro y salida de red controlada.
GET /health puede indicar éxito con browserRunning false tras un cierre inactivo intencional. Es compatible con arranque diferido, no demuestra renderizado. La aceptación necesita una prueba de página permitida, su instantánea y limpieza de recursos. Este capítulo ofrece una lista de despliegue, sin afirmar que se construyera la imagen o ejecutara todo el proyecto durante la revisión.
Pasos de implementación
- 1
Revisa paquete fijo y scripts de instalación.
- 2
Registra navegador y dependencias por arquitectura.
- 3
Vincula loopback y configura la clave global.
- 4
Comprueba /health y después una página permitida con su instantánea.
Ejemplo para copiar
{
"NODE_ENV": "production",
"CAMOFOX_BIND_HOST": "127.0.0.1",
"CAMOFOX_PORT": "9377",
"CAMOFOX_CRASH_REPORT_ENABLED": "false",
"secretRequired": "CAMOFOX_ACCESS_KEY proporcionada por separado"
}Preguntas frecuentes
¿Salud HTTP significa navegador disponible?
No. El cierre inactivo intencional puede mantener salud correcta con browserRunning false. Prueba una página por separado.
¿Puedo copiar solo el ejecutable externo?
El README exige la distribución completa con archivos acompañantes. Verifica su contenido documentado.
Fuentes
- README.mdFuente verificada 2026-09-08
- package.jsonFuente verificada 2026-09-08
- DockerfileFuente verificada 2026-09-08
- lib/auth.jsFuente verificada 2026-09-08
- lib/snapshot.jsFuente verificada 2026-09-08
- lib/extract.jsFuente verificada 2026-09-08
- lib/config.jsFuente verificada 2026-09-08
- lib/reporter.jsFuente verificada 2026-09-08
- lib/page-lease.jsFuente verificada 2026-09-08
- server.jsFuente verificada 2026-09-08
- tests/unit/snapshot.test.jsFuente verificada 2026-09-08
- tests/unit/auth.test.jsFuente verificada 2026-09-08