Skip to content

Feature/calibre content server - #1507

Closed
benjitobz wants to merge 2 commits into
crocodilestick:mainfrom
benjitobz:feature/calibre-content-server
Closed

Feature/calibre content server#1507
benjitobz wants to merge 2 commits into
crocodilestick:mainfrom
benjitobz:feature/calibre-content-server

Conversation

@benjitobz

@benjitobz benjitobz commented Aug 27, 2026

Copy link
Copy Markdown

NOTE: I created a PR in Calibre-Web and Calibre-Web-Automated, the implementation is the same across all three.

Been meaning to do this for awhile. Calibre-Web already knows where the library and the calibre binaries are, but there's no way to run calibre's own content server from it.

What this adds

Calibre-Web runs calibre-server as a child process, configured under Basic
Configuration → Feature Configuration:

  • "Enable Calibre Content Server" checkbox, with port/username/password appearing once
    it's ticked — same data-control/data-related pattern as the Kobo and upload settings.
  • "Allow Anonymous Writes" hides the credential fields and starts the server with
    --enable-local-write --trusted-ips 0.0.0.0/0,::/0.
  • With credentials it starts with --enable-auth --auth-mode basic and a generated user
    db, so ordinary HTTP clients can authenticate.
  • Starts on boot when enabled, restarts on save only if one of its own settings changed,
    and stops on shutdown and before the os.execv restart so the new process doesn't hit
    a port conflict.

Port, username and password can also come from CALIBRE_SERVER_PORT,
CALIBRE_SERVER_USERNAME and CALIBRE_SERVER_PASSWORD for docker setups. Env values win,
never get written to the db, and their fields render disabled.

@benjitobz

Copy link
Copy Markdown
Author

Noticed some issues with this, going to close and reopen once I figure out a better approach.

@benjitobz benjitobz closed this Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant