This is an automated email from the ASF dual-hosted git repository. wu-sheng pushed a commit to branch docs/horizon-ui-setup in repository https://gitbox.apache.org/repos/asf/skywalking.git
commit 0b50bee2cc5a2435bd367dc26d7cd1ef773d9b04 Author: Wu Sheng <[email protected]> AuthorDate: Tue Jun 2 22:43:42 2026 +0800 Correct Horizon UI setup docs: Docker Hub image, port 8081, horizon.yaml config The UI setup docs pointed operators at the GHCR dev registry, used port 8080, and documented SW_OAP_ADDRESS / SW_ADMIN_ADDRESS / SW_ZIPKIN_ADDRESS environment variables that Horizon UI does not read (it is configured via a mounted horizon.yaml). Correct them: - Released images come from Docker Hub apache/skywalking-ui (latest / horizon-<version>); ghcr.io/apache/skywalking-horizon-ui is per-commit/dev only. - Default port is 8081 (Horizon BFF), not 8080. - Configuration is via horizon.yaml (oap.queryUrl/adminUrl/zipkinUrl), not environment variables. - Do not lock a Horizon UI version: OAP 11.0+ is supported and compatibility is Horizon UI's responsibility. - Keep the OAP-side docs to basics and link to the Horizon UI website docs; drop source-code links. Also align the Helm ui.image examples, the changelog upgrade path, and the release guide for consistency. Verified against the Horizon UI source and the skywalking-helm chart (ui-svc.yaml: service port 80 -> targetPort 8081). --- ...e-service-mesh-network-performance-with-ebpf.md | 2 +- docs/en/changes/changes.md | 12 ++-- docs/en/guides/How-to-release.md | 5 +- docs/en/setup/backend/backend-telemetry.md | 4 +- docs/en/setup/backend/ui-setup.md | 71 +++++++++++++++------- docs/en/ui/README.md | 9 ++- 6 files changed, 69 insertions(+), 34 deletions(-) diff --git a/docs/en/academy/diagnose-service-mesh-network-performance-with-ebpf.md b/docs/en/academy/diagnose-service-mesh-network-performance-with-ebpf.md index 610cc8d6b7..8fca428321 100644 --- a/docs/en/academy/diagnose-service-mesh-network-performance-with-ebpf.md +++ b/docs/en/academy/diagnose-service-mesh-network-performance-with-ebpf.md @@ -199,7 +199,7 @@ helm -n istio-system install skywalking skywalking \ --set elasticsearch.minimumMasterNodes=1 \ --set elasticsearch.imageTag=7.5.1 \ --set oap.replicas=1 \ - --set ui.image.repository=ghcr.io/apache/skywalking-horizon-ui \ + --set ui.image.repository=apache/skywalking-ui \ --set ui.image.tag=latest \ --set oap.image.tag=9.2.0 \ --set oap.envoy.als.enabled=true \ diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index f914cb4204..b30c394b83 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -46,8 +46,10 @@ or pushed the UI image. The official UI is now [**Horizon UI**](https://github.com/apache/skywalking-horizon-ui), a SkyWalking sub-project that **releases independently** of the OAP backend on its own - schedule, with container images published to - [`ghcr.io/apache/skywalking-horizon-ui`](https://github.com/apache/skywalking-horizon-ui/pkgs/container/skywalking-horizon-ui). + schedule, with released container images on Docker Hub at + [`apache/skywalking-ui`](https://hub.docker.com/r/apache/skywalking-ui) + (tags `latest` / `horizon-<version>`; per-commit development images live on + `ghcr.io/apache/skywalking-horizon-ui`). There is no 1:1 mapping between OAP versions and Horizon UI versions — operators pin the UI image tag in their deployment and upgrade the two on separate cadences. @@ -66,8 +68,10 @@ `UIMenuManagementService`, `UIMenuManagementDAO`, `UIMenu`, `MenuItem`, and the storage impls are all removed; Horizon UI owns the menu client-side and uses `listServices(layer:...)` for dynamic "layer has - services" gating. Upgrade path: replace `skywalking/ui:<tag>` with - `ghcr.io/apache/skywalking-horizon-ui:<tag>` in your deployment, expose + services" gating. Upgrade path: replace `skywalking/ui:<tag>` with the + Horizon UI image `apache/skywalking-ui:latest` (or a `horizon-<version>` + tag — pick a version per Horizon UI's OAP-compatibility notes, OAP `11.0+` + is supported) in your deployment, expose port `17128` from the OAP container, and migrate any scripts that called the legacy GraphQL UI mutations to the REST endpoints under [UI Management API](../setup/backend/admin-api/ui-management.md). All diff --git a/docs/en/guides/How-to-release.md b/docs/en/guides/How-to-release.md index bb6de0f7f9..ef8cdbbd52 100644 --- a/docs/en/guides/How-to-release.md +++ b/docs/en/guides/How-to-release.md @@ -131,8 +131,9 @@ make docker.push > Note: this repository no longer builds the UI Docker image. The official > web UI ships from > [`apache/skywalking-horizon-ui`](https://github.com/apache/skywalking-horizon-ui), -> which has its own release cadence and publishes images independently -> under `ghcr.io/apache/skywalking-horizon-ui`. The OAP release described +> which has its own release cadence and publishes images independently: +> released images to Docker Hub `apache/skywalking-ui`, per-commit development +> images to `ghcr.io/apache/skywalking-horizon-ui`. The OAP release described > above is independent of any Horizon UI release — they advance on > separate schedules and are matched at deploy time, not at release time. diff --git a/docs/en/setup/backend/backend-telemetry.md b/docs/en/setup/backend/backend-telemetry.md index 75db2f1ad1..b83ab516d8 100644 --- a/docs/en/setup/backend/backend-telemetry.md +++ b/docs/en/setup/backend/backend-telemetry.md @@ -68,8 +68,8 @@ Set this up following these steps: --set elasticsearch.minimumMasterNodes=1 \ --set elasticsearch.imageTag=7.5.1 \ --set oap.replicas=2 \ - --set ui.image.repository=ghcr.io/apache/skywalking-horizon-ui \ - --set ui.image.tag=$TAG \ + --set ui.image.repository=apache/skywalking-ui \ + --set ui.image.tag=latest \ --set oap.image.tag=$TAG \ --set oap.image.repository=$HUB/skywalking-oap \ --set oap.storageType=elasticsearch \ diff --git a/docs/en/setup/backend/ui-setup.md b/docs/en/setup/backend/ui-setup.md index 9529c91967..c470651b58 100644 --- a/docs/en/setup/backend/ui-setup.md +++ b/docs/en/setup/backend/ui-setup.md @@ -4,36 +4,63 @@ The SkyWalking web UI ships from a dedicated project, [apache/skywalking-horizon-ui](https://github.com/apache/skywalking-horizon-ui). This OAP distribution does not bundle a UI. -Horizon UI **releases independently** of the OAP backend. The two projects -advance on separate schedules, are matched at deploy time (not at release -time), and the OAP `x.y.z` tag has no implied Horizon UI counterpart. Pin -the UI image tag explicitly in your deployment. +Horizon UI **releases independently** of the OAP backend, on its own +schedule. This repository is **not bound to any specific Horizon UI +version** — backend compatibility is Horizon UI's responsibility, and it +supports OAP from `11.0` onward. Don't lock the UI to an OAP `x.y.z` tag; +pick the UI version following +[Horizon UI's OAP-compatibility notes](https://skywalking.apache.org/docs/skywalking-horizon-ui/next/compatibility/oap-version/). ## Run Horizon UI with Docker -Container images are published to -[`ghcr.io/apache/skywalking-horizon-ui`](https://github.com/apache/skywalking-horizon-ui/pkgs/container/skywalking-horizon-ui). -Operators pin to a commit SHA for reproducibility, or use `latest` for tracking. +Released images are published to Docker Hub at +[`apache/skywalking-ui`](https://hub.docker.com/r/apache/skywalking-ui) — +use the `latest` tag, or a `horizon-<version>` tag for a reproducible +deploy. Per-commit development images are pushed to +[`ghcr.io/apache/skywalking-horizon-ui`](https://github.com/apache/skywalking-horizon-ui/pkgs/container/skywalking-horizon-ui) +and are for testing the development branch, not production. + +Horizon UI is configured through a mounted `horizon.yaml` file (not +environment variables). The OAP wiring it needs is the query host and the +admin host; the Zipkin host is only required if a layer uses Zipkin +traces: ```shell docker run --name skywalking-ui --restart always -d \ - -p 8080:8080 \ - -e SW_OAP_ADDRESS=http://oap:12800 \ - -e SW_ADMIN_ADDRESS=http://oap:17128 \ - -e SW_ZIPKIN_ADDRESS=http://oap:9412 \ - ghcr.io/apache/skywalking-horizon-ui:latest + -p 8081:8081 \ + -v "$PWD/horizon.yaml:/app/horizon.yaml:ro" \ + apache/skywalking-ui:latest +``` + +A minimal `horizon.yaml` pointed at your OAP cluster: + +```yaml +oap: + queryUrl: http://oap:12800 # GraphQL / query surface + adminUrl: http://oap:17128 # admin host (runtime-rule, inspect, dsl-debugging, status) + zipkinUrl: http://oap:9412/zipkin # only if a layer uses Zipkin traces ``` -### Environment variables +There is no default account — you must configure at least one login +(local users or LDAP) before anyone can sign in. Authentication, RBAC, +sessions, the full `horizon.yaml` reference, and the container layout are +all covered in the Horizon UI docs; don't expect this page to mirror +them. + +## What Horizon UI provides + +Beyond the application itself, Horizon UI ships the entire visualization +layer that the OAP backend no longer seeds: the default dashboard +configurations for every supported layer, several cross-cutting overview +and 3D infrastructure-map setups, i18n translations, and the sidebar +menu. Operators customize these in the UI's admin pages. -| Variable | Default | Description | -|---|---|---| -| `SW_OAP_ADDRESS` | `http://127.0.0.1:12800` | OAP public GraphQL / REST surface — read-side queries (services, metrics, traces, logs, alarms, MQE). | -| `SW_ADMIN_ADDRESS` | `http://127.0.0.1:17128` | OAP admin host — `/ui-management/templates/*` (dashboard templates; menu is owned by Horizon UI client-side), `/status/*`, `/inspect/*`, `/dsl-debugging/*`, `/runtime/rule/*`. | -| `SW_ZIPKIN_ADDRESS` | `http://127.0.0.1:9412` | OAP Zipkin v2 query endpoint, for trace ingestion paths that target the Zipkin compatibility layer. | +## Documentation -## Building UI assets +Horizon UI's documentation is the source of truth and tracks the UI +release, not this backend. Start here: -The Horizon UI repository owns its own build, release, and CI workflow. To -contribute dashboards, menus, widgets, or i18n, see the -[Horizon UI contributing guide](https://github.com/apache/skywalking-horizon-ui#contributing). +* [Horizon UI documentation](https://skywalking.apache.org/docs/skywalking-horizon-ui/next/readme/) +* [Container image & deployment](https://skywalking.apache.org/docs/skywalking-horizon-ui/next/setup/container-image/) +* [`horizon.yaml` reference](https://skywalking.apache.org/docs/skywalking-horizon-ui/next/setup/horizon-yaml/) +* [OAP connection](https://skywalking.apache.org/docs/skywalking-horizon-ui/next/setup/oap/) diff --git a/docs/en/ui/README.md b/docs/en/ui/README.md index c488825f24..c2e0dc0b99 100644 --- a/docs/en/ui/README.md +++ b/docs/en/ui/README.md @@ -34,9 +34,12 @@ Each area lives in the ## Bundled UI templates The OAP backend does **not** seed dashboard JSONs at boot anymore. -Horizon UI owns the bundled template set — layer dashboards, overview -templates, and alert views — and ships them in its own image. See -[apache/skywalking-horizon-ui · apps/bff/src/bundled_templates](https://github.com/apache/skywalking-horizon-ui/tree/main/apps/bff/src/bundled_templates). +Horizon UI owns and ships the entire bundled set in its own image: the +default dashboard configurations for every supported layer, several +cross-cutting overview and 3D infrastructure-map setups, the sidebar +menu, and i18n translations. Operators customize these in the UI's admin +pages; see the +[Horizon UI documentation](https://skywalking.apache.org/docs/skywalking-horizon-ui/next/readme/). ## Editing dashboards from the UI
