mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-09-04 17:03:34 +02:00
Fix FileBrowser Quantum direct web access (#2979)
* Fix FileBrowser Quantum direct web access
* fix(filebrowser_quantum): make direct ip:port access actually work
ports: {8080/tcp: 8071} alone (as originally proposed) publishes the app's
own port, but FileBrowser Quantum's server.baseURL is set at boot to the
Supervisor ingress-entry path (an opaque, per-install hash), so the app only
serves correctly under that exact path -- a bare port publish gives an
unreachable page, per alexbelgium's own analysis on #2978.
Add a second, dedicated nginx vhost (direct.conf) that proxies a fixed public
path (/filebrowser_quantum/) onto the same ingress-entry baseURL the existing
ingress vhost already targets, instead of changing the app's baseURL itself.
This leaves the ingress vhost, and therefore Ingress access, completely
unchanged -- only the new vhost is new surface area. config.yaml now
publishes the new vhost's internal port (8072) to host 8071, not the app's
own 8080 directly.
Co-authored-by: polmonta <polmonta05@gmail.com>
---------
Co-authored-by: polmonta <polmonta05@gmail.com>
Co-authored-by: alexbelgium <alexandre.pary@gmail.com>
This commit is contained in:
@@ -1,4 +1,10 @@
|
|||||||
|
|
||||||
|
## 1.5.1.1 (2026-08-16)
|
||||||
|
- Expose the web UI on host port 8071, reachable at `<your-ip>:8071`
|
||||||
|
(redirects to `/filebrowser_quantum/`). Direct access is served by a new,
|
||||||
|
separate nginx vhost that proxies to the same backend Ingress already uses;
|
||||||
|
Ingress itself, and the app's own base URL, are unchanged.
|
||||||
|
|
||||||
## 1.5.1 (2026-08-08)
|
## 1.5.1 (2026-08-08)
|
||||||
- Update to latest version from gtsteffaniak/filebrowser (changelog : https://github.com/gtsteffaniak/filebrowser/releases)
|
- Update to latest version from gtsteffaniak/filebrowser (changelog : https://github.com/gtsteffaniak/filebrowser/releases)
|
||||||
|
|
||||||
|
|||||||
@@ -42,11 +42,11 @@ comparison to installing any other Home Assistant add-on.
|
|||||||
1. Click the `Save` button to store your configuration.
|
1. Click the `Save` button to store your configuration.
|
||||||
1. Start the add-on.
|
1. Start the add-on.
|
||||||
1. Check the logs of the add-on to see if everything went well.
|
1. Check the logs of the add-on to see if everything went well.
|
||||||
1. Access the web UI through the sidebar or at `<your-ip>:8071`.
|
1. Access the web UI through the sidebar or at `<your-ip>:8071/filebrowser_quantum/`.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
The web UI can be found at `<your-ip>:8071` or through the Home Assistant sidebar when using Ingress.
|
The web UI can be found at `<your-ip>:8071` (redirects to `/filebrowser_quantum/`) or through the Home Assistant sidebar when using Ingress.
|
||||||
|
|
||||||
**Default credentials:**
|
**Default credentials:**
|
||||||
- Username: `admin`
|
- Username: `admin`
|
||||||
|
|||||||
@@ -97,6 +97,10 @@ options:
|
|||||||
default_user_scope: "/"
|
default_user_scope: "/"
|
||||||
panel_admin: false
|
panel_admin: false
|
||||||
panel_icon: mdi:file-search
|
panel_icon: mdi:file-search
|
||||||
|
ports:
|
||||||
|
8072/tcp: 8071
|
||||||
|
ports_description:
|
||||||
|
8072/tcp: Web UI port
|
||||||
privileged:
|
privileged:
|
||||||
- SYS_ADMIN
|
- SYS_ADMIN
|
||||||
- DAC_READ_SEARCH
|
- DAC_READ_SEARCH
|
||||||
@@ -114,4 +118,4 @@ schema:
|
|||||||
slug: filebrowser_quantum
|
slug: filebrowser_quantum
|
||||||
udev: true
|
udev: true
|
||||||
url: https://github.com/alexbelgium/hassio-addons
|
url: https://github.com/alexbelgium/hassio-addons
|
||||||
version: "1.5.1"
|
version: "1.5.1.1"
|
||||||
|
|||||||
@@ -43,6 +43,13 @@ declare ingress_interface
|
|||||||
declare ingress_port
|
declare ingress_port
|
||||||
#declare keyfile
|
#declare keyfile
|
||||||
|
|
||||||
|
# The app's own baseURL is always the Supervisor ingress-entry path — this is
|
||||||
|
# unchanged from before. FileBrowser Quantum has no known "ignore baseURL for
|
||||||
|
# routing" leniency the way classic filebrowser's app does, so ingress access
|
||||||
|
# is left completely untouched here. Direct ip:port access is handled below by
|
||||||
|
# a second, separate nginx vhost (direct.conf) that rewrites a fixed public
|
||||||
|
# path onto this same ingress-entry baseURL, instead of changing the baseURL
|
||||||
|
# itself.
|
||||||
FB_BASEURL=$(bashio::addon.ingress_entry)
|
FB_BASEURL=$(bashio::addon.ingress_entry)
|
||||||
export FB_BASEURL
|
export FB_BASEURL
|
||||||
|
|
||||||
@@ -59,6 +66,15 @@ sed -i "s|%%protocol%%|${ADDON_PROTOCOL}|g" /etc/nginx/servers/ingress.conf
|
|||||||
sed -i "s|%%port%%|${ingress_port}|g" /etc/nginx/servers/ingress.conf
|
sed -i "s|%%port%%|${ingress_port}|g" /etc/nginx/servers/ingress.conf
|
||||||
sed -i "s|%%interface%%|${ingress_interface}|g" /etc/nginx/servers/ingress.conf
|
sed -i "s|%%interface%%|${ingress_interface}|g" /etc/nginx/servers/ingress.conf
|
||||||
sed -i "s|%%subpath%%|${FB_BASEURL}/|g" /etc/nginx/servers/ingress.conf
|
sed -i "s|%%subpath%%|${FB_BASEURL}/|g" /etc/nginx/servers/ingress.conf
|
||||||
|
|
||||||
|
# --- Direct ip:port access (separate from ingress, see comment above) ---
|
||||||
|
# Publishes a second nginx vhost on a fixed internal port (published to the
|
||||||
|
# host as 8071 via config.yaml's `ports:`), at a fixed public path
|
||||||
|
# (/filebrowser_quantum/), that proxies to the same backend the ingress vhost
|
||||||
|
# uses. This keeps the app's own baseURL, and therefore ingress, unchanged.
|
||||||
|
sed -i "s|%%protocol%%|${ADDON_PROTOCOL}|g" /etc/nginx/servers/direct.conf
|
||||||
|
sed -i "s|%%subpath%%|${FB_BASEURL}/|g" /etc/nginx/servers/direct.conf
|
||||||
|
|
||||||
mkdir -p /var/log/nginx && touch /var/log/nginx/error.log
|
mkdir -p /var/log/nginx && touch /var/log/nginx/error.log
|
||||||
|
|
||||||
############################
|
############################
|
||||||
|
|||||||
24
filebrowser_quantum/rootfs/etc/nginx/servers/direct.conf
Normal file
24
filebrowser_quantum/rootfs/etc/nginx/servers/direct.conf
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
server {
|
||||||
|
listen 0.0.0.0:8072 default_server;
|
||||||
|
|
||||||
|
include /etc/nginx/includes/server_params.conf;
|
||||||
|
include /etc/nginx/includes/proxy_params.conf;
|
||||||
|
|
||||||
|
client_max_body_size 0;
|
||||||
|
|
||||||
|
location = / {
|
||||||
|
return 302 /filebrowser_quantum/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location = /filebrowser_quantum {
|
||||||
|
return 301 /filebrowser_quantum/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /filebrowser_quantum/ {
|
||||||
|
add_header Access-Control-Allow-Origin *;
|
||||||
|
proxy_connect_timeout 30m;
|
||||||
|
proxy_send_timeout 30m;
|
||||||
|
proxy_read_timeout 30m;
|
||||||
|
proxy_pass %%protocol%%://backend%%subpath%%;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user