Vantage Studio ships as a single Docker image. The fastest way to
see it running is the demo docker compose stack that brings up
Studio + OAP + BanyanDB together; for production deployments see
docker.md.
git clone https://github.com/wu-sheng/vantage-studio
cd vantage-studio
make compose-upThis builds the Studio image locally and runs:
studioon:8080oap(apache/skywalking-oap-server:admin-server) on the cluster network — admin port17128and status port12800are not exposed to the hostbanyandbstorage on its default port
Visit http://localhost:8080 and log in:
- username:
admin - password:
vantage-changeme
Replace the default password before exposing this instance. The first-run config seed at
/data/studio.yamlis hot-reloaded — edit it in place and the BFF picks up the change within ~1 s. Seeauth.mdfor thevsadmin:hashworkflow.
docker compose down --volumes (or make compose-down) wipes the
state.
Studio binds to the admin-server module introduced by
SWIP-13
— a shared HTTP server (port 17128) that hosts the runtime-rule
plugin's REST surface alongside OAL listing and the DSL live
debugger. The compose stack expects an OAP image tagged locally as
apache/skywalking-oap-server:admin-server built from the SWIP-13
branch. Build it from a checkout of apache/skywalking
(./mvnw … && docker build …) or pull from your own CI registry.
The minimum SkyWalking version is 10.5.0 — see
compatibility.md.
Studio's BFF only talks to admin-server-bound OAP modules. All four selectors default to empty (disabled) in stock OAP; Studio requires all four. Set them on the OAP container:
SW_ADMIN_SERVER=default # shared HTTP server on :17128 (host module for the others)
SW_RECEIVER_RUNTIME_RULE=default # /runtime/rule/* + /runtime/oal/*
SW_DSL_DEBUGGING=default # /dsl-debugging/* live debugger
SW_INSPECT=default # /inspect/* — catalog + entity browser (SWIP-14)What breaks if you omit each one:
| Selector | What stops working in Studio |
|---|---|
SW_ADMIN_SERVER |
Everything. Without the host module, the other three fail at boot with ModuleNotFoundException: admin-server. |
SW_RECEIVER_RUNTIME_RULE |
DSL Management pages (Catalog, OAL catalog), the Editor's rule fetch/save path, the Cluster status rule-convergence matrix, the Live debugger's rule picker, and the Inspect drawer's source attribution (every metric falls back to the unknown bucket). |
SW_DSL_DEBUGGING |
The Live debugger across all three DSLs (start / poll / stop), and the DSL-debugging health pane in Cluster status. |
SW_INSPECT |
The Inspect page — every /api/inspect/* call returns 404 inspect_not_enabled and the page renders an actionable banner instead of the board. |
The "Backend unreachable" / oap_unreachable banners you see in
Studio when a selector is missing are honest reports — Studio is
running fine, the upstream just isn't exposing the path. Set the
selector + restart OAP and the page recovers on the next poll.
The admin-server has no authentication in this release. Reach it only over the cluster's private network — never expose port
17128to the public internet. Studio is the only authenticated client.
For Docker / Kubernetes deployment patterns, image override knobs,
secret layering, and reverse-proxy notes, see
docker.md. For the YAML schema see
configure.md. For users + RBAC + audit see
auth.md.
Deferred to a follow-up release. Until then, the Docker image works
in a Deployment + Service + PersistentVolumeClaim of your own —
docker.md has a working manifest.