Commit Graph
66 Commits
Author SHA1 Message Date
marchingphoenixandClaude Opus 4.5 f76443cbda feat: add Open WebUI external web loader endpoint
Add /load endpoint for Open WebUI's WEB_LOADER_ENGINE=external integration.
Uses document.body.innerText for content extraction.

Configure in Open WebUI:
  WEB_LOADER_ENGINE=external
  EXTERNAL_WEB_LOADER_URL=http://byparr:8191/load
  EXTERNAL_WEB_LOADER_API_KEY=<OWUI_API_KEY env var>

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-08-08 00:56:46 +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 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 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
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
CopilotandThePhaseless 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
CopilotandThePhaseless 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
ThePhaseless d8cd7cc571 remake dockerfile 2025-10-16 09:36:09 +00:00
ThePhaseless a5bdd2c144 use non-root user 2025-10-15 13:07:09 +00:00
ThePhaseless f8187deda1 install uv globally 2025-10-01 13:06:33 +00:00
ThePhaseless f98e823991 Migrate to camoufox (#235)
* use camoufox

* build custom branches

* organize compose

* ignore missing stubs

* add init method

* create ADDON PATH

* check if solving is required

* type checking and remove logger

* uv sync

* add timeout

* add descriptiuon

* cancel previous runs

* wildcard minor

* fix proxy

* syntax fix

* [skip ci] fix loop warning

* fix proxy format

* copy over docker ignore

* remove testing line

* comment out port expose

* remove idope

* use strict typechecking

* refactor

* adjust compose

* run init only before test

* try test without init

* add curl

* handle page response

* remove turnsile test

* fix dockerignore symlink

* use newer debian

* bump pytest

* add docker in docker in devcontaienr

* remove unused values

* handle timeouts

* fix edgecase

* use new envs for proxy

* remove init command

* remove testing line

* remove setuptools

* fix linters

* reimport

* readd setuptools

* better float handling
2025-09-05 23:08:35 +02:00
ThePhaseless d4c058e7dc use trixie as base 2025-08-17 03:19:10 +02:00
Levi 5a35117299 fix: handle zombie processes 2025-06-03 15:24:57 +02:00
ThePhaseless 55526308f6 bump debian version to bookworm 2025-05-18 01:03:12 +02:00
ThePhaseless 329235ba5e add devcontainer stage 2025-05-17 22:45:47 +00:00
ThePhaseless 090b5487e4 devcontainer tweaks 2025-05-17 20:50:13 +00:00
ThePhaseless 1fa6b66f3a fixes ctrl+c on docker run 2025-04-17 11:38:52 +00:00
ThePhaseless 332402652d switch to curl 2025-02-28 23:10:09 +01:00
ThePhaseless 2e8ed3fa9b remove apt caching 2025-02-28 19:16:09 +01:00
ThePhaseless a065b4b7ae remove invalid argument 2025-02-28 18:43:55 +01:00
ThePhaseless 565b076c67 cache apt and uv libs 2025-02-28 01:06:25 +01:00
ThePhaseless 0ea76ac000 add ca-certs 2025-02-27 23:29:47 +00:00
ThePhaseless 52f4b6110a docker way to install uv 2025-02-27 23:28:23 +00:00
ThePhaseless 8c9795150e cleanup dockerfile 2025-02-27 23:16:34 +00:00
ThePhaseless 44c3d5b512 dont upgrade packages 2025-02-27 20:31:37 +00:00
ThePhaseless bf1daabaf9 another attempt 2025-02-27 20:07:23 +00:00
ThePhaseless 9445ffc5f6 fix invalidating cache 2025-02-27 19:57:00 +00:00
ThePhaseless 67303951bb add version to container 2025-02-27 19:42:32 +00:00
ThePhaseless a912a32eea try to fix gha apt error 2025-02-20 21:34:07 +00:00
ThePhaseless 59104a3c6e [skip ci] readd symlink for chromedriver to fix arm64 2025-02-20 21:20:28 +00:00
ThePhaseless 5c5451785e remove forcing headless and handmade symlink 2025-02-20 20:57:05 +00:00
ThePhaseless eba16fc3de change interval to 15 minutes 2025-02-20 20:36:25 +00:00
ThePhaseless 4b5d82b4f1 remove apt python binaries 2025-01-27 20:56:50 +00:00
ThePhaseless c4159e5c38 disable headless on docker 2025-01-02 12:29:10 +00:00
ThePhaseless c37ab51179 combine apt installs to one 2024-12-11 01:04:08 +00:00
ThePhaseless b33444dc48 use matrix for build 2024-12-11 00:40:11 +00:00
ThePhaseless b8c8576e5a github actions shared lib fix 2024-12-11 00:21:07 +00:00
ThePhaseless 905d802a26 add back retires 2024-12-10 23:38:13 +00:00
ThePhaseless f99429fdea update all packages but install only needed 2024-12-10 23:28:29 +00:00
ThePhaseless 82130b77c0 fix docker and update readme 2024-12-10 22:48:35 +00:00
ThePhaseless faf7e5e51a migrate to uv 2024-12-10 22:16:30 +00:00
renovate[bot] 38b2ea0798 Update python Docker tag to v3.13 2024-11-30 12:59:43 +00:00
ThePhaseless 0775d107ad add version control and more verbose error return 2024-11-30 12:42:51 +00:00
ThePhaseless 0b2bf9e12a use dynamic driver symlink 2024-11-30 11:38:48 +00:00
ThePhaseless 6dc1133daf switch to bullseye to fix chromium not launching on arm 2024-11-26 12:19:52 +00:00
ThePhaseless c366ce7db6 add healthcheck 2024-11-25 10:19:09 +00:00
ThePhaseless 4453fa6a93 use sh file as cmd 2024-11-25 09:26:14 +00:00
ThePhaseless 8d9f433aca use chromium 2024-11-24 22:28:08 +00:00
ThePhaseless 8b9ef2604a fix dockerfile and add arm for testing 2024-11-24 22:13:47 +00:00