ThePhaseless
ecdd4c112a
docs(readme): add Proxmox OCI/LXC shm_size workaround
...
Adds the Docker Compose options from #283 (comment) that resolve
multiprocessing/camoufox FileNotFoundError errors on Proxmox OCI/LXC.
Closes #283
2026-07-04 18:24:54 +02:00
ThePhaseless
885a24cf16
fix(docker): use IPv4 loopback in HEALTHCHECK to support IPv6-enabled networks
...
On IPv6-enabled Docker networks, 'localhost' resolves to ::1 first,
but uvicorn binds to 0.0.0.0 by default, so the healthcheck can fail.
Using 127.0.0.1 avoids the IPv6/IPv4 mismatch.
Fixes #346
2026-07-04 18:06:31 +02:00
ThePhaseless
8c3e7a9fe4
refactor: use pydantic-settings for environment configuration
...
- Add pydantic-settings as direct dependency
- Replace os.getenv calls with typed Settings class
- Add BLOCK_MEDIA and RETURN_ONLY_COOKIES env defaults
2026-07-04 17:42:53 +02:00
ThePhaseless
80a608a629
feat: add blockMedia, returnOnlyCookies, PDF handling and fix timeout/networkidle
...
- Catch both builtins.TimeoutError and playwright TimeoutError as 408
- Check challenge title before networkidle to avoid timeout on Cloudflare interstitial
- Add blockMedia and returnOnlyCookies request options
- Return raw PDF bytes as base64 with contentType application/pdf
- Skip tests on 408 timeouts; add PDF handling test
2026-07-04 17:34:54 +02:00
ThePhaseless
4800ef7f5f
feat: migrate from camoufox to invisible_playwright
...
- Replace camoufox[geoip] with invisible_playwright git dependency
- Switch playwright-captcha framework from CAMOUFOX to PLAYWRIGHT
- Remove camoufox addon path from consts
- Add git to Docker base image; fetch invisible_playwright binary
- Make /cache writable for runtime USER 1000
2026-07-04 17:34:48 +02:00
ThePhaseless
10aa77fb00
fix: revert to camoufox 0.4.*, pin playwright==1.60.*
...
cloverlabs-camoufox 0.6.0 was a confirmed regression (3/6 tests failed
with 'Cloudflare iframes not found' vs 6/6 passing on camoufox 0.4.11).
Revert to camoufox[geoip]==0.4.* and pin playwright==1.60.* (exact pin
to avoid the 1.61 protocol error).
2026-07-04 16:14:37 +02:00
renovate[bot]
7a306ede63
chore(config): migrate config renovate.json ( #371 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-04 15:53:18 +02:00
ThePhaseless
b177dc6ad4
feat: migrate to cloverlabs-camoufox, pin playwright<1.61, add tini as PID 1
...
- Migrate from daijro/camoufox==0.4.* to cloverlabs-camoufox==0.6.*
(drop-in API: same import path, same kwargs)
- Pin playwright>=1.58,<1.61 to prevent protocol error
(Browser.setDefaultViewport viewport.isMobile incompatibility with
camoufox bundled Firefox v135.0.1-beta.24; upstream daijro/camoufox#653)
- Bump fastapi 0.136->0.139, pytest 9.0->9.1, pytest-asyncio 1.3->1.4
(absorbs Renovate PRs #360 , #359 , #357 )
- Remove dead deptry DEP002 pyautogui ignore (cloverlabs dropped pyautogui)
- Add tini to Dockerfile base image and set as ENTRYPOINT PID 1
(fixes zombie/defunct Firefox subprocesses: [Socket Process],
[RDD Process], [Utility Process] — verified: 21 zombies without tini,
0 zombies with tini after 5 POST /v1 requests)
- Remove init: true from compose.yaml (tini makes it redundant)
- Remove --init/init: true checkbox from bug report template
Closes #339 , #340 , #360 , #359 , #357 , #366
2026-07-04 15:18:21 +02:00
renovate[bot]
d9c56163cc
chore(deps): update sigstore/cosign-installer action to v4.1.2 ( #350 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-04 05:24:24 -07:00
renovate[bot]
e653c23998
chore(deps): update actions/checkout action to v7 ( #363 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-04 05:24:21 -07:00
renovate[bot]
cf744cf090
chore(deps): update ghcr.io/devcontainers/features/docker-in-docker docker tag to v4 ( #365 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-04 05:24:13 -07:00
ThePhaseless
912e722057
fix(docker): pin base to ubuntu:24.04 to fix broken build
...
ubuntu:latest rolled to 26.04 LTS on 2026-05-06, breaking the Docker
build for 50+ consecutive CI runs. Playwright 1.58.0 (pinned in uv.lock)
cannot install firefox deps for ubuntu26.04-x64 -- it prints 'Cannot
install dependencies for ubuntu26.04-x64 with Playwright 1.58.0!' and
installs nothing, leaving libgtk-3.so.0 absent. Camoufox's bundled
Firefox then fails to load XPCOM at runtime:
libgtk-3.so.0: cannot open shared object file: No such file or directory
Couldn't load XPCOM.
Pinning to 24.04 (the last-known-good base, supported by Playwright 1.58)
restores libgtk-3-0t64 and the rest of the GTK runtime. Adopted from PR #362
which independently diagnosed the same issue.
Verified locally:
- app stage: ldconfig shows libgtk-3.so.0 present (was absent)
- test target: 6/6 tests pass (was BrowserType.launch failure)
- runtime: POST /v1 returns 200 status:ok (was 500 libgtk-3 traceback)
2026-07-04 13:48:24 +02:00
renovate[bot]
132db521ec
chore(deps): update actions/github-script action to v9 ( #341 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-04 19:15:00 +02:00
renovate[bot]
7b5261b539
chore(deps): update sigstore/cosign-installer action to v4 ( #344 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-04 19:14:41 +02:00
renovate[bot]
ce6b4e84d6
chore(deps): update dependency pytest to v9.0.3 [security] ( #342 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 01:17:49 +00:00
renovate[bot]
680c5cd709
fix(deps): update dependency fastapi to ==0.136.* ( #343 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-16 23:32:34 +00:00
ThePhaseless
2934fb5571
add lockfile maintenance
2026-03-30 12:42:25 +00:00
Copilot and ThePhaseless
103b5f5c83
Reduce Docker image size ( #337 )
...
* Initial plan
* reduce docker image size: clean caches, remove apt upgrade, use --no-install-recommends
Co-authored-by: ThePhaseless <33990351+ThePhaseless@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: ThePhaseless <33990351+ThePhaseless@users.noreply.github.com >
2026-03-21 13:31:49 +01:00
ThePhaseless
6993294ffc
Support running the container with arbitrary non-root users ( #334 )
...
Fixes #331
Co-authored-by: nathan <nathan@nzm.ca >
2026-03-19 15:05:38 +01:00
renovate[bot]
1064addf5e
chore(deps): update dependency deptry to ==0.25.* ( #335 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-19 04:58:07 +00:00
Copilot and ThePhaseless
27040fdad9
Fix healthcheck to respect PORT environment variable ( #330 )
...
* Initial plan
* Fix healthcheck to respect PORT environment variable
Co-authored-by: ThePhaseless <33990351+ThePhaseless@users.noreply.github.com >
* Remove explanatory comment from Dockerfile HEALTHCHECK
Co-authored-by: ThePhaseless <33990351+ThePhaseless@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: ThePhaseless <33990351+ThePhaseless@users.noreply.github.com >
2026-03-10 21:46:31 +01:00
renovate[bot]
353eb53280
chore(deps): update docker/login-action action to v4 ( #325 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-10 20:53:19 +01:00
renovate[bot]
4c328b2c82
chore(deps): update docker/setup-qemu-action action to v4 ( #326 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-10 20:53:11 +01:00
renovate[bot]
280c20136a
chore(deps): update docker/setup-buildx-action action to v4 ( #327 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-10 20:53:03 +01:00
renovate[bot]
4e1761644c
chore(deps): update docker/metadata-action action to v6 ( #328 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-10 20:52:56 +01:00
renovate[bot]
5a28a99203
chore(deps): update docker/build-push-action action to v7 ( #329 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-10 20:52:45 +01:00
renovate[bot]
818b54848c
fix(deps): update dependency fastapi to ==0.135.* ( #324 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-02 02:15:47 +00:00
renovate[bot]
740efc573e
fix(deps): update dependency fastapi to ==0.134.* ( #323 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-28 01:00:34 +00:00
renovate[bot]
1a18bbfe1a
fix(deps): update dependency fastapi to ==0.133.* ( #321 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 19:11:48 +00:00
renovate[bot]
1826610937
fix(deps): update dependency fastapi to ==0.132.* ( #320 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 02:09:13 +00:00
renovate[bot]
27ee7c2fb8
fix(deps): update dependency fastapi to ==0.131.* ( #319 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 20:57:33 +00:00
renovate[bot]
8575316da6
fix(deps): update dependency fastapi to ==0.129.* ( #317 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-12 22:24:32 +00:00
ThePhaseless
dac2f60b46
[skip ci] add update info and fix md linting
2026-02-08 15:16:30 +00:00
ThePhaseless
b5535fba02
[skip ci] Revise local install instructions in README
...
Updated installation instructions to include cloning the repository and revised the steps.
2026-02-08 15:30:50 +01:00
ThePhaseless
3e6a847cf2
force string on yes no label
2026-02-08 14:23:58 +00:00
ThePhaseless
c1d478f7b2
Fix numbering in README instructions
2026-02-08 14:00:17 +01:00
renovate[bot]
1e726296a3
chore(deps): update python to ==3.14.* ( #261 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
v2.1.0
2026-02-08 12:42:41 +00:00
ThePhaseless
1ba0bb3c5e
add proxy per request
2026-02-08 12:17:06 +00:00
ThePhaseless
a909098b43
Add Usage section to readme and add logo
2026-02-08 12:02:10 +00:00
ThePhaseless
fadcef5fc2
add AGENTS.md
2026-02-08 11:52:18 +00:00
ThePhaseless
5af383ac3e
add toml extension to devcontainer
2026-02-08 11:50:46 +00:00
ThePhaseless
d15707c684
update packages
2026-02-08 11:50:37 +00:00
ThePhaseless
4be9674f82
ignore linter warning
2026-02-08 11:50:33 +00:00
ThePhaseless
a35732596e
add main tag info
2026-02-08 11:46:21 +00:00
renovate[bot]
f5d4b02d64
chore(deps): update dependency ruff to ==0.15.* ( #304 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-04 01:01:14 +00:00
ThePhaseless
d9517de15f
Add main tag troubleshooting checkbox to bug report template
2026-01-10 09:48:37 +01:00
renovate[bot]
c4c924ead0
fix(deps): update dependency fastapi to ==0.128.* ( #299 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-27 22:05:29 +00:00
ThePhaseless
8bf82a081a
[skip ci] remove claude code reviews
2025-12-26 19:57:34 +00:00
renovate[bot]
98de158d00
chore(deps): update actions/github-script action to v8 ( #280 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-26 19:37:10 +01:00
renovate[bot]
e894e0bf73
chore(deps): update dependency pytest to v9 ( #271 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-26 19:36:35 +01:00