SirPepperPot Wiki — Cloudflare Pages deployment

Architecture decision

DocFX is used as the publishing engine for the full SirPepperPot Wiki. Normal mod/game/community pages are conceptual Markdown, while the Community Toolkit section can additionally include a generated XML-comment/C# API reference. The resulting site is static and suitable for Cloudflare Pages.

Cloudflare Pages' current v3 build image does not list .NET as a preinstalled runtime. The repository therefore includes scripts/cf-pages-build.sh, which installs a .NET 8 SDK into the build workspace when dotnet is absent, restores the pinned DocFX 2.78.5 local tool, optionally generates the API reference from _toolkit, and builds _site.

Local Windows build

Prerequisite: .NET 8 SDK.

./scripts/build-local.ps1

Output: _site

Preview after building with any static server, or use:

./scripts/serve-local.ps1

Cloudflare Pages project

Create a separate Pages project for the wiki.

  • Production branch: main
  • Root directory: repository root
  • Build command: bash scripts/cf-pages-build.sh
  • Build output directory: _site

No D1, R2 or Worker binding is needed for the initial static wiki.

API generation and private source

Do not configure Cloudflare Pages to clone the private Toolkit source. Production builds consume committed generated-api/ metadata only. Generate that metadata locally from release DLL + XML documentation with scripts/generate-api-public.ps1. This keeps source code and PDB/source-link data out of both the public wiki repository and Cloudflare's build checkout.

Normal Mods/Games/Community wiki pages require no separate build pipeline; Markdown committed to this repository is included automatically.

Custom domain

After the first Pages deployment:

  1. Cloudflare Dashboard → Workers & Pages → the wiki Pages project.
  2. Custom domainsSet up a domain.
  3. Enter wiki.sirpepperpot.com.
  4. Confirm the association.

Because sirpepperpot.com is already managed in Cloudflare DNS, Cloudflare can add the required CNAME record during the custom-domain flow. Do the Pages custom-domain association first; do not manually create only a CNAME and skip the Pages association.

HTTPS is handled by Cloudflare for the Pages custom domain after activation. If restrictive CAA records are present on the zone, verify they permit Cloudflare's certificate issuance.

Redirects and caching

No content redirect or custom cache rule is required initially. Cloudflare already serves the generated site as static Pages assets.

Optional later: create a Cloudflare Bulk Redirect from the production *.pages.dev hostname to https://wiki.sirpepperpot.com if you want one canonical public host.