This is an automated email from the ASF dual-hosted git repository. wu-sheng pushed a commit to branch blog/p17-image-dockerhub in repository https://gitbox.apache.org/repos/asf/skywalking-website.git
commit 79a38cba37f5455d0dd36c92f1a7ee2ee987ef1e Author: Wu Sheng <[email protected]> AuthorDate: Tue Jun 30 15:03:42 2026 +0800 docs(blog): correct Horizon UI image coordinates in post 17 (Docker Hub, not GHCR) The user-facing release image is published to Docker Hub as apache/skywalking-ui (shared with the previous UI), with Horizon releases tagged horizon-<version> and latest — per the repo's publish-image.yaml mirror step. GHCR (ghcr.io/apache/skywalking-horizon-ui) holds the per-commit CI/SHA builds, not the release image, so it's the wrong coordinate for a getting-started guide. Updated the prose, the docker run example, and the pin advice in both EN and CN. --- .../2026-06-30-horizon-ui-getting-started-and-migration/index.md | 6 +++--- .../zh/2026-06-30-horizon-ui-getting-started-and-migration/index.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/blog/2026-06-30-horizon-ui-getting-started-and-migration/index.md b/content/blog/2026-06-30-horizon-ui-getting-started-and-migration/index.md index b1aef7e93ee..79e3328a197 100644 --- a/content/blog/2026-06-30-horizon-ui-getting-started-and-migration/index.md +++ b/content/blog/2026-06-30-horizon-ui-getting-started-and-migration/index.md @@ -12,7 +12,7 @@ This is the seventeenth and final post in the [Meet Horizon UI](/blog/2026-06-21 ## One image, one config -Horizon ships as a **single container image** — the Vue UI and its Fastify BFF in one artifact — published to GHCR at `ghcr.io/apache/skywalking-horizon-ui`. There's one configuration file, `horizon.yaml`, and its defining trait is that **every field is an environment-variable token** (`${HORIZON_X:default}`) expanded *before* the YAML is parsed. So you can run the image with nothing mounted and set only the env vars you care about, or copy the file, edit it, and mount it. +Horizon ships as a **single container image** — the Vue UI and its Fastify BFF in one artifact — published to Docker Hub as `apache/skywalking-ui`, with Horizon releases tagged `horizon-<version>` (and `latest`). There's one configuration file, `horizon.yaml`, and its defining trait is that **every field is an environment-variable token** (`${HORIZON_X:default}`) expanded *before* the YAML is parsed. So you can run the image with nothing mounted and set only the env vars you care about, [...] ```yaml # horizon.yaml — every field is an env token: ${HORIZON_X:default}, @@ -44,10 +44,10 @@ docker run -d --name horizon -p 8081:8081 \ -e HORIZON_OAP_QUERY_URL=http://oap:12800 \ -e HORIZON_OAP_ADMIN_URL=http://oap:17128 \ -e HORIZON_AUTH_LOCAL_USERS='[{"username":"admin","passwordHash":"$argon2id$...","roles":["admin"]}]' \ - ghcr.io/apache/skywalking-horizon-ui:<version> + apache/skywalking-ui:horizon-<version> ``` -Two things worth knowing on the first boot. There is **no default admin/admin** — with the `local` backend and no users (or `ldap` with no group mappings) the BFF starts but no one can sign in until you configure it; you generate password hashes with `pnpm --filter bff cli:hash`. And for reproducible deploys, **pin to a specific release tag or commit SHA** rather than a rolling tag. +Two things worth knowing on the first boot. There is **no default admin/admin** — with the `local` backend and no users (or `ldap` with no group mappings) the BFF starts but no one can sign in until you configure it; you generate password hashes with `pnpm --filter bff cli:hash`. And for reproducible deploys, **pin to a specific `horizon-<version>` tag** rather than `latest`. ## What works on which OAP diff --git a/content/zh/2026-06-30-horizon-ui-getting-started-and-migration/index.md b/content/zh/2026-06-30-horizon-ui-getting-started-and-migration/index.md index 915f590dc9e..2b2a9f5f2f7 100644 --- a/content/zh/2026-06-30-horizon-ui-getting-started-and-migration/index.md +++ b/content/zh/2026-06-30-horizon-ui-getting-started-and-migration/index.md @@ -14,7 +14,7 @@ tags: ## 一个镜像,一份配置 -Horizon 以**单个容器镜像**发布:Vue UI 和 Fastify BFF 打在同一个 artifact 里,镜像位于 GHCR:`ghcr.io/apache/skywalking-horizon-ui`。配置文件只有一个:`horizon.yaml`。它最重要的特点是,**每个字段都是环境变量 token**(`${HORIZON_X:default}`),并且会在 YAML 解析之前展开。所以你可以不挂载任何文件,只用环境变量启动镜像;也可以复制这份文件,修改后挂载进去。 +Horizon 以**单个容器镜像**发布:Vue UI 和 Fastify BFF 打在同一个 artifact 里,镜像发布在 Docker Hub:`apache/skywalking-ui`,Horizon 的 release 用 `horizon-<version>` 标签(也提供 `latest`)。配置文件只有一个:`horizon.yaml`。它最重要的特点是,**每个字段都是环境变量 token**(`${HORIZON_X:default}`),并且会在 YAML 解析之前展开。所以你可以不挂载任何文件,只用环境变量启动镜像;也可以复制这份文件,修改后挂载进去。 ```yaml # horizon.yaml — 每个字段都是 env token: ${HORIZON_X:default} @@ -46,10 +46,10 @@ docker run -d --name horizon -p 8081:8081 \ -e HORIZON_OAP_QUERY_URL=http://oap:12800 \ -e HORIZON_OAP_ADMIN_URL=http://oap:17128 \ -e HORIZON_AUTH_LOCAL_USERS='[{"username":"admin","passwordHash":"$argon2id$...","roles":["admin"]}]' \ - ghcr.io/apache/skywalking-horizon-ui:<version> + apache/skywalking-ui:horizon-<version> ``` -第一次启动时有两点需要注意。第一,Horizon **没有默认的 admin/admin**。使用 `local` 后端但没有配置用户,或者使用 `ldap` 但没有配置 group mapping 时,BFF 会启动,但没人能登录;密码哈希可以用 `pnpm --filter bff cli:hash` 生成。第二,为了让部署可复现,生产环境应该固定到明确的 release tag 或 commit SHA,而不是使用滚动标签。 +第一次启动时有两点需要注意。第一,Horizon **没有默认的 admin/admin**。使用 `local` 后端但没有配置用户,或者使用 `ldap` 但没有配置 group mapping 时,BFF 会启动,但没人能登录;密码哈希可以用 `pnpm --filter bff cli:hash` 生成。第二,为了让部署可复现,生产环境应该固定到明确的 `horizon-<version>` 标签,而不是 `latest`。 ## 哪些功能需要哪个 OAP
