DocuSeal switched to its own PDFium fork (upstream commit "adjust pdfium",
2026-08-15) and now attaches functions that only exist in that build, e.g.
FPDFPage_GetAnnotCountRaw from the added fpdf_annots_raw.h. The generic
bblanchon/pdfium-binaries library the script installed does not export them,
so lib/pdfium.rb raises FFI::NotFoundError while Rails eager-loads and both
docuseal.service and docuseal-sidekiq.service fail to start:
Unable to load application: FFI::NotFoundError: Function
'FPDFPage_GetAnnotCountRaw' not found in [libpdfium.so]
Install the library from docusealco/pdfium-binaries instead, matching the
upstream Dockerfile. It is only published as a musl build (DocuSeal's image is
Alpine based), so the musl runtime is installed and its library directory is
added to the loader search path - the shared object needs "libc.so" (musl) at
dlopen time. Verified on glibc: the library loads, resolves the raw annotation
functions and renders pages correctly.
The update path now refreshes PDFium too, so existing containers are repaired
by running "update" even when DocuSeal itself is already up to date.
The release-tag resolution used raw unauthenticated curl calls, which
ignore GITHUB_TOKEN and fail with curl exit 22 on the shared 60/hr
unauthenticated rate limit - after the container is already created.
Resolve via the existing github_api_call helper (auth + retries +
rate-limit diagnosis), matching proxmox-backup-server-install.sh.
Also collapses the two identical VictoriaLogs /releases/latest calls
into one.
Fixescommunity-scripts/ProxmoxVE#16606
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* Shelfmark: fix internal bypasser under the gevent worker
The internal captcha bypasser never worked on this install. Shelfmark is served
by gunicorn's GeventWebSocketWorker, and DOCKERMODE controls whether the bypass
browser runs in a helper process "isolated from gunicorn/gevent" (upstream's
_get_via_subprocess). With DOCKERMODE=false the SeleniumBase CDP browser starts
inside the monkey-patched loop, its asyncio websocket never connects, and every
bypass dies at "Pure CDP browser startup timed out after 45s" — searches then
burn their whole retry budget and surface as "mirrors are blocked".
Set DOCKERMODE=true for deployment type 1, and migrate existing installs on
update. The flag is misnamed upstream: it gates gevent isolation, not Docker.
Also drop chromium.service. Nothing in Shelfmark connects to port 9222 — the
bypasser launches its own browser on a random port — so it only consumed
~226MB. With DOCKERMODE enabled it is additionally killed by Shelfmark's
orphan-process reaper (pkill -f chromium) on every bypass and respawned by
systemd, since an LXC shares its PID namespace.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Ln3yVj3sWHG2c6T78W1we
* Shelfmark: address review — one check, drop comments
Collapse the chromium.service removal and the DOCKERMODE migration into the
single internal-bypasser check, as every affected install has both. Guard the
disable so a second update run does not fail on the removed unit, matching
esphome.sh. Drop the explanatory comments.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Ln3yVj3sWHG2c6T78W1we
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Add securo (ct)
* fix: src
* securo: enable nginx site via nginx_enable_site helper
Replaces the manual symlink + default removal + restart with the core
helper, which also runs nginx -t before restarting and enables the unit.
---------
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
Co-authored-by: MickLesk <mickey.leskowitz@gmail.com>
* Add mumble (ct)
* Update mumble.sh to source new build function
Removed local core checkout instructions and added new source for build.func.
---------
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
* Add newt (ct)
* Modify build function source and var_arm64 default
Updated source for build function and changed default value for var_arm64.
---------
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
Ampache 8.0.0 dropped the php8.4 prebuilt zip in favor of php8.5, so
new installs and updates could no longer find a matching release
asset. Install script now provisions PHP 8.5; update script detects
existing PHP 8.4 containers and upgrades them to 8.5 before fetching
the new release.
Closes#16482
libreoffice-listener.service binds 127.0.0.1:2002, and unoserver — started
with no --uno-port — defaults to the same port and launches its own
LibreOffice. The second soffice.bin cannot bind and spins in its URP Acceptor
thread indefinitely, burning a full core from boot.
It stays invisible because unoserver's client side dials 127.0.0.1:2002 and
reaches the listener's instance, so conversions succeed and systemctl --failed
stays empty.
unoserver supervises its own LibreOffice, so the separate listener is
redundant; port 2002 is still served after the change. Both
Requires=libreoffice-listener lines are dropped with it, and update_script()
migrates existing installs, which all still carry the collision.