Skip to content

Deploy board.apexstem.org — Cloudflare Pages (board / grants only)

Output: MkDocs → site/apexstem-board
Domain: board.apexstem.org
Protect with: Cloudflare Access on the entire hostname (board / finance / admin emails only)
Related: docs deploy · Access setup · rbac-groups

This is the recommended isolation model: mentors on docs.apexstem.org never see a Board tab or grants pages.


Path A — Cloudflare dashboard (Git connect)

  1. dash.cloudflare.comWorkers & PagesCreatePagesConnect to Git.
  2. Repo rexnfx79/STEMRacing.
  3. Project name: apexstem-board
  4. Production branch: main

Build settings

Setting Value
Framework preset None
Build command pip install -r docs-requirements.txt && mkdocs build -f mkdocs.apexstem-board.yml
Build output directory site/apexstem-board
Root directory / (repo root)
Variable Value
PYTHON_VERSION 3.12
  1. Save and Deploy.
  2. Custom domainsboard.apexstem.org (proxied DNS).

Path B — GitHub Actions

Push under apexstem/internal/board/ or mkdocs.apexstem-board.yml runs .github/workflows/deploy-apexstem-board.yml.

Or: ActionsDeploy apexstem boardRun workflow.

Same secrets as docs: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID.


Access (required)

Create a separate Access application for hostname board.apexstem.org (no path needed). Allow only trustee / finance / admin emails.

Do not attach the mentors/parents policy to this hostname.

Steps: board site Access


Local preview

pip install -r docs-requirements.txt
mkdocs serve -f mkdocs.apexstem-board.yml

Checklist

  • [ ] Pages project apexstem-board build green
  • [ ] board.apexstem.org HTTPS active
  • [ ] Access app on entire board.apexstem.org (board emails only)
  • [ ] Trustee can open /grants/
  • [ ] Mentor (or non-board test email) denied
  • [ ] Main docs.apexstem.org has no Board/grants nav