diff --git a/.env.example b/.env.example
index f20abd4..297fa84 100644
--- a/.env.example
+++ b/.env.example
@@ -6,3 +6,6 @@ HOST=127.0.0.1
# Docker Compose: port published on the server for an HTTPS reverse proxy.
PWA_PORT=8080
PWA_BIND_ADDRESS=127.0.0.1
+
+# Public status hosting URL, embedded in the production bundle.
+# VITE_STATUS_URL=https://your-status-domain.example
diff --git a/Dockerfile b/Dockerfile
index a70ac5d..b2767ea 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,6 +5,8 @@ RUN npm ci
COPY index.html tsconfig.json vite.config.ts ./
COPY src ./src
COPY public ./public
+ARG VITE_STATUS_URL=
+ENV VITE_STATUS_URL=$VITE_STATUS_URL
RUN npm run build
FROM node:24-alpine
diff --git a/README.md b/README.md
index b2602aa..a6acd83 100644
--- a/README.md
+++ b/README.md
@@ -332,3 +332,11 @@ npm run icons
Эта команда пересоздаёт PNG-иконки из исходного логотипа. Иконки и шрифты
поставляются вместе с приложением и не требуют сети после первого открытия.
+
+## Виджет статуса RideBus
+
+Встроенный iframe показывает свежий статус этого сервиса и API. При недоступности мониторинга отображается отсутствие данных. Адрес хостинга задаётся публичной переменной сборки: `VITE_STATUS_URL`. Если адрес не задан, production-виджет скрыт; в development используется http://127.0.0.1:5188. После изменения переменной нужна новая сборка.
+
+Виджет не получает сессию пользователя, API-ключи или данные приложения. Состояния, оформление, русская/английская локализация и обновления обслуживаются проектом ridebus-status.
+
+При запуске через Docker Compose укажите переменную URL в корневом `.env` проекта и пересоберите образ (`docker compose up -d --build`). URL передаётся как build argument; смена только runtime environment не обновляет уже собранный интерфейс.
diff --git a/docker-compose.yml b/docker-compose.yml
index 053deec..5fc7fe8 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,6 +5,8 @@ services:
build:
context: .
dockerfile: Dockerfile
+ args:
+ VITE_STATUS_URL: ${VITE_STATUS_URL:-}
restart: unless-stopped
init: true
environment:
diff --git a/src/App.tsx b/src/App.tsx
index 43dfdaa..0ce937f 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -17,6 +17,7 @@ import { useAppTheme } from './lib/theme';
import { Dialog } from './components/Dialog';
import { FeatureDiscovery } from './components/FeatureDiscovery';
import { StopList, StopListItem } from './components/StopList';
+import StatusWidget from './components/StatusWidget';
import { positiveParam } from './lib/links';
import { isTravelDate, localDate } from './lib/time';
import { countLabel, groupStops, type StopGroup } from './lib/stopGroups';
@@ -225,7 +226,7 @@ export default function App() {
{pickerOpen && }
>}
-
+
{navigation(true)}
{notice &&