I can confirm this bug on Ubuntu 24.04 with rspamd 3.8.1-1ubuntu3, and I believe the root cause in the original report is incorrect. It is not related to Apache, to reverse proxying, or to URL fragment handling — I reproduced it with no Apache and no proxy involved at all.
**The web UI is served Bootstrap 4 while its markup requires Bootstrap 5.** ### Evidence Upstream rspamd 3.8.1 bundles Bootstrap 5.3.2: ``` $ curl -s https://raw.githubusercontent.com/rspamd/rspamd/3.8.1/interface/js/lib/bootstrap.bundle.min.js | head -c 120 /*! * Bootstrap v5.3.2 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors ``` The Ubuntu package replaces it at install time. From `/var/lib/dpkg/info/rspamd.postinst`: ```sh copy_js_font_files() { # Rspamd web interface doesn't support symlinks and directory traversal # copy javascript files from original Debian packages RSPAMD_CSS_DIR=/usr/share/rspamd/www/css RSPAMD_JS_LIB_DIR=/usr/share/rspamd/www/js/lib cp --remove-destination /usr/share/javascript/bootstrap4/js/bootstrap.bundle.min.js $RSPAMD_JS_LIB_DIR/bootstrap.bundle.min.js cp --remove-destination /usr/share/javascript/bootstrap4/css/bootstrap.min.css $RSPAMD_CSS_DIR/bootstrap.min.css ... ``` `debian/control` correspondingly has `Depends: libjs-bootstrap4`. Result on a stock install: | File | Version | Size | |---|---|---| | upstream 3.8.1 `bootstrap.bundle.min.js` | Bootstrap 5.3.2 | 80663 | | what ships on Ubuntu 24.04 | **Bootstrap 4.6.1** | 124345 | Meanwhile the shipped `index.html` — which the package *does* own — uses Bootstrap 5 data attributes exclusively: ``` $ grep -o 'data-bs-toggle' /usr/share/rspamd/www/index.html | wc -l 10 $ grep -o 'data-toggle=' /usr/share/rspamd/www/index.html | wc -l 0 ``` Bootstrap 4's tab component listens for `data-toggle="tab"`. The markup only ever says `data-bs-toggle="tab"`, so the click data-API is never wired up and **no handler runs at all** when a nav tab is clicked. ### Why this matches the reported symptoms exactly * **Clicking History/Throughput/Configuration does nothing.** Not a failed request — *no request is made*. Captured over 24 minutes of an authenticated session: 290 requests, all of them the 10-second `neighbours`+`stat` auto-refresh, every one HTTP 200. Zero requests for `js/app/history.js`, which RequireJS would have to fetch on the first History click. The click never reaches rspamd's own `tabClick()`. * **Reloading works.** `stickyTabs` activates the tab programmatically via the jQuery `.tab("show")` API, which Bootstrap 4 does provide. Only the *click-driven* path is dead. * **Action icons do not render.** The CSS is replaced too, on the line above. * **The login modal still works**, because rspamd opens and closes it programmatically with `$("#connectDialog").modal("show")`. But its `data-bs-backdrop="static"` and `data-bs-keyboard="false"` are silently ignored by Bootstrap 4, which reads `data-backdrop` / `data-keyboard` — so the login dialog can be dismissed by clicking the backdrop, which it is explicitly configured not to allow. ### Reproduced without any web server in the path To rule out Apache, nginx and proxying entirely: ```sh ssh -L 11334:127.0.0.1:11334 <host> ``` then browse `http://127.0.0.1:11334/` — rspamd's own controller, no proxy, no rewriting. The tabs are equally dead there. I also drove it headlessly through the Chrome DevTools Protocol with a real login. After authentication the UI is otherwise healthy — no backdrop left over, no disabled navigation, the auto-refresh countdown running — and a click on the History tab reports: ``` click dispatched, disabled=false class=nav-link requests after click: neighbours, stat (the auto-refresh only) activeTab: status_nav (unchanged) ``` No JavaScript errors are logged, which is expected: nothing throws. Bootstrap 4 simply never recognises the selector. ### The fix already exists in Debian Debian addressed this in **rspamd 3.11.0-1** (26 Feb 2025): ``` * Replace libjs-bootstrap4 by libjs-bootstrap5 ``` Debian has since moved on further — 4.0.1-1 in unstable/testing at the time of writing, with the bootstrap5 dependency carried forward. The switch itself is old news in Debian; only Ubuntu is stuck. Worth noting for the timeline: Debian's `3.7.1-1` (10 Oct 2023) already refreshed its patches for **bootstrap 5.3.1**, so the interface has required Bootstrap 5 since October 2023 while the packaging kept supplying Bootstrap 4 until February 2025. Ubuntu 24.04 froze at 3.8.1 — squarely inside that 16-month window. This leaves Ubuntu 24.04 LTS as the affected release: it is frozen at 3.8.1, which is inside the window where the UI already required Bootstrap 5 but the packaging still supplied Bootstrap 4. noble is supported until 2029, and the antispam web interface is unusable for its whole life unless this is fixed. **`libjs-bootstrap5` 5.3.1+dfsg-1 is already in noble/universe** — very close to the 5.3.2 that upstream 3.8.1 bundles — so no new package is needed in the archive. The change is confined to packaging and needs no upstream code change: 1. `debian/control`: `Depends: libjs-bootstrap4` → `libjs-bootstrap5` 2. `debian/rspamd.postinst`: copy `bootstrap.bundle.min.js` and `bootstrap.min.css` from the `bootstrap5` directory instead of `bootstrap4` That is the same change Debian shipped, applied to 3.8.1. ### Unrelated minor defect in the same function The same `postinst` copies RequireJS from the unminified source and renames it: ```sh cp --remove-destination /usr/share/javascript/requirejs/require.js $RSPAMD_JS_LIB_DIR/require.min.js ``` The result is an 86 kB file named `require.min.js` where upstream ships a 17 kB minified one. Functionally harmless, but it is served to every user of the interface. ### Environment ``` Ubuntu 24.04.x rspamd 3.8.1-1ubuntu3 (noble/universe) libjs-bootstrap4 4.6.1+dfsg1-4+deb12u1build0.24.04.1 libjs-bootstrap5 5.3.1+dfsg-1 (available, not installed) ``` Reproduced behind nginx, and directly against the controller on port 11334 with no proxy. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2065914 Title: rspamd webgui navigation not working ( ubuntu 24.04) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/rspamd/+bug/2065914/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
