Publishing the Docs Site

This vault is published as a password-protected website, so authorized people can read the docs in a browser.

flowchart TB
  O["Obsidian<br/>(team edits)"] -- "Obsidian Git plugin:<br/>commit & push" --> G["Private GitHub repo"]
  W["GitHub web editor<br/>(technical guests)"] -- "edit / pull request" --> G
  G -- "push to main triggers<br/>Cloudflare Pages build" --> B["Quartz v4.5.2 build<br/>(.quartz/build.sh)"]
  B --> P["Cloudflare Pages"]
  P --> A{"Cloudflare Access<br/>sign-in check"}
  A -- allowed --> R["Readers"]

How it works

  • Source of truth: this vault, in a private GitHub repo
  • Site generator: Quartz v4.5.2, pinned. It keeps wikilinks, links to headings and question IDs ([[Questions#^q-017|^q-017]]), backlinks, graph view, Mermaid diagrams, callouts and tags.
  • Config lives in the vault: .quartz/quartz.config.ts (site settings, what’s excluded) and .quartz/quartz.layout.ts (page layout). Obsidian hides folders that start with a dot, so you won’t see them in the sidebar.
  • Build & deploy: Cloudflare Pages is connected to the GitHub repo and runs .quartz/build.sh on every push to main. The site updates about 1–2 minutes later. Pushes to other branches get their own preview URL.
  • Front page: 00 Home becomes the site’s home page.

What is (not) published

PublishedNot published
Every note in the vault……with draft: true in its frontmatter
Anything in a folder named private
99 Templates, .obsidian
Instructor-only files: instructor-key*, instructor_solution*

To hide a note, add draft: true to its properties. To hide a whole area, put it in a private folder. Patterns are edited in .quartz/quartz.config.ts → ignorePatterns.

Access is all-or-nothing

Everyone allowed through Cloudflare Access sees every published note. If Microsoft or the firms get access, check internal notes (Questions, Partnership and Agreements, the internal box in Trial Program Brief) and mark them draft: true, or set up a second, partner-facing site.

Editing

  • Team (in Obsidian): edit as usual. The Obsidian Git plugin commits and pushes on a timer, or run Git: Commit-and-sync from the command palette.
  • Edit this page: every page on the site has an ✎ Edit this page link under the title that opens the note in GitHub’s editor. Saving needs access to the repo. (Component: .quartz/components/EditLink.tsx.)
  • Technical guests: give them access to the GitHub repo. They can edit in the browser (press . on the repo page to open github.dev) and open a pull request.
  • Non-technical editors: they should comment rather than edit. If many people need to co-author, revisit an editable wiki such as Outline.

One-time setup checklist

1. GitHub

  • Create a private repo: mattrobertson15/frontier-engineering-vault
  • Push this vault to it
  • In Obsidian: Settings → Community plugins → install Git (by Vinzent) → set Auto commit-and-sync interval (e.g. 10 min) and Pull on startup

2. Cloudflare Pages

  • Cloudflare dashboard → Workers & Pages → Create → Pages tab (not Workers; look for “Looking to deploy Pages?“) → Connect to Git → authorize GitHub → pick frontier-engineering-vault
  • Project name frontier-docs, production branch main
  • Build settings: framework preset None, build command bash .quartz/build.sh, build output directory public. Node version comes from .nvmrc (22).
  • Save and Deploy, then confirm frontier-docs.pages.dev loads
  • Optional: Pages project → Custom domains → docs.frontier-engineering.ai. Then update baseUrl in .quartz/quartz.config.ts.

3. Cloudflare Access (who can see it)

  • Zero Trust → Access → Applications → Add → Self-hosted, covering both docs.frontier-engineering.ai and frontier-docs.pages.dev. Otherwise the pages.dev address stays public.
  • Also protect preview deployments: Pages project → Settings → Enable access policy
  • Policy Allow: list individual emails, or an email domain (e.g. your team’s domain)
  • Sign-in methods: One-time PIN by email works with no setup. Add Microsoft Entra ID or GitHub as identity providers for single sign-on.
  • Free plan covers up to 50 users (check current Cloudflare pricing)
  • Test in a private browser window: you should see a Cloudflare sign-in page first

Adding or removing a reader

Zero Trust → Access → Applications → the docs app → Policies → edit the email list. Changes apply on their next sign-in.

Troubleshooting

  • Build failed: Cloudflare dashboard → the Pages project → Deployments → open the failed one for the build log. Usually a malformed frontmatter block.
  • Note missing from the site: check for draft: true, a private folder, or an ignore pattern
  • Upgrading Quartz: v5 exists with a new config format. Stay on v4.5.2 until there’s a reason to move.

Related: Vault Conventions · 00 Home