Publishing¶
Overview¶
The documentation is configured as an MkDocs Material site and can be: - previewed locally - built into a static site - published automatically through Cloudflare Pages
Local Preview¶
Create a Python virtual environment and install the docs dependencies:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements-docs.txt
Run the docs site locally:
mkdocs serve
Or, if MkDocs is installed in your active Python environment, use the npm helper:
npm run docs:serve
Default local URL:
http://127.0.0.1:8000
Static Build¶
To build the site into the local docs_site/ directory:
bash scripts/build-docs.sh
Or:
npm run docs:build
Screenshot Publishing¶
Screenshots are published as normal static assets. Store them under:
docs/manual/assets/
Reference them with relative paths inside Markdown:

or from a workflow file:

Recommended Publishing Workflow¶
- Update the relevant workflow or manual page
- Add or update screenshots in
docs/manual/assets/ - Preview locally with
mkdocs serve - Commit changes
- Push to
main - Verify the published site
Cloudflare Pages Publishing¶
This repository also includes a Cloudflare Pages deployment workflow.
Option A: Cloudflare Pages via GitHub Actions¶
Use .github/workflows/docs-cloudflare-pages.yml.
Required GitHub repository secrets:
- CLOUDFLARE_API_TOKEN
- CLOUDFLARE_ACCOUNT_ID
Optional GitHub repository variable:
- CLOUDFLARE_PAGES_PROJECT
If CLOUDFLARE_PAGES_PROJECT is not set, the workflow defaults to:
gmpro-manual
Option B: Cloudflare Pages via Dashboard¶
If you prefer configuring Cloudflare Pages directly in the dashboard:
1. Connect the GitHub repository to Cloudflare Pages
2. Set the production branch to main
3. Configure the build command as:
bash scripts/build-docs.sh
Output directory:
docs_site
Recommended Cloudflare Pages Settings¶
- Framework preset:
None - Build command:
bash scripts/build-docs.sh - Build output directory:
docs_site - Root directory:
/
Why MkDocs Is Still Correct¶
Cloudflare Pages is the host, not the site generator.
MkDocs remains the correct tool because:
- the source content is already Markdown-based
- the manual uses a docs-style navigation tree
- screenshots are simple static assets
- Cloudflare Pages serves the generated site/ output cleanly
So the pipeline is:
1. write docs in docs/
2. build with MkDocs
3. deploy the generated docs_site/ folder to Cloudflare Pages