This is an automated email from the ASF dual-hosted git repository.
wu-sheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 768d0693aa Correct Horizon UI setup docs: Docker Hub image, port 8081,
horizon.yaml config (#13888)
768d0693aa is described below
commit 768d0693aac34ed49ce4d1c89e4a56df353e4140
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Tue Jun 2 23:00:54 2026 +0800
Correct Horizon UI setup docs: Docker Hub image, port 8081, horizon.yaml
config (#13888)
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