From bfe26243133f114973f20433169e4906b64a0ba1 Mon Sep 17 00:00:00 2001 From: ITQ Date: Fri, 7 Aug 2026 15:42:51 +0300 Subject: [PATCH] init: initial commit --- README.md | 22 ++++++++++++++++++++++ compose.yaml | 36 ++++++++++++++++++++++++++++++++++++ nginx.conf | 18 ++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 README.md create mode 100644 compose.yaml create mode 100644 nginx.conf diff --git a/README.md b/README.md new file mode 100644 index 0000000..6ded230 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# Local Hubble UI + +## Instructions + +### 1. Port-forward hubble-relay + +```bash +cilium hubble port-forward +# OR +kubectl port-forward svc/hubble-relay 4245:80 +``` + +### 2. Start compose + +```bash +docker compose up -d +``` + +### 3. Access + +Access Hubble UI at `http://localhost:8081` + diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..221f3a2 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,36 @@ +name: hubble-ui + +services: + backend: + image: quay.io/cilium/hubble-ui-backend:${HUBBLE_UI_VERSION:-v0.9.2} + environment: + FLOWS_API_ADDR: "host.docker.internal:4245" + TLS_TO_RELAY_ENABLED: "false" + KUBECONFIG: /kubeconfig + extra_hosts: + - "host.docker.internal:host-gateway" + volumes: + - type: bind + source: ${KUBECONFIG_PATH:-~/.kube/config} + target: /kubeconfig + read_only: true + + frontend: + image: quay.io/cilium/hubble-ui:${HUBBLE_UI_VERSION:-v0.9.2} + depends_on: + backend: + restart: false + condition: service_started + required: true + ports: + - name: web + target: 8081 + published: 8081 + host_ip: 0.0.0.0 + protocol: tcp + app_protocol: http + volumes: + - type: bind + source: ./nginx.conf + target: /etc/nginx/conf.d/default.conf + read_only: true diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..13a3b27 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,18 @@ +server { + listen 8081; + root /app; + index index.html; + + location /healthz { access_log off; return 200 'ok'; } + + location /api { + proxy_http_version 1.1; + proxy_pass_request_headers on; + proxy_hide_header Access-Control-Allow-Origin; + proxy_buffering off; + proxy_pass http://backend:8090; + } + + location / { try_files $uri $uri/ /index.html; } +} +