This is the repository including all source codes of https://skywalking.apache.org.
This site was compiled using Hugo.
- Install Hugo
- Pull this repo into your local environment, and run
npm installto install the required libraries (without pulling the project documentation). - Run
hugo serverat the root folder, you can see the site preview from http://localhost:1313 - To generate the static website, run
npm run buildfor the whole website. Runnpm run build-with-docsif you want to build the project documentations.
This guide will guide you on how to contribute to the site.
This site uses Hugo to organize and manage content with the following sections are available:
Located at content/_index.html。
The Projects catalog is at /docs/. data/projects.yml is the shared source for
catalogs, project identities, documentation, releases, downloads, and container
images. Each catalogs entry has an id, name, description, optional note,
and a projects list. Optional project featured and menu fields control
featured cards and menu shortcuts; the top-level menu list configures shortcut
groups. Project shortcuts open the matching catalog card, where visitors can
choose documentation or downloads.
Development documentation belongs in next.docs. Released versions belong in
releases, with exactly one latest: true when the list is nonempty. Projects
without releases can use releases: []. For example:
catalogs:
- id: SkyWalkingServers
name: Platform & visualization
description: Analyze telemetry and explore your systems.
projects:
- name: SkyWalking
repo: skywalking
user: apache
repoUrl: https://github.com/apache/skywalking.git
description: SkyWalking primary repository and docs.
next:
docs:
link: /docs/main/next/readme/
releases:
- version: v11.0.0
latest: true
docs:
link: /docs/main/v11.0.0/readme/
commitId: 6f1fd78e872f1d380a14f271c26e8d68eb2430fc
latestLink: /docs/main/latest/readme/
latestCommitId: 6f1fd78e872f1d380a14f271c26e8d68eb2430fc
downloads:
- name: Source archive
type: source
link: https://www.apache.org/dyn/closer.cgi/skywalking/11.0.0/apache-skywalking-apm-11.0.0-src.tar.gz
asc: https://downloads.apache.org/skywalking/11.0.0/apache-skywalking-apm-11.0.0-src.tar.gz.asc
sha512: https://downloads.apache.org/skywalking/11.0.0/apache-skywalking-apm-11.0.0-src.tar.gz.sha512
dockerImages:
- name: SkyWalking OAP Server
link: https://hub.docker.com/r/apache/skywalking-oap-server
menu: []docs.link and docs.commitId define the numbered documentation. The latest
release's docs.latestLink generates the Latest documentation choice and requires
its own explicit docs.latestCommitId. These two commit pins are authoritative
and may intentionally differ from each other and from the release tag. Preserve
them exactly; never infer or replace them from tags. Optional docs.label
customizes the displayed version name, including for next.docs.
Each release can have documentation, downloads, or both. Each download has name,
type (source or binary), and link; provide asc and sha512 together when
available. Each project's dockerImages array sits alongside releases and
contains named Docker Hub repository links with optional descriptions. Images
remain available independently of the selected release; they are repository
links rather than version-pinned image tags.
Run node scripts/project-config.js to validate the configuration locally without
fetching documentation or release artifacts.
The desktop header keeps Blogs beside Projects, followed by Release Posts,
Event Calendar, Users, Team, and 中文博客 in that priority order as space allows.
A More dropdown appears only when some links do not fit.
assets/js/adaptive-navigation.js measures the available width. The mobile
drawer uses a flat page list, with Projects opening the catalog directly and
Downloads and Get started available as separate links.
The dedicated /downloads/ page reads each project's releases from the same
data/projects.yml. Project downloadAliases preserve published download links
by directing them to the matching project on the download page.
The download sidebar groups projects into expandable categories, opens search
matches automatically, and keeps the selected project's category expanded.
The separate /get-started/ page contains Showcase and installation quickstarts.
Both come from data/get-started.yml, separate from the project catalog. Its
showcase block contains Showcase's identity, next.docs, and quickstart
commands; its skywalking block contains platform installation commands.
showcase.diagram defines the interactive application and observability graphs,
request paths, and optional scenarios. Node IDs must be unique within a view;
edges and paths reference those IDs, while column, row, and optional rowSpan
place the desktop cards. Keep the graph aligned with the Showcase README,
service code, and Docker/Kubernetes scenario manifests, including platform support. H2 belongs to
the music application; BanyanDB stores SkyWalking telemetry. Show ecosystem
integrations separately from native agents: the Showcase collectors export
OTLP metrics, while its Kubernetes mesh scenario supplies ALS access logs and
Zipkin traces. Broader receiver capabilities belong in the component details.
The documentation link comes from showcase.next.docs.link.
The navbar Search button and Command/Ctrl+K open Kapa.ai in search mode, with AI
answers available in the same dialog. The bundled widget is configured in
themes/docsy/layouts/partials/scripts.html; it uses .sw-kapa-search as its
search launcher, while the floating Ask AI button opens AI answers. Algolia
DocSearch and offline search are disabled in config.toml.
Release managers of SkyWalking projects should use the Kapa.ai dashboard to sync and ingest new documentation/blogs/FAQs if needed, or set up automatic refresh (crawling) of the search and AI sources.
If you need access to the dashboard, contact @superskyyy for an invitation.
Located at content/events. If you don't want to create a new blog, you need to create a new subdirectory under this directory. Here is a sample event below.
---
title: This is a title
date: 2020-04-28
author: Author
description: This is description.
# endTime: 2021-04-24T23:59:59Z
# startTime: 2021-04-22T00:00:00Z
# buttonText: Go
# img: /images/skywalking_200x200.png
---
ContentIf you want to display the summary in the popover in the lower right corner, you need to configure a parameter endTime. The parameters are as follows.
| Parameter | Description | Required | Default |
|---|---|---|---|
| endTime | End time | true | - |
| startTime | Start time | false | Current time |
| buttonText | Button text | false | Read more |
| img | The illustration | false | /images/skywalking_200x200.png |
| poster | The poster | false | - |
Located at data/talks.yml, rendered on the standalone Event Calendar page at
/events/calendar/, linked from the top menu. Conference talks, meetups and summits
go here. Release Posts opens the separate monthly archive at
/events/, populated from content/events.
To add or update a talk, edit data/talks.yml and open a pull request. You can do it
entirely in the browser: use the Add your talk link on the calendar page, or the
GitHub Edit button on the file. No local Hugo setup needed.
Give each event a unique lowercase ASCII kebab-case id containing its name and
year. Keep the ID permanent even if the title or date changes. Share event
copies a link of the form /events/calendar/#<id>; links to older events open
the matching year automatically. Numeric-only fragments such as #2023 remain
reserved for year filters.
events:
- event: Community Over Code Asia 2026
id: community-over-code-asia-2026
intro: >-
One or two sentences on what this conference is, for readers who
have never heard of it.
start: "2026-08-07"
end: "2026-08-09" # omit for a single-day event
location: Beijing, China # or "Online"
venue: Mountain Yang Hall # optional
url: https://asia.communityovercode.org
recap: /zh/2023-08-20-coc-asia-2023/ # optional, a recap post on this site
talks:
- title: "Observing LLM Applications with SkyWalking 10.4"
speaker: 邵一鸣 YiMing Shao
date: "2026-08-09" # only when it differs from the event start
time: 13:30 GMT+8
room: Mountain Yang Hall
url: https://asia.communityovercode.org/sessions/observability-1206017.html
video: https://www.bilibili.com/video/BVxxxxxxxxx
intro: >-
One or two sentences on what the session covers, in the same
language as the title.Event fields:
| Parameter | Description | Required | Default |
|---|---|---|---|
| event | Conference / meetup name | true | - |
| id | Unique permanent ASCII kebab-case name with year; do not change with the title or date | true | - |
| start | Start date, "YYYY-MM-DD", zero-padded |
true | - |
| end | End date, for multi-day events | false | start |
| location | City, Country, or Online |
true | - |
| venue | Venue name | false | - |
| intro | What this conference is, in one or two sentences | true | - |
| url | Event home page. Omit rather than guess | false | - |
| recap | Link to a recap post on this site | false | - |
| talks | One or more sessions | true | - |
Session fields, under talks:
| Parameter | Description | Required | Default |
|---|---|---|---|
| title | Session title | true | - |
| speaker | Speaker name. Use 中文名 English Name when both are known |
true | - |
| intro | What the session covers. Condense the published abstract; don't invent one | false | - |
| date | Session day, when it differs from the event start |
false | start |
| time | e.g. 13:30 GMT+8 |
false | - |
| room | Room name | false | - |
| url | Session page | false | - |
| video | Recording | false | - |
| slides | Slide deck | false | - |
Two things happen on their own, so you don't need to maintain them:
- Upcoming vs. past is decided at build time from the event's
enddate, and the site rebuilds daily, so an event moves itself into the past section once it is over. - The year pager under Past builds its year buttons and counts from the data, so a new year appears as soon as an event needs it.
If a required field is missing, an ID is invalid or duplicated, or a date isn't
in YYYY-MM-DD form, the build fails
with a message naming the offending event — so a broken entry shows up as a failed
check on the pull request rather than as a blank card on the site.
| Feed | Contents |
|---|---|
/blog/feed.xml |
English blog |
/zh/feed.xml |
中文博客 |
/events/feed.xml |
Releases and community announcements |
/feed.xml |
Combined blog, releases and community announcements |
/events/calendar/index.ics |
Event calendar, subscribable in a calendar app |
RSS is opt-in per section via outputs in that section's _index.md, not through
[outputs] section in config.toml, which would also build a feed for docs.
rss_sections and rss_limit in config.toml control the combined feed and the
window size. The template is layouts/_default/list.rss.xml.
The calendar feed is generated from data/talks.yml by
layouts/events/calendar.calendar.ics. Use the webcal:// link on the calendar
page to subscribe — downloading the .ics imports a snapshot that never updates.
Located at content/blog. If you want to create a new blog, you need to create a new subdirectory under this directory. Here is a sample blog below.
---
title: This is a title
date: 2020-04-28
author: Author
description: This is description.
---
ContentEdit the project's releases in data/projects.yml. Add the new release first,
set latest: true, and change the previous latest release to latest: false.
For an active project's latest release, use Apache's closer.cgi mirror URL for downloads and
downloads.apache.org for signatures and checksums. Move older releases' Apache
download, signature, and checksum links to archive.apache.org/dist/skywalking/.
Archived projects use archived: true and archive URLs, including for their final
release. Preserve existing documentation pins when updating release links.
This is a single page located at content/team/_index.md.
Located at content/zh. If you want to create a new blog, you need to create a new subdirectory under this directory. Here is a sample blog below.
---
title: 博客标题
date: 2020-04-28
author: 作者姓名
description: 博客摘要
---
博客正文。All user information are in /data/users.yml. Users are encouraged to add themselves to this page.
Configure in the config.toml file.
The website configuration file is located at config.toml.
The images within the blogs, events and 中文博客 should be kept at the same folder as the blog file, and you should reference them with the relative path.