You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The shelfmark script is ready for testing: bash -c "$(curl -fsSL https://github.com/community-scripts/ProxmoxVED/raw/main/ct/shelfmark.sh)"
The configuration at /etc/shelfmark/.env is for bootstrapping the initial install. Customize the configuration via the Shelfmark UI.
Note: This is not in the official repo yet—it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.
Installation worked without any problems 👍🏽 I also configured a custom FlareSolverr and my Booklore instance which also worked like a charm.
Those things i notieced /do not work so far:
The update script crashes at the end:
⏳ Update Node.js 22
changed 10 packages in 7s
15 packages are looking for funding
run `npm fund`for details
✔️ Update Node.js 22
✔️ Update available: shelfmark 1.0.1 → 1.0.2
✔️ Stopped Service
✔️ Deployed: shelfmark (1.0.2)
added 188 packages, and audited 189 packages in 9s
36 packages are looking for funding
run `npm fund`for details
6 vulnerabilities (2 moderate, 4 high)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit`for details.
> cwad-frontend@1.0.0 build
> tsc && vite build
vite v5.4.21 building for production...
transforming (1) index.html[baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D`
✓ 130 modules transformed.
dist/index.html 1.82 kB │ gzip: 0.82 kB
dist/assets/Inter-Variable-c8O0ljhh.ttf 874.71 kB
dist/assets/index-CAPrsFhF.css 57.31 kB │ gzip: 10.50 kB
dist/assets/index-BdGQJowc.js 416.17 kB │ gzip: 118.60 kB │ map: 1,569.97 kB
✓ built in 3.11s
Using CPython 3.12.12
Creating virtual environment at: ./venv
Activate with: source venv/bin/activate
error: No virtual environment found; run `uv venv` to create an environment, or pass `--system` to install into a non-virtual environment
✖️ in line 50: exit code 2 (Misuse of shell builtins (e.g. syntax error)): while executing command uv pip install -r requirements-base.txt
The service takes a pretty long time (~30sec) to stop (when doing a restart or update)
The version shown in the UI is dev instead of the actual version. I suppose that is because the app is not run from the official docker image.
For point 3, i took a look at the shelfmark Dockerfile and saw that they use a RELEASE_VERSION variable to display the version. I've created a PR to include this
maybe i understand it wrong, but can i just search for an ISBN? For Example: 9780395647387
api.ts:56 GET http://192.168.3.12:8084/api/search?query=9780395647387&sort=relevance 503 (SERVICE) useSearch.ts:194 Search failed: Error: Unable to reach download source. Network restricted or mirrors are blocked. at ke (api.ts:97:13) at async useSearch.ts:183:23
aahh nvm, its for audiobookshelf and co? then i cant test the function, i dont have any of this scripts.
so in build fine, but i dont know if it work fine ^^
@MickLesk the script as-is will not work unless you setup FlareSolverr. I think I'll add something to ask if the end-user wants to install it, or use an existing FlareSolverr instance.
@vhsdream Isn't there an internal bypasser built into the shelfmark backend?
There only is if we decide to choose to install it's dependencies. And I want to give the option of using that, installing FlareSolverr in the LXC and using it, using an existing FlareSolverr LXC, or disabling captcha bypass altogether (although not sure why you would want to do that).
I'm not sure if the internal bypasser is working, since it seems that it just hangs; but it could also just be that the mirrors for all the sites are down.
All right - the install script now let's you choose between using the internal bypasser, installing FlareSolverr, or using an external bypasser. Also none at all.
Also, fixed the problem with the service taking forever to restart or shutdown.
There does appear to be a small bug if you are using Byparr for the external bypasser, and you set the timeout to be anything other than 60 seconds in Shelfmark - no matter what it'll default to 60 seconds. I haven't decided who to bother about this, since it could be fixed by either dev.
I tested the script using the mtehods internal bypasser and FlareSolverr installed along Shelfmarek and both worked. Although, the internal bypasser is having problems if the whole LXCs internet traffic is routed through a VPN. But that does not really seem like a problem regarding the script 😄
Activity
github-actions commentedon Jan 24, 2026
The shelfmark script is ready for testing:
bash -c "$(curl -fsSL https://github.com/community-scripts/ProxmoxVED/raw/main/ct/shelfmark.sh)"The configuration at
/etc/shelfmark/.envis for bootstrapping the initial install. Customize the configuration via the Shelfmark UI.Note: This is not in the official repo yet—it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.
tomfrenzel commentedon Jan 25, 2026
Installation worked without any problems 👍🏽 I also configured a custom FlareSolverr and my Booklore instance which also worked like a charm.
Those things i notieced /do not work so far:
devinstead of the actual version. I suppose that is because the app is not run from the official docker image.For point 3, i took a look at the shelfmark Dockerfile and saw that they use a
RELEASE_VERSIONvariable to display the version. I've created a PR to include thisMickLesk commentedon Jan 26, 2026
maybe i understand it wrong, but can i just search for an ISBN? For Example: 9780395647387
aahh nvm, its for audiobookshelf and co? then i cant test the function, i dont have any of this scripts.
so in build fine, but i dont know if it work fine ^^
vhsdream commentedon Jan 26, 2026
@MickLesk the script as-is will not work unless you setup FlareSolverr. I think I'll add something to ask if the end-user wants to install it, or use an existing FlareSolverr instance.
vhsdream commentedon Jan 26, 2026
Aha - I misunderstood what they meant by 'external' bypasser: I'll need to refactor a bit more.
tomfrenzel commentedon Jan 26, 2026
@vhsdream Isn't there an internal bypasser built into the shelfmark backend?
tomfrenzel commentedon Jan 26, 2026
There is still an error in the update script at line 54:
mv /opt/start.sh.bak /opt/start.shshould bemv /opt/start.sh.bak /opt/shelfmark/start.shvhsdream commentedon Jan 26, 2026
There only is if we decide to choose to install it's dependencies. And I want to give the option of using that, installing FlareSolverr in the LXC and using it, using an existing FlareSolverr LXC, or disabling captcha bypass altogether (although not sure why you would want to do that).
1 remaining item
vhsdream commentedon Jan 26, 2026
I'm not sure if the internal bypasser is working, since it seems that it just hangs; but it could also just be that the mirrors for all the sites are down.
vhsdream commentedon Jan 26, 2026
All right - the install script now let's you choose between using the internal bypasser, installing FlareSolverr, or using an external bypasser. Also none at all.
Also, fixed the problem with the service taking forever to restart or shutdown.
There does appear to be a small bug if you are using Byparr for the external bypasser, and you set the timeout to be anything other than 60 seconds in Shelfmark - no matter what it'll default to 60 seconds. I haven't decided who to bother about this, since it could be fixed by either dev.
tomfrenzel commentedon Jan 27, 2026
I tested the script using the mtehods internal bypasser and FlareSolverr installed along Shelfmarek and both worked. Although, the internal bypasser is having problems if the whole LXCs internet traffic is routed through a VPN. But that does not really seem like a problem regarding the script 😄
tomfrenzel commentedon Jan 27, 2026
The update script still throws an error (With both installation ways i wrote above):
Full log:
vhsdream commentedon Jan 27, 2026
Thanks @tomfrenzel - fixed that additional sed issue. I had a closing bracket in the wrong spot.
tomfrenzel commentedon Jan 27, 2026
Yup, its working now 👍🏽
github-actions commentedon Jan 30, 2026
A PR has been created for shelfmark: community-scripts/ProxmoxVE#11371
michelroegl-brunner commentedon Jan 31, 2026
Merged with #11371 in ProxmoxVE
github-actions commentedon Jan 31, 2026
Files deleted with PR #1382