Skip to main content

Private GitHub Pages

Status: guarded fallback, not currently deployable from the personal Mobilis-Mobile/00-MobilisArchitectureInfo repo.

Current Decision

Do not publish the private service dashboard to normal GitHub Pages from this personal-account repository. Prefer the Private Cloudflare Pages path when a dedicated Pages project is protected by Cloudflare Access.

GitHub Pages can be built from private repositories, but private site access control is only available for organization-owned private or internal project sites on GitHub Enterprise Cloud. This repository is currently a private personal-account repository, so a normal Pages deployment would not satisfy the "only private" requirement.

Sources:

Guarded Workflow

The repository includes a guarded workflow:

The workflow refuses to deploy unless all of these are true:

  • the repository owner is an organization
  • the repository is private or internal
  • GitHub Pages is already configured
  • GitHub Pages visibility is private
  • repository variable ENABLE_PRIVATE_GITHUB_PAGES is set to true

This prevents a first deploy that accidentally exposes the dashboard publicly.

How To Enable Later

  1. Move the repository or docs portal source to an organization that uses GitHub Enterprise Cloud.
  2. In GitHub Pages settings, set the source to GitHub Actions.
  3. Set the GitHub Pages visibility dropdown to Private.
  4. Add repository variable ENABLE_PRIVATE_GITHUB_PAGES=true.
  5. Run the private-github-pages workflow.

Public Build Safety

The normal public docs build must not bundle the private registry.

Public builds use a locked placeholder for /private/third-party-services and must pass:

cd docs-portal
DEPLOY_TARGET=cloudflare-pages MOBILIS_PRIVATE_DASHBOARD_ENABLED=false npm run build
npm run test:third-party-services-public-build

Private/local builds can include the registry and must pass:

cd docs-portal
npm run build
npm run test:third-party-services-browser