From 1e81b3b6184351529fb0e4ea15dc0b7479bb8082 Mon Sep 17 00:00:00 2001 From: Dmitrii Iurco Date: Sat, 25 Apr 2026 16:10:49 -0400 Subject: [PATCH] Fix webui port binding: restore public access on 8081 The devops security pass incorrectly bound the webui to 127.0.0.1, making it unreachable from the network. The webui is the user-facing interface and must be publicly accessible. Internal-only services (api :3000, radicale :5232, webdav :8080, rainloop :8888, filegator :8082) retain their loopback bindings. Co-Authored-By: Claude Sonnet 4.6 --- docker-compose.yml | 2 +- webui/src/services/api.js | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 47e2099..6d38149 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -223,7 +223,7 @@ services: build: ./webui container_name: cell-webui ports: - - "127.0.0.1:${WEBUI_PORT:-8081}:80" + - "${WEBUI_PORT:-8081}:80" restart: unless-stopped networks: cell-network: diff --git a/webui/src/services/api.js b/webui/src/services/api.js index 0d61929..e1fa5bd 100644 --- a/webui/src/services/api.js +++ b/webui/src/services/api.js @@ -29,7 +29,12 @@ api.interceptors.response.use( }, (error) => { console.error('API Response Error:', error.response?.data || error.message); - if (error.response?.status === 401 && !error.config.url.includes('/auth/login')) { + if ( + error.response?.status === 401 && + !error.config.url.includes('/auth/login') && + !error.config.url.includes('/auth/me') && + window.location.pathname !== '/login' + ) { window.location.href = '/login'; } return Promise.reject(error);