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)¶
- dash.cloudflare.com → Workers & Pages → Create → Pages → Connect to Git.
- Repo
rexnfx79/STEMRacing. - Project name:
apexstem-board - 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 |
- Save and Deploy.
- Custom domains →
board.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: Actions → Deploy apexstem board → Run 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-boardbuild green - [ ]
board.apexstem.orgHTTPS 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.orghas no Board/grants nav