Skip to content

docs(install): stop the local install page implying Lima or Docker is required - #913

Merged
slayerjain merged 1 commit into
mainfrom
docs/native-not-lima-or-docker
Sep 22, 2026
Merged

slayerjain merged 1 commit into
mainfrom
docs/native-not-lima-or-docker

Conversation

@slayerjain

Copy link
Copy Markdown
Member

The problem

https://keploy.io/docs/server/install/ reads as though Keploy needs Linux, or a VM/container on anything else. On the live page today:

  • It opens with "Keploy uses eBPF to intercept API calls on network layer" — true on Linux, not true of Keploy.
  • Its HowTo structured data declares tools: ["bash", "curl", "Linux kernel >= 5.10"] and supplies: ["A Linux or WSL2 machine", "Sudo access"], under the title "Install Keploy on Linux and capture your first test".
  • The platform-requirements table embedded at the top contradicts itself inside one row: the Without Docker column says Native, while Prerequisites for the same row says "Docker Desktop version must be 4.25.2 or above · Ensure that Lima is installed on your machine if you prefer to try without Docker" (and, for Windows, "Use WSL wsl --install").

So a Mac or Windows visitor reasonably concludes Lima or Docker is required. It has not been, since native interception shipped.

The fix

The page now states the actual contract — one command everywhere, differing only in how it intercepts:

  • Linux — eBPF in the kernel, so keploy record/keploy test need root.
  • macOS (Apple Silicon) and Windows (x86‑64) — userspace interception. No VM, no Docker, no sudo and no Administrator.

Docker, Lima and WSL remain supported alternatives, and are the route on an Intel Mac or Windows/ARM — but on a supported machine you do not need any of them.

The HowTo metadata, title and description frontmatter stop asserting Linux. The Prerequisites cells lead with "Native: nothing to install" and list the container prerequisites as what they are — needed only if you choose that route. And the Related list, which pointed at this very page ("the full install guide with OS tabs"), now points at the per-OS guides.

No install command changed; this is what the page claims about itself.

Prettier clean. Follow-up to #911 and #912.

… required

/docs/server/install/ opened with "Keploy uses eBPF to intercept API calls
on network layer", declared its tools as "Linux kernel >= 5.10" and its
supplies as "A Linux or WSL2 machine", and titled its HowTo "Install Keploy
on Linux". A macOS or Windows reader landing there concluded they needed a
VM or a container — which has not been true since native interception
shipped.

It now says what is actually the case: one command for all three, eBPF and
root on Linux, userspace and no privileges on macOS (Apple Silicon) and
Windows (x86-64), with Docker/Lima/WSL as alternatives and as the route on
an Intel Mac or Windows/ARM.

The platform-requirements table embedded at the top of that page said
"Native" in the Without Docker column while its Prerequisites column
demanded Docker Desktop and Lima on macOS, and WSL on Windows — the two
columns contradicted each other in the same row. Prerequisites now leads
with what native needs (nothing) and lists the container prerequisites as
what they are: needed only if you pick that route.

The Related list pointed at this page itself; it now points at the per-OS
guides.

Signed-off-by: slayerjain <shubham@keploy.io>
@slayerjain
slayerjain merged commit 9b60eed into main Sep 22, 2026
6 checks passed
@slayerjain
slayerjain deleted the docs/native-not-lima-or-docker branch September 22, 2026 16:55
slayerjain added a commit that referenced this pull request Sep 23, 2026
Every deploy ran reggionick/s3-deploy with delete-removed: upload the new
build, then delete every object it did not contain. Docusaurus names each
JS/CSS chunk by content hash, so the previous build's chunks vanished the
moment a deploy ran, and anything still holding the previous HTML - an
open tab, a cached page, or a second deploy running at the same time -
requested chunks that no longer existed and never hydrated. Two merges
17s apart (#912, #913) did exactly that to production: the pages rendered
but no control on them worked, including the macOS tab on
/docs/server/installation/.

The action's cache input was also word-split into the malformed header
"Cache-Control: max-age=public," on every object.

- main.yml: one deploy at a time (concurrency group, never cancelling a
  deploy in flight), and each run deploys main as it is when it starts,
  so a queued, cancelled or re-run deploy can never ship an older main.
- .github/scripts/deploy-docs.sh replaces the action. Hashed assets go up
  first and are never deleted in the same pass; a per-deploy manifest is
  written before any page; static files, text and pages follow, pages
  last; CloudFront is invalidated, dropped static files are deleted once
  it has landed, and the deploy is marked complete. Assets are pruned only
  once every page that used them was replaced more than 14 days ago,
  counted from the newest completed deploy, so a half-failed deploy can
  never cut the window short.
- Correct cache headers per class: immutable for hashed assets,
  revalidate for pages and text, one hour for other static files; UTF-8
  charset on .txt and .md (llms.txt, llms-full.txt, page copies).
- .github/scripts/deploy-docs-test.sh deploys the PR's real build into a
  local S3 (moto) on every PR and replays the incident and the weeks
  after it: a deploy that dies once its pages are up, >1000-key prunes,
  every asset a live or still-open page loads, and the step order.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant