Quickstart: SkyWalking 11.0.0, Horizon UI 1.0.0, BanyanDB 0.11.0 - #909
Conversation
Bumps both quickstart scripts to the current releases and switches the UI to Horizon, which is what the compose manifest they download now expects. SW_VERSION 10.4.0 (sh) / 10.2.0 (ps1) -> 11.0.0 SW_HORIZON_UI_VERSION new -> 1.0.0 SW_BANYANDB_VERSION 0.8.0 (ps1) -> 0.11.0 The UI image had to change, not just its tag. apache/skywalking docker's compose now defaults UI_IMAGE to the Horizon image; the legacy UI is gone and apache/skywalking-ui:11.0.0 does not exist. Note the released Horizon image is on Docker Hub as apache/skywalking-ui:horizon-<version> — the ghcr.io/apache/skywalking-horizon-ui path that docker/README.md and .env point at only carries commit-SHA tags and latest, so pinning a release against it would 404. Both scripts now also download horizon.yaml beside the manifest. The ui service bind-mounts ./horizon.yaml relative to the compose file, and the image reads its OAP URLs and login users only from there, so fetching the manifest alone leaves compose failing on a missing mount. The PowerShell script back-fills it when the user reuses an older manifest as well. Drops two dead lines from the shell script: the perl rewrite of the OAP health check and the start_period sed. Upstream's compose already ships the /dev/tcp probe and start_period: 90s, so both matched nothing. Verified by fetching the real manifest and config into a temp dir exactly as the script does: docker compose config resolves all three images, the horizon.yaml mount resolves to a real file, and up --dry-run creates the containers on both the elasticsearch and banyandb profiles. All three images confirmed pullable. The PowerShell script is reviewed by eye only; no pwsh available here.
❌ Deploy Preview for skywalking-website-preview failed.
|
…anch tip The scripts were pulling the Horizon config from apache/skywalking's master branch, which can change under a released quickstart the same way the image tags cannot. Serve our own copy at https://skywalking.apache.org/horizon.yaml — content/horizon.yaml, published at the site root the same way quickstart-docker.{sh,ps1} already are — and fetch that. The config body is identical to the upstream copy; only the header comment differs, explaining where it is served from and that the service names have to match the compose manifest the scripts download. Verified by building the site, serving it, and running the scripts' fetch path against it: horizon.yaml is published at the root, parses as YAML, and compose up --dry-run creates the containers on the banyandb profile.
|
Pushed a second commit moving New file The reasoning is the same one behind pinning image tags: a released quickstart should not change because a branch tip moved. This copy is reviewed alongside the versions the scripts pin. The config body is byte-identical to the upstream copy — only the header comment differs, noting where it is served from and that the Verified by building the site, serving it locally, and running the scripts' actual fetch path against it: the file is published at the site root, parses as YAML, and One consequence worth naming: the two copies can now drift. If the compose manifest upstream ever renames the |
The hosted horizon.yaml carried the upstream demo user admin/admin. Use skywalking/skywalking instead, and tell the user what it is — the sign-in credentials were nowhere in the output, so a first-time run reached a login page with no way past it. Both scripts now close with the username and password and a note to change them before exposing the UI beyond localhost. The Argon2id hash was generated with the argon2 module inside the Horizon image itself, so it is the same implementation the verifier uses; the rotation command is recorded in a comment above it. Verified against a real container: booted the image with this config and POSTed /api/auth/login. skywalking/skywalking returns 200 with roles ["admin"] and verbs ["*"]; admin/admin and a wrong password both return 401.
|
Third commit: the quickstart now boots with skywalking / skywalking and says so. The hosted The Argon2id hash was generated with the Verified against a real container rather than by inspection — booted
|
Brings
content/quickstart-docker.shandcontent/quickstart-docker.ps1up to the current releases. Two of the changes are not version bumps — they are fixes for things that would break the quickstart as it stands.Versions
SW_VERSIONSW_HORIZON_UI_VERSIONSW_BANYANDB_VERSIONThe PowerShell script had drifted a long way further behind than the shell one.
The UI image changed, not just its tag
apache/skywalking'sdocker/docker-compose.ymlnow defaultsUI_IMAGEto the Horizon image — the legacy UI is gone from the repo, andapache/skywalking-ui:11.0.0does not exist. Both scripts were forcingapache/skywalking-ui:${SW_VERSION}, so they would fail on a bad image reference.Worth flagging for reviewers, because the obvious fix is wrong: the released Horizon image is on Docker Hub as
apache/skywalking-ui:horizon-<version>. Theghcr.io/apache/skywalking-horizon-uipath that upstream'sdocker/README.mdand.envpoint at carries only commit-SHA tags andlatest— there is no1.0.0there, so pinning a release against the documented path would 404.The scripts never downloaded
horizon.yamlThe
uiservice bind-mounts./horizon.yamlrelative to the compose file, and the image reads its OAP URLs and login users only from that file — there are no env vars for them. Fetching justdocker-compose.ymlleaves compose failing on the missing mount. Both scripts now download it alongside; the PowerShell one also back-fills it when the user reuses a manifest from an earlier run that predates Horizon.Two dead patch lines removed
The shell script carried a
perlrewrite of the OAP health check and asedonstart_period: 10s. Upstream's compose already ships the/dev/tcpprobe andstart_period: 90s, so neither matched anything.Verification
Fetched the real manifest and config into a temp dir exactly as the script does, exported the same three image variables, and ran compose against it:
docker compose configresolvesapache/skywalking-oap-server:11.0.0,apache/skywalking-ui:horizon-1.0.0,apache/skywalking-banyandb:0.11.0, and thehorizon.yamlmount resolves to a real file.up --dry-runcreates the containers cleanly on both theelasticsearchandbanyandbprofiles.docker manifest inspect.sh -npasses on the shell script.The PowerShell script is reviewed by eye only — no
pwshon the machine this was written on, so a Windows check before merge would be worth having.