mirror of
https://github.com/CloakHQ/CloakBrowser.git
synced 2026-06-23 11:41:46 +02:00
docs: add Docker section to README, expand Dockerfile deps, bump to 0.1.3
This commit is contained in:
+5
-2
@@ -1,11 +1,14 @@
|
|||||||
FROM python:3.12-slim
|
FROM python:3.12-slim
|
||||||
|
|
||||||
# Playwright system deps
|
# Chromium system deps (matches fingerprint-chromium 142+ requirements)
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 \
|
libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 \
|
||||||
libdbus-1-3 libdrm2 libxkbcommon0 libatspi2.0-0 libxcomposite1 \
|
libdbus-1-3 libdrm2 libxkbcommon0 libatspi2.0-0 libxcomposite1 \
|
||||||
libxdamage1 libxfixes3 libxrandr2 libgbm1 libpango-1.0-0 \
|
libxdamage1 libxfixes3 libxrandr2 libgbm1 libpango-1.0-0 \
|
||||||
libcairo2 libasound2 libx11-xcb1 \
|
libcairo2 libasound2 libx11-xcb1 libfontconfig1 libx11-6 \
|
||||||
|
libxcb1 libxext6 libxshmfence1 \
|
||||||
|
libglib2.0-0 libgtk-3-0 libpangocairo-1.0-0 libcairo-gobject2 \
|
||||||
|
libgdk-pixbuf-2.0-0 libxss1 libxtst6 fonts-liberation \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|||||||
@@ -250,6 +250,30 @@ See the [`examples/`](examples/) directory:
|
|||||||
|
|
||||||
> ⭐ **Star this repo** to get notified when Chromium 145 and macOS builds drop.
|
> ⭐ **Star this repo** to get notified when Chromium 145 and macOS builds drop.
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
A ready-to-use [`Dockerfile`](Dockerfile) is included. It installs system deps, the package, and pre-downloads the stealth binary during build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build -t cloakbrowser .
|
||||||
|
docker run --rm cloakbrowser python examples/basic.py
|
||||||
|
```
|
||||||
|
|
||||||
|
The key steps in the Dockerfile:
|
||||||
|
1. **System deps** — Chromium requires ~15 shared libraries (`libnss3`, `libgbm1`, etc.)
|
||||||
|
2. **`pip install .`** — installs CloakBrowser + Playwright
|
||||||
|
3. **`ensure_binary()`** — downloads the stealth Chromium binary at build time (~200MB), so containers start instantly
|
||||||
|
|
||||||
|
To extend with your own script, just add a `COPY` + `CMD`:
|
||||||
|
|
||||||
|
```dockerfile
|
||||||
|
FROM cloakbrowser
|
||||||
|
COPY your_script.py /app/
|
||||||
|
CMD ["python", "your_script.py"]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** If you run CloakBrowser inside a web server with uvloop (e.g., `uvicorn[standard]`), use `--loop asyncio` to avoid subprocess pipe hangs.
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
**Binary download fails / timeout**
|
**Binary download fails / timeout**
|
||||||
@@ -264,20 +288,6 @@ You do NOT need `playwright install chromium`. CloakBrowser downloads its own bi
|
|||||||
playwright install-deps chromium
|
playwright install-deps chromium
|
||||||
```
|
```
|
||||||
|
|
||||||
**Missing system libraries on Linux (Docker)**
|
|
||||||
If you see errors about `libgbm`, `libnss3`, etc.:
|
|
||||||
```bash
|
|
||||||
apt-get install -y libgbm1 libnss3 libatk-bridge2.0-0 libxkbcommon0 libgtk-3-0
|
|
||||||
```
|
|
||||||
Or use `playwright install-deps chromium` which handles this automatically.
|
|
||||||
|
|
||||||
**Pre-download binary in Docker**
|
|
||||||
```python
|
|
||||||
# In your Dockerfile or entrypoint:
|
|
||||||
from cloakbrowser import ensure_binary
|
|
||||||
ensure_binary()
|
|
||||||
```
|
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
**Q: Is this legal?**
|
**Q: Is this legal?**
|
||||||
@@ -293,7 +303,7 @@ A: Possibly. Bot detection is an arms race. Source-level patches are harder to d
|
|||||||
A: Yes. Pass `proxy="http://user:pass@host:port"` to `launch()`.
|
A: Yes. Pass `proxy="http://user:pass@host:port"` to `launch()`.
|
||||||
|
|
||||||
**Q: Can I use this with Docker?**
|
**Q: Can I use this with Docker?**
|
||||||
A: Yes. Use `ensure_binary()` in your Dockerfile to pre-download the binary during image build.
|
A: Yes. A ready-to-use Dockerfile is included — see the [Docker](#docker) section above.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
__version__ = "0.1.2"
|
__version__ = "0.1.3"
|
||||||
|
|||||||
Reference in New Issue
Block a user