Сеть и порты PanDev Metrics on-prem
import Head from "@docusaurus/Head";
On-prem PanDev Metrics открывает на application-хосте два TCP-порта: 8080 для backend приложения и 9090 для Spring Boot actuator. На этой странице — все требования к входящей и исходящей сети, рекомендуемая настройка reverse proxy и варианты TLS.
Кратко
| Параметр | Значение |
|---|---|
| Публичный вход | TCP 8080 (или 443 за reverse proxy) |
| Внутренний вход | TCP 9090 (actuator), 5432 (PostgreSQL), 6379 (Redis) |
| Исходящий | HTTPS до подключённых интеграций — минимальный, отключить нельзя |
| TLS | Терминируется на reverse proxy или через самоподписанный сертификат с отключённой клиентской валидацией |
| Air-gapped | Не поддерживается |
Входящие порты
PanDev Metrics открывает на application-хосте два TCP-порта. Снаружи должен быть доступен только 8080; 9090 остаётся внутренним.
| Порт | Сервис | Назначение | Доступ |
|---|---|---|---|
| 8080 | Backend приложения | REST API для IDE-плагинов и frontend | Публичный (обычно за reverse proxy на 443) |
| 9090 | Spring Boot actuator | Health, метрики, info | Только внутренний |
Порты базы и кеша — не часть публичной поверхности:
| Порт | Сервис | Доступ |
|---|---|---|
| 5432 | PostgreSQL | Внутренний (только между database-хостом и application-хостом) |
| 6379 | Redis | Внутренний (только в application-хосте) |
Порт 8080 — backend приложения
Backend отдаёт REST API для frontend и IDE-плагинов. Должен быть доступен от:
- Reverse proxy на том же хосте или в той же сети
- Хостов IDE-плагинов (рабочие станции разработчиков или машины за VPN)
Если порт 8080 закрыт для рабочих станций — данные не теряются. Плагины буферизуют события локально и проигрывают их, как только связь восстанавливается через VPN или корпоративную сеть.
Порт 9090 — actuator
Spring Boot actuator отдаёт операционные эндпоинты для health-check и сбора метрик Prometheus. Оставьте его доступным только из мониторинговой сети — наружу выставлять не нужно.
Часто используемые эндпоинты:
| Эндпоинт | Назначение |
|---|---|
/actuator/health | Liveness и readiness — возвращает {"status":"UP"}, когда всё хорошо |
/actuator/info | Сборка и версия |
/actuator/metrics | Метрики приложения в формате Prometheus |
Исходящий egress
On-prem PanDev Metrics требует минимального исходящего HTTPS к подключаемым системам:
- Ваш Git-провайдер (GitHub, GitLab Self-Managed или Cloud, Bitbucket, Azure DevOps)
- Ваш таск-трекер (Jira Cloud или Data Center, YouTrack, ClickUp, Yandex Tracker, Azure Boards)
- Опционально — LDAP / Active Directory (если включена LDAP-интеграция)
Исходящий трафик минимальный, но отключить нельзя. Air-gapped развёртывания не поддерживаются.
Откройте исходящий TCP 443 к хостнеймам интеграций, которые вы подключаете. Если в сети используется HTTP-прокси, задайте HTTPS_PROXY и NO_PROXY в окружении контейнера backend.
Reverse proxy
Терминируйте TLS на reverse proxy перед backend. Поддерживаются Nginx и Traefik — конфигурация стандартная reverse-proxy-форма.
Nginx
server {
listen 443 ssl http2;
server_name metrics.example.com;
ssl_certificate /etc/ssl/certs/pandev.crt;
ssl_certificate_key /etc/ssl/private/pandev.key;
client_max_body_size 50m;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 60s;
}
}
Traefik
http:
routers:
pandev:
rule: "Host(`metrics.example.com`)"
entryPoints: [websecure]
tls: {}
service: pandev-backend
services:
pandev-backend:
loadBalancer:
servers:
- url: "http://127.0.0.1:8080"
TLS и reverse proxy
PanDev Metrics работает в любой из трёх TLS-конфигураций ниже. Выберите ту, что соответствует вашей security-политике.
| Вариант | Что настраивается | Когда применять |
|---|---|---|
| Сертификат публичного CA | Reverse proxy с сертификатом от Let's Encrypt или вашего корпоративного CA | По умолчанию — рекомендуется для любого прод-инстанса, доступного с рабочих станций |
| Сертификат внутреннего CA | Reverse proxy с внутренним CA, которому уже доверяет ваш парк машин | Корпоративные сети, где машины разработчиков доверяют внутреннему CA |
| Самоподписанный + отключённая валидация на клиенте | Backend отдаётся напрямую с самоподписанным сертификатом, плагины настроены пропускать SSL-валидацию | Только air-gapped тесты или evaluation — не рекомендуется для прода |
IDE-плагины PanDev Metrics умеют отключать клиентскую SSL-валидацию для подключения к self-signed-инсталляции. Настройка задаётся в каждом плагине отдельно и описана в гайдах плагинов.
Firewall
Минимальные входящие правила для application-хоста:
firewall-cmd --permanent --add-port=8080/tcp # только если нет reverse proxy на 443
firewall-cmd --permanent --add-port=443/tcp # reverse proxy
firewall-cmd --reload
Минимальные входящие правила для database-хоста:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
source address="<APPLICATION_HOST_IP>" port port="5432" protocol="tcp" accept'
firewall-cmd --reload
Ограничьте PostgreSQL приёмом соединений только с IP application-хоста. Порт 5432 наружу не открывайте.
HTTP-прокси
Если application-хост работает за корпоративным HTTP-прокси, настройте его через стандартные env-переменные контейнера backend:
| Переменная | Назначение |
|---|---|
HTTP_PROXY | URL прокси для plain HTTP — используется редко |
HTTPS_PROXY | URL прокси для исходящего HTTPS до Git / таск-трекера |
NO_PROXY | Список хостов через запятую, для которых прокси не применяется (Redis, PostgreSQL, внутренние сервисы) |
Задайте их в .env рядом с переменными базы и Redis, затем docker compose up -d --force-recreate pandev-metrics.
Ограничения и edge-кейсы
- Egress отключить нельзя. PanDev Metrics нужен минимальный исходящий HTTPS до интеграций. Offline-режима нет.
- Actuator должен оставаться внутренним. Порт 9090 не предназначен быть публичным.
- Между компонентами нет mTLS. Backend, PostgreSQL и Redis общаются внутри доверенной application-сети. mTLS добавляйте на сетевом уровне, если этого требует ваша политика.
- Поддержка WebSocket зависит от reverse proxy. Длинные соединения, используемые частью UI, требуют
proxy_read_timeoutвыше дефолтных 60 секунд на Nginx.
Связанные материалы
- How-to: Установка PanDev Metrics on-prem
- Reference: Системные требования
- Концепция: Архитектура on-prem