Update static site generator to Astro and deploy to cloudflare pages - #40
Merged
Conversation
Removes Docusaurus 3.5.2 configuration and build artifacts, replaces with Astro 7.0.2 scaffolding including Starlight, React, and Tailwind. Sets up package.json, tsconfig.json, and .gitignore for Astro development with Node >=22. Logo and favicon preserved for later integration.
Adds astro.config.mjs with Starlight integration, content.config.ts, the intro index.md page, logo/favicon assets, and installs playwright for mermaid/rehype-mermaid rendering support. Build verified: exits 0, dist/ created with index.html.
Replace stale Docusaurus instructions with correct Astro + Starlight commands, Node >= 22 requirement, and CI workflow reference.
This was referenced Jul 6, 2026
Resolve conflicts from the Docusaurus -> Astro/Starlight migration landing alongside main's nebari-nebi-pack -> nebi-pack repo rename: - docs/docusaurus.config.ts: keep deleted (Docusaurus is gone; main's edits to it were only the repo rename) - docs/package.json, docs/package-lock.json: keep the Astro dependency set, and carry main's rename of the docs package to nebi-pack-docs Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The docs workflows added on this branch used floating tags, unlike the rest of the repo which pins to SHAs with a version comment. Pin them and bring every action up to its latest release: - actions/checkout v4 / v6.0.2 -> v7.0.1 - actions/setup-node v4 -> v7.0.0 - cloudflare/wrangler-action v3 -> v4.0.0 - thollander/actions-comment-pull-request v3 -> v3.0.1 - azure/setup-helm v4.3.1 -> v5.0.1 - actions/add-to-project v1.0.2 -> v2.0.0 The major bumps are safe for this repo: checkout v7 only blocks fork-PR checkout on pull_request_target/workflow_run (unused here), setup-node v7 and setup-helm v5 are ESM/node24 runtime moves with unchanged inputs, wrangler-action v4 only changes the default Wrangler to v4 and keeps the pages-deployment-alias-url output, and add-to-project v2 is deps-only. Also fix the build warning that @astrojs/sitemap was skipping sitemap generation whenever SITE was unset, by defaulting site to the production URL. CI still overrides it for PR preview aliases. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The site was a single placeholder page. Adopt the structure the chat-pack docs use (Getting Started / Reference sidebar groups, shared @Nebari mermaid theme, /-rooted internal links) and write the four pages that have a real nebi-pack analogue: - getting-started install on a Nebari cluster; what the single required value derives, and why secrets are generated by a Job - helm-values full values reference, including what each empty default derives and the orgCABundle contract - architecture routes vs publicRoutes, gateway-enforced auth, split-horizon discovery, and the RWO/in-memory-queue constraints behind Recreate + replicaCount 1 - local-development the ctlptl/k3d/Tilt loop, and what it cannot test Skipped chat-pack's agents/tools/branding/api-reference pages, which have no counterpart here. Set the site URL to the pack-portal convention while here: the workflow already computes SITE/BASE the chat-pack way (PACK_SLUG=nebi-pack), so default `site` to the production origin. The sitemap now emits canonical https://packs.nebari.dev/nebi-pack/ URLs instead of being skipped. All derived values quoted in these pages were verified against `helm template` output rather than read off the templates. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The pack dashboard's generate_routes.py only adds a packs.nebari.dev/<repo-name>/ route for tracked packs whose metadata sets docs_site: true. nebari-dev/nebi-pack is already in tracked-packs.yaml, but without this field the Cloudflare Pages deploy is unreachable at the portal URL the README and docs site both advertise. Verified by running the dashboard's own build_routes() against this file: with docs_site it yields https://nebi-pack.pages.dev (matching the --project-name the docs workflow deploys to), without it the slug is absent from the route table entirely. Also fill in three fields that were left commented out and are now determinable: - nebariapp_integration: full -- the chart emits a NebariApp covering routing, Keycloak auth with client provisioning and token exchange, and a landing-page tile - scope.standalone-supported: true -- nebariapp.enabled=false installs without the operator - links.docs -- the routed docs site Left `description` unset: the dashboard sources that column from the GitHub repo description, which is already set. Validated with check-jsonschema against the current upstream schema. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reference Issues or PRs
closes #37
closes #27
What does this implement/fix?
Put a
xin the boxes that applyTesting
Documentation
Access-centered content checklist
Text styling
H1or#in markdown).Non-text content
Any other comments?