Files
hassio-addons/calibre_web/CHANGELOG.md
Alexandre 9204b31af8 fix(calibre-web): trust the supervisor range for the ingress auth header (#3010)
* fix(calibre-web): trust the supervisor range for the ingress auth header

Reimplements #3004 from the code as it stood before it, in one statement.

#3004 derived the addon's own address and wrote it unconditionally on every
start. That address changes across restarts, so the value had to be rewritten
each boot, which erased anything the user had added to the same field from the
calibre-web admin page -- and a follow-up that preserved their entries needed a
merge pass and a record of what had been injected, because a preserved stale
address stays trusted after supervisor hands it to another addon.

Trusting 172.30.32.0/23 removes the reason for all of it: the range covers
whichever address the addon gets, so the value is constant and can be written
once. Both forms are listed because calibre-web listens dual-stack and an ipv4
entry never matches an ipv4-mapped address; /119 is the mapped equivalent of
/23.

The WHERE clause is what keeps it out of the user's way. The list is written
only when the range is absent, which is true on a fresh 0.6.27 install and on
an install still carrying #3004's per-address list, and false afterwards -- so
an entry added in the admin page for a reverse proxy outside the supervisor
network survives every later start.

The trade-off is that any addon on the supervisor network can now present
X-WebAuth-User to port 8083 and be logged in. Maintainer's call, taken
knowingly in preference to the machinery the narrow list required.

The tolerated failure from #3004 is kept: the column only exists once
calibre-web 0.6.27+ has migrated app.db and cont-init runs first, so the
statement is allowed to fail and the next start applies it. The sqlite error
is now included in the warning rather than dropped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(calibre-web): guard on the mapped range and keep existing entries

Addresses the review on #3010, both findings inside the one statement.

Codex, Copilot and CodeRabbit all noted the WHERE clause tested only
172.30.32.0/23, so a value carrying the ipv4 range without the mapped form
would skip the update forever while ingress stayed rejected -- a plausible
state, since that is exactly what someone adds by hand after reading that the
supervisor network is the source. Rather than test both, the guard now tests
::ffff:172.30.32.0/119 alone. That is the form ingress actually needs, given
calibre-web listens dual-stack, and the form nobody types by hand, so it
serves as the marker that this already ran. One substring either way.

Copilot and CodeRabbit also noted the assignment replaced the whole column,
losing an administrator entry on the first start. The required list is now
prepended to the existing value instead of replacing it. No case expression
is needed for the empty and NULL cases : the trailing comma that leaves
behind is an empty entry, which calibre-web's parser skips.

Both together cost one `||coalesce(...)` and a different substring. The
statement still runs at most once, and the duplicates it can leave behind are
entries calibre-web skips, or addresses inside the range now trusted anyway.

Checked against a transcription of cps/reverse_proxy_auth.py from 0.6.27 :
every produced value parses with nothing ignored, ::ffff:172.30.33.10 is
trusted and ::ffff:192.168.1.99 is not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 15:08:03 +02:00

9.7 KiB

0.6.27.2 (2026-08-23)

  • Fix: trust the whole supervisor network range for the ingress auth header instead of the addon's own address, which changes across restarts. The list is only written when that range is missing, so an entry added in the calibre-web admin page is no longer erased on every start (https://github.com/alexbelgium/hassio-addons/pull/3010)

0.6.27.1 (2026-08-23)

0.6.27 (2026-08-13)

0.6.26-2 (2026-04-06)

  • Fix: Install calibre (calibredb) at build time to fix 500 error when downloading books

0.6.26 (2026-02-07)

0.6.25 (2025-08-30)

0.6.24-10 (2025-05-28)

  • Fix migration script
  • Allow access to Calibre folder through /addon_configs/xxx-Calibre

0.6.24 (2024-11-23)

0.6.23 (2024-08-10)

0.6.22 (2024-07-13)

0.6.21-7 (2024-01-12)

  • Minor bugs fixed

0.6.21-5 (2024-01-12)

  • ⚠ MAJOR CHANGE : switch to the new config logic from homeassistant. Your configuration files will have migrated from /config/hassio_addons/calibre-web to a folder only accessible from my Filebrowser addon called /addon_configs/something-calibre-web. This avoids the addon to mess with your homeassistant configuration folder, and allows to backup the options. Migration of data, custom configs, and custom scripts should be automatic. Please be sure to update all your links however ! For more information, see here : https://developers.home-assistant.io/blog/2023/11/06/public-addon-config/ https://github.com/alexbelgium/hassio-addons/issues/1177

0.6.21-2 (2023-11-05)

0.6.21 (2023-10-28)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20 (2023-08-26)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls225 (2023-08-26)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls224 (2023-08-19)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls222 (2023-08-12)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls221 (2023-08-05)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls220 (2023-07-23)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls219 (2023-07-22)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls218 (2023-07-15)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls217 (2023-07-08)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls216 (2023-07-01)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls215 (2023-06-24)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls214 (2023-06-17)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls213 (2023-06-10)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls212 (2023-06-03)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls211-2 (2023-05-30)

0.6.20-ls211 (2023-05-27)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls210 (2023-05-19)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls209 (2023-05-13)

  • Update to latest version from linuxserver/docker-calibre-web
  • Feat : cifsdomain added

0.6.20-ls208-2 (2023-05-06)

  • Minor bugs fixed

0.6.20-ls208 (2023-05-06)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls207-6 (2023-05-05)

  • Minor bugs fixed

0.6.20-ls207-3 (2023-05-05)

  • Minor bugs fixed

0.6.20-ls207-2 (2023-05-05)

0.6.20-ls207 (2023-04-23)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls206 (2023-04-21)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls205 (2023-04-15)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls203 (2023-04-01)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.20-ls202 (2023-03-31)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls200 (2023-03-24)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls199 (2023-03-18)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls198 (2023-03-11)

  • Update to latest version from linuxserver/docker-calibre-web
  • Implemented healthcheck

0.6.19-ls197 (2023-03-04)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls196 (2023-02-25)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls195 (2023-02-19)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls194 (2023-02-04)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls193 (2023-01-28)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls192 (2023-01-14)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls191 (2022-12-31)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls190 (2022-12-25)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls189 (2022-12-17)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls187 (2022-12-10)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls186 (2022-12-01)

  • Update to latest version from linuxserver/docker-calibre-web
  • WARNING : update to supervisor 2022.11 before installing

0.6.19-ls185 (2022-11-26)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls184 (2022-11-19)

  • Update to latest version from linuxserver/docker-calibre-web
  • Use nobrl (#556)

0.6.19-ls183 (2022-11-11)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls182 (2022-11-02)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls181 (2022-10-27)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls180 (2022-10-25)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls179 (2022-10-20)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls178 (2022-10-13)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls177 (2022-10-06)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls176 (2022-09-28)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls175 (2022-09-22)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls174 (2022-09-15)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls173 (2022-09-09)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls172 (2022-08-25)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls171 (2022-08-11)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.19-ls170 (2022-08-04)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls170 (2022-07-28)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls169 (2022-07-16)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls168 (2022-07-14)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls167 (2022-06-30)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls166 (2022-06-23)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls165 (2022-06-16)

  • Update to latest version from linuxserver/docker-calibre-web
  • Feat : ingress autologin (thanks @met67)

0.6.18-ls164 (2022-06-09)

  • Update to latest version from linuxserver/docker-calibre-web
  • Fix : ingress (with @met67)

0.6.18-ls163 (2022-05-26)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls162 (2022-05-19)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls161 (2022-05-11)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls160 (2022-05-05)

  • Update to latest version from linuxserver/docker-calibre-web

0.6.18-ls159 (2022-05-03)

  • Update to latest version from linuxserver/docker-calibre-web

v5.41.0-ls158 (2022-04-29)

  • Update to latest version from linuxserver/docker-calibre-web

5.41.0 (2022-04-29)

  • Update to latest version from linuxserver/docker-calibre-web
  • Initial release