[Docs] Replace the Docusaurus site with Astro + Starlight - #22
Conversation
Migrates the docs site to the framework the other Nebari packs use (nebi-pack, apps-pack, chat-pack), and moves deployment off GitHub Pages: - Astro + Starlight site in docs/, npm (was Docusaurus 3 + yarn) - @nebari/starlight shared theme plugin for the Nebari identity (brand colors, fonts, logo, favicon, footer, GitHub link) built on the nebari design system, replacing the hand-maintained custom.css token copy - remark-base-links plugin so root-absolute links survive the production subpath base, with vitest coverage - scripts/check-links.sh to verify every internal link resolves in dist/ - Docs workflow: test, build, internal link check, deploy to Cloudflare Pages on main with per-PR preview deployments and a preview-cleanup workflow, replacing deploy-docs.yml (GitHub Pages) - docs/README.md and root README instructions for updating the docs - .gitignore entries updated for the Astro build artifacts Scope is the scaffolding only - the existing Introduction page carries over as-is; content lands separately. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The dashboard's route generator only adds packs.nebari.dev/superset-pack/ -> https://superset-pack.pages.dev when the pack declares docs_site: true, so the site this branch adds would not be reachable through the portal without it. The Pages project name has to match the repo name for that route to resolve, which is what the docs workflow deploys to. - docs_site: true - links.docs repointed from a stale GitHub blob URL to the published site - site and landing-page descriptions now match the GitHub repo description, which is what the dashboard's Description column reads, so the two cannot drift apart Validated against schema/pack-metadata.schema.json from software-pack-dashboard. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
c9bd0c1 to
e4b5997
Compare
|
Added a second commit registering the docs site in This turned out to be load-bearing, not cosmetic.
Validated against |
|
📄 Docs preview for |
Fills the docs scaffold from #22 with real content: getting started, deploying on Nebari, standalone, local development, Keycloak OAuth, secret key, database and Redis, and a configuration reference. Two silent failures get dedicated pages: an unset `nebariapp.routing` (no HTTPRoute and no certificate, while the NebariApp still reports Ready) and Argo CD rotating `SUPERSET_SECRET_KEY` on every sync because `helm template` cannot evaluate `lookup`. Includes a round of review corrections verified against the rendered chart, upstream superset 0.17.2, the nebari-operator source, and the Kubernetes API and kubelet sources. Follow-ups filed: #24 #25 #26 #27 #28 #29 #30
Reference Issues or PRs
Closes #11. Replaces #12 — same goal, rebased on current
mainand aligned with the docs setup the other packs have since converged on (nebi-pack,apps-pack,nebari-chat-pack).What does this implement/fix?
Migrates the docs site off Docusaurus 3 + yarn + GitHub Pages. Scope is scaffolding only — the existing Introduction page carries over as-is; real content lands separately.
docs/, npm for dependency management (Node >= 22)@nebari/starlightshared theme plugin supplies the Nebari identity — brand colors, fonts, logo, favicon, footer, GitHub link — built on the nebari design system. This replacesdocs/src/css/custom.css, a hand-copied snapshot of the design tokens that had to be re-synced by hand.remark-base-linksplugin so root-absolute markdown links survive the production subpath base, with vitest coverage (10 tests)scripts/check-links.shverifies every internal link indist/resolvesDocsworkflow: unit tests → build → internal link check → deploy to Cloudflare Pages, replacingdeploy-docs.yml(GitHub Pages).mainbuilds atBASE=/superset-pack/and publishes topacks.nebari.dev/superset-pack/; PRs build atBASE=/and get a preview URL posted as a comment. ADocs preview cleanupworkflow deletes the preview when the PR closes.docs/README.mdand a README section on running and updating the docs;.gitignoreentries swapped from the Docusaurus artifacts to the Astro onesThe only Makefile in this repo is
dev/Makefile, which drives the kind dev cluster — docs targets would be out of place there, so the docs commands are documented as plainnpminvocations (same aslonghorn-backup-packandmlflow-pack). Happy to add a root Makefile instead if that's preferred.Testing
Locally, from a clean checkout:
Both the root base (PR previews) and the production subpath base build and link-check clean.
Before merging
The Cloudflare Pages project
superset-packand theCLOUDFLARE_API_TOKEN/CLOUDFLARE_ACCOUNT_IDrepo secrets need to exist, otherwise the deploy step fails (test, build, and link check still gate the PR). The old GitHub Pages site can be retired once this lands.🤖 Generated with Claude Code