Files
hassio-addons/sabnzbd/CHANGELOG.md
Alexandre 8341e542fb feat(sabnzbd): enable Home Assistant ingress (#3019)
* feat(sabnzbd): enable Home Assistant ingress

The add-on already carried a complete but disabled nginx ingress scaffold:
`etc/nginx/` with its includes and a `servers/ingress.conf`, a
`cont-init.d/32-nginx_ingress.sh` short-circuited by `exit 0`, and
`ENV PACKAGES="nginx"` in a Dockerfile byte-identical to nzbget's. Only
`ingress: true` and the s6 service that starts nginx were missing.

What SABnzbd 5.1.1 actually needs from the proxy, measured against the
running add-on rather than assumed:

- Its interface emits only relative links (`href="../../config/general/"`,
  `href="../../staticcfg/css/Auto.css"`, `action="./one"`), and grepping the
  5.1.1 source for `(href|src|action)="/` across `interfaces/{Glitter,Config,
  wizard}` and for absolute `url:` literals in the Glitter JavaScript returns
  nothing. A plain pass-through proxy preserves path depth, so no `sub_filter`
  is warranted. The previous config's `sub_filter /sabnzbd ...` would also have
  mangled the `https://sabnzbd.org/wiki/...` help links present on every
  config page.
- Redirects are the one exception: `Raiser()` prefixes `cfg.url_base()`, so
  `GET /` answers `303 Location: /sabnzbd/wizard/`. One `proxy_redirect`
  handles every observed case; all of them were path-absolute, never a full
  URL. Login redirects and logout go through the same `Raiser()`, and the
  session cookie's path is hardcoded to `/` (`interface.py:316`), so it is
  still sent under the ingress path.
- SABnzbd rejects a Host header that is not an IP literal:
  `Host: homeassistant` answers 403 "Hostname verification failed", while
  `Host: 192.168.1.5:8123` answers 200. nginx therefore sends `$proxy_host`
  instead of including the shared `proxy_params.conf`, which forwards
  `$http_host`.

`ingress_entry: sabnzbd` is dropped rather than kept: Supervisor appends it to
the ingress URL, which only resolves while the user's `url_base` is literally
`/sabnzbd`, and that is a setting they can change. SABnzbd serves the same
interface at `/` as under its `url_base` (verified for `/config/general/`,
`/static/`, `/staticcfg/` and `/wizard/`), so entering at the ingress root
works for any value, including the empty code default.

Ingress traffic reaches SABnzbd as `127.0.0.1:8080` and so is not filtered by
a user's host whitelist; direct ip:port access is unchanged and still is.

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

* fix(sabnzbd): keep the ingress Location relative and scope the login cookie

Exercising the shipped config against the running add-on caught a bug that
reading it did not. With nginx's default `absolute_redirect on`, rewriting
`Location: /sabnzbd/wizard/` produced
`http://homeassistant.local:18099/api/hassio_ingress/<token>/sabnzbd/wizard/`
— nginx expands a scheme-less replacement using the browser's Host and its own
listen port, which is the add-on's internal ingress port and is not reachable
from the browser. `absolute_redirect off` keeps it a path, which the browser
resolves against the Home Assistant origin.

`proxy_cookie_path` comes from Codex's review of the diff. SABnzbd hardcodes
the login cookie to `Path=/` (`interface.py:316`), so on the shared ingress
origin the browser would send it to every other add-on's ingress path as well.

Verified end to end by running the shipped nginx.conf and ingress.conf against
the live add-on, with the browser Host set to a non-IP hostname throughout:
all five redirect cases return a path under the ingress entry, the config
pages, wizard, API and both static roots return 200, and a stub upstream
emitting `Path=/` comes back rewritten to the ingress path.

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

* fix(sabnzbd): drop webui, which the add-on linter forbids alongside ingress

frenck/action-addon-linter fails the PR with "'webui' should be removed,
Ingress is enabled." No other ingress add-on in this repo keeps the key. The
"Open Web UI" button now opens ingress; the ports mapping is untouched, so
direct ip:port still works, it just has to be typed.

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

* fix(sabnzbd): make the nginx finish script actually work on s6-overlay v3

CodeRabbit is right that the execline finish script copied from nzbget is
inert on this image. s6-portable-utils dropped `s6-test` in favour of
execline's `eltest` — s6-overlay 3.2.1.0 ships no `s6-test` at all — so
execlineb cannot run the first `if` block and never reaches s6-svscanctl.
`/var/run/s6/services` is also the v2 scandir path; v3's legacy services.d
compatibility layer uses /run/service.

Rather than port it to eltest, use the shell form the scrutiny add-on already
ships: `kill -15 1` signals s6-overlay's init directly, so it depends on
neither the s6 tool set nor the scandir path, and it is three lines shorter.
The 0 and 256 exclusions are kept, so a normal shutdown does not trigger it.

Also fix the CHANGELOG date to YYYY-MM-DD per Copilot: that is what this file
and 7705 of the repo's 8068 dated headings use.

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

---------

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

212 lines
6.4 KiB
Markdown

## 5.1.1.2 (2026-08-25)
- Ingress is now enabled: the WebUI opens directly in the Home Assistant sidebar, and the "Open Web UI" button now goes there. Access by ip:port is unchanged, but has to be typed rather than clicked, as Home Assistant does not allow an add-on to offer both.
- Note for users who set a "Host verification" whitelist in SABnzbd: ingress sends `Host: 127.0.0.1:8080` upstream, because SABnzbd rejects any Host that is not an IP literal. That whitelist therefore no longer filters the ingress route, which is gated by Home Assistant authentication instead. Direct ip:port access is unchanged and still filtered.
## 5.1.1 (2026-08-22)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 5.1.0 (2026-08-13)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 5.0.4 (2026-06-11)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 5.0.3 (2026-05-16)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 5.0.1 (2026-05-02)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
- Added support for configuring extra environment variables via the `env_vars` add-on option alongside config.yaml. See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details.
## "4.5.5" (2025-10-25)
- Minor bugs fixed
## 4.5.5 (2025-10-25)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.5.3 (2025-08-30)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.5.2 (2025-07-12)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.5.1 (2025-04-12)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.5.0 (2025-04-05)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.4.1-2 (2025-02-10)
- New config logic, files migrated to /addon_configs/xxx-sabnzbd
## 4.4.1 (2024-12-21)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.4.0 (2024-12-14)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.3.3 (2024-08-24)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.3.2 (2024-06-01)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.3.1 (2024-05-11)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.3.0 (2024-05-04)
- Update to latest version from linuxserver/docker-sabnzbd (changelog : https://github.com/linuxserver/docker-sabnzbd/releases)
## 4.2.3 (2024-03-16)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.2.2 (2024-02-03)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.2.1 (2024-01-06)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.1.0 (2023-09-30)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.3 (2023-08-26)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.3-ls123 (2023-08-26)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.3-ls122 (2023-08-19)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.3-ls120 (2023-08-12)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.3-ls119 (2023-08-05)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.3-ls118 (2023-07-29)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.3-ls117 (2023-07-22)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.3-ls116 (2023-07-15)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.2-ls115 (2023-07-08)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.2-ls114 (2023-07-01)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.2-ls113 (2023-06-24)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.2-ls112 (2023-06-17)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.2-ls111 (2023-06-10)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.1-ls110 (2023-06-03)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.1-ls109 (2023-05-27)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.1-ls108 (2023-05-19)
- Update to latest version from linuxserver/docker-sabnzbd
- armv7 support removed
## 4.0.1-ls106 (2023-05-13)
- Update to latest version from linuxserver/docker-sabnzbd
- Feat : cifsdomain added
## 4.0.1-ls105 (2023-05-06)
- Update to latest version from linuxserver/docker-sabnzbd
## 4.0.0-ls104 (2023-04-29)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls102 (2023-04-21)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls101 (2023-04-08)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls100 (2023-03-31)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls99 (2023-03-25)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls98 (2023-03-24)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls97 (2023-03-18)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls95 (2023-03-11)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls93 (2023-03-04)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls92 (2023-02-25)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls91 (2023-02-19)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.2-ls90 (2023-02-11)
- Update to latest version from linuxserver/docker-sabnzbd
## 3.7.1-ls89 (2023-02-04)
- Update to latest version from linuxserver/docker-sabnzbd
- Initial release (latest builds)