Merge branch 'feat/publish-host-config'
This commit is contained in:
@@ -3,6 +3,7 @@ POSTGRES_USER=rmcp
|
|||||||
POSTGRES_PASSWORD=change-me
|
POSTGRES_PASSWORD=change-me
|
||||||
MCPAAS_DATABASE_URL=postgres://rmcp:change-me@postgres:5432/rmcp
|
MCPAAS_DATABASE_URL=postgres://rmcp:change-me@postgres:5432/rmcp
|
||||||
MCPAAS_STORAGE_ROOT=/var/lib/rmcp/storage
|
MCPAAS_STORAGE_ROOT=/var/lib/rmcp/storage
|
||||||
|
MCPAAS_PUBLISH_HOST=127.0.0.1
|
||||||
MCPAAS_ADMIN_BIND=0.0.0.0:3001
|
MCPAAS_ADMIN_BIND=0.0.0.0:3001
|
||||||
MCPAAS_MCP_BIND=0.0.0.0:3002
|
MCPAAS_MCP_BIND=0.0.0.0:3002
|
||||||
MCPAAS_MCP_REFRESH_MS=5000
|
MCPAAS_MCP_REFRESH_MS=5000
|
||||||
|
|||||||
@@ -2,17 +2,17 @@
|
|||||||
|
|
||||||
## Current
|
## Current
|
||||||
|
|
||||||
### `feat/ui-polish`
|
### `feat/publish-host-config`
|
||||||
|
|
||||||
Status: completed
|
Status: completed
|
||||||
|
|
||||||
DoD:
|
DoD:
|
||||||
|
|
||||||
- UI больше не выглядит `REST-only`, если backend уже поддерживает `REST`, `GraphQL` и `gRPC`
|
- публикация портов в `docker-compose` не завязана жестко на `127.0.0.1`
|
||||||
- create flow позволяет собрать operation для всех поддерживаемых протоколов
|
- отдельный reverse proxy на другом хосте может достучаться до `ui`, `admin-api` и `mcp-server`
|
||||||
- detail screen показывает protocol-specific metadata и не сводится к одному длинному сырому столбцу
|
- локальный сценарий с loopback тоже остается доступным через env-конфиг
|
||||||
- для `gRPC` доступен descriptor upload и просмотр unary services/methods
|
- deployment docs и `.env.example` синхронизированы с новой моделью
|
||||||
- UI build и UI tests проходят в CI-эквивалентном режиме
|
- после фикса внешний reverse proxy перестает получать `502` из-за недоступного upstream
|
||||||
|
|
||||||
## Next
|
## Next
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -33,7 +33,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- artifact_storage:${MCPAAS_STORAGE_ROOT:-/var/lib/rmcp/storage}
|
- artifact_storage:${MCPAAS_STORAGE_ROOT:-/var/lib/rmcp/storage}
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:3001:3001"
|
- "${MCPAAS_PUBLISH_HOST:-127.0.0.1}:3001:3001"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "--fail", "http://127.0.0.1:3001/health"]
|
test: ["CMD", "curl", "--fail", "http://127.0.0.1:3001/health"]
|
||||||
interval: 15s
|
interval: 15s
|
||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- artifact_storage:${MCPAAS_STORAGE_ROOT:-/var/lib/rmcp/storage}
|
- artifact_storage:${MCPAAS_STORAGE_ROOT:-/var/lib/rmcp/storage}
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:3002:3002"
|
- "${MCPAAS_PUBLISH_HOST:-127.0.0.1}:3002:3002"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "--fail", "http://127.0.0.1:3002/health"]
|
test: ["CMD", "curl", "--fail", "http://127.0.0.1:3002/health"]
|
||||||
interval: 15s
|
interval: 15s
|
||||||
@@ -70,7 +70,7 @@ services:
|
|||||||
dockerfile: apps/ui/Dockerfile
|
dockerfile: apps/ui/Dockerfile
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:3000:3000"
|
- "${MCPAAS_PUBLISH_HOST:-127.0.0.1}:3000:3000"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/"]
|
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/"]
|
||||||
interval: 15s
|
interval: 15s
|
||||||
|
|||||||
+8
-1
@@ -163,10 +163,17 @@ services:
|
|||||||
- поднимать `postgres`, `admin-api`, `mcp-server`, `ui`;
|
- поднимать `postgres`, `admin-api`, `mcp-server`, `ui`;
|
||||||
- использовать env vars вместо hardcoded config;
|
- использовать env vars вместо hardcoded config;
|
||||||
- иметь persistent storage для БД и artifacts;
|
- иметь persistent storage для БД и artifacts;
|
||||||
- публиковать `ui`, `admin-api` и `mcp-server` только на loopback, если перед ними уже стоит reverse proxy;
|
- поддерживать настраиваемый bind host для published ports;
|
||||||
|
- публиковать `ui`, `admin-api` и `mcp-server` на loopback, если reverse proxy живет на том же хосте;
|
||||||
|
- публиковать `ui`, `admin-api` и `mcp-server` на LAN bind address или `0.0.0.0`, если reverse proxy вынесен на отдельный хост;
|
||||||
- не публиковать внутренние сервисы наружу без необходимости;
|
- не публиковать внутренние сервисы наружу без необходимости;
|
||||||
- содержать healthchecks.
|
- содержать healthchecks.
|
||||||
|
|
||||||
|
Практически это должно быть управляемо через env вроде `MCPAAS_PUBLISH_HOST`:
|
||||||
|
|
||||||
|
- `127.0.0.1` для local reverse proxy на том же Linux host;
|
||||||
|
- конкретный внутренний IP или `0.0.0.0` для отдельного центрального reverse proxy в LAN.
|
||||||
|
|
||||||
## 10. Healthchecks
|
## 10. Healthchecks
|
||||||
|
|
||||||
Нужны как минимум:
|
Нужны как минимум:
|
||||||
|
|||||||
Reference in New Issue
Block a user