Skip to content

crypt0rr/kb

Repository files navigation

Knowledge Base (kb)

Just some silly notes digitalized, have fun and feel free to open PR.

Live version of the site is available on kb.offsec.nl.

Run Locally?

git clone https://github.com/crypt0rr/kb
cd kb
npm ci
npm run dev -- --host 127.0.0.1

Use the Node.js version in .node-version.

Checks

npm run check
npm run check:assets
npm run check:content
npm run check:links
npm run audit:known
npm run sysinternals:check
npm run build
npm run smoke
npm run validate

The build renders the Astro site, copies non-Markdown files from content/ into dist/, generates an asset manifest with SHA256 hashes, and then builds the Pagefind search index.

npm run check:content validates frontmatter, shortcodes, references, and downloadable content assets. New files under content/**/files/ must be referenced by a resources or attachments shortcode unless they are an intentional mirror/bulk asset listed in scripts/content-policy.json. npm run check:links validates internal Markdown links, anchors, images, and downloadable assets. External links are inventoried without network calls. npm run validate runs the full local validation gate.

Use npm run sysinternals:check to compare the published Sysinternals files with https://live.sysinternals.com/. Use npm run sysinternals:sync to download missing or changed root and ARM64 files. The sync workflow skips live directories, marker files, and files over the 25MB Cloudflare Pages limit.

Security Notes

npm run audit:known expects a clean npm audit result and fails on any reported vulnerability. Keep Astro/Vite updated through Renovate and review dependency advisories before adding any exception.

Contributing

Feel free to open a PR with your content/changes. Some rules:

  • Markdown styling as used in other content;
  • Content is UTF-8;
  • Single file size limit 25MB;
  • Non-Markdown files in content/ are published as downloadable assets;
  • PR naming describes content.

License

GNU GPLv3