A GitHub Pages alternative for private sites
GitHub Pages only publishes privately on GitHub Enterprise Cloud. The alternatives for private docs, and what each asks of you.
By Gusenga Thierry ·
The short answer
As of October 2026, GitHub Pages can only publish a private site if your organization uses GitHub Enterprise Cloud. Without it, the alternatives are a static host with password protection, an access proxy such as Cloudflare Access in front of the site, or a docs host like DocuGate that reads the repository and checks each reader.
Can GitHub Pages be private?
Only on one plan. As of October 2026, GitHub's documentation says: "To publish a GitHub Pages site privately, your organization must use GitHub Enterprise Cloud" (GitHub Docs).
On every other plan, a Pages site is public. That includes a site built from a private repository: the repository is private, and the HTML it produces is not. This catches people out, because the private repository makes it feel as though the site must be too.
If your organization is already on Enterprise Cloud, private Pages is the simplest answer and you should use it. The rest of this page is for everyone else.
What are the alternatives?
A static host with a password
Build the site the way you do now and deploy it to a host that can put a password in front of it, or to your own server with basic auth. You keep your generator, theme and build.
The limits are the limits of a shared password: everyone uses the same one, you cannot remove one person without telling everyone else a new one, and you cannot see who read what. Fine for a staging site; weak for docs with commercial content. The password protection page compares the options in more detail.
An access proxy
Cloudflare Access and similar tools sit in front of a site and make visitors sign in with an identity provider first. Each person signs in as themselves, and you can remove one without affecting the others.
This needs the domain on that provider, rules written and maintained in a separate system, and someone who owns them. It suits a company that already runs one. For a small team it is a lot to set up for a docs folder.
A docs host that reads the repository
The third option drops the build. A service reads the markdown straight from the repository, renders it, and decides on each request whether the reader may see it. DocuGate works this way.
How does DocuGate compare to GitHub Pages?
| GitHub Pages | DocuGate | |
|---|---|---|
| Source | A branch or a build output | A folder of .md files on a branch |
| Build step | Jekyll or an Actions workflow | None; folders become the sidebar |
| Private site | GitHub Enterprise Cloud only | Pro, $5 a month |
| Who can read a private site | Members with repository access | Repo access, or a named allowlist |
| Readers without GitHub | No | Yes, by email allowlist and Google sign-in |
| Editing | Commit in the repository | Edit in the browser; commits to the branch as you |
| Custom domain | Yes | Enterprise, in build |
| Themes and custom layouts | Full control | DocuGate's reader, with an accent colour and density |
The honest trade: GitHub Pages gives you full control over how the site looks, and a custom domain on any plan. DocuGate gives you a fixed reader layout, and access control on a $5 plan instead of an enterprise contract.
How does access work in DocuGate?
Each space is Public, Repo access or Allowlist.
Repo access behaves the way people expect private Pages to behave. The server fetches each page with the reader's own GitHub token, so whoever GitHub lets open the repository can read the docs and nobody else can. There is no separate permission list. See access control.
Allowlist goes further than Pages can. You name the readers by GitHub login or email address, and they do not need access to the repository. A client or contractor allowlisted by email can sign in with Google without a GitHub account. That makes it possible to share docs from a private repository without sharing the code.
How do I move from Pages to DocuGate?
If your Pages site is built from markdown, most of it carries over unchanged.
- Find the folder your markdown lives in, often
docs. - Check that each page starts with a
#heading; that becomes its title. - Make sure the folder has an
index.mdorREADME.mdfor the landing page. - Sign up with GitHub, open Dashboard → New space, and pick the repository, branch and folder.
- Choose Repo access or Allowlist.
- If you want a fixed sidebar order, add
docugate.jsonwith asidebarlist. Otherwise the folder structure is used as it is.
Jekyll layouts, Liquid tags and theme files do not carry over, because there is no build. Plain markdown, tables and code blocks do. Read connecting a repository for the full rules.
Public repositories are free on Starter. Private repositories need Pro: $5 a month, $50 a year or $2 a week. See pricing.
Try it
Point a space at the folder your Pages site builds from and set it to Repo access.
Questions people also ask
Can a GitHub Pages site be private on a free or Team plan?
No. As of October 2026, GitHub's documentation says private publishing requires GitHub Enterprise Cloud. On other plans a Pages site is public, even when the repository is private.
If my repository is private, is my Pages site private too?
No. Repository visibility and site visibility are separate. Without Enterprise Cloud, a Pages site built from a private repository is still served publicly.
Do I have to stop using Jekyll or my current generator?
With a host-level password or an access proxy, no: you keep your build. With DocuGate, there is no build step. It reads the markdown directly, so generator-specific syntax and themes do not carry over.
Can readers who are not in my GitHub organization read the docs?
With DocuGate's Allowlist mode, yes. You name GitHub logins or email addresses, and someone allowlisted by email can sign in with Google.
Read next
- Can a GitHub Pages site be private?: Only on GitHub Enterprise Cloud. What private Pages means, and the other ways to keep docs published from a repository readable by the right people only.
- How to publish private documentation from a GitHub repo: Turn the markdown in a private GitHub repository into a docs site only the right people can read, without a second permission list to maintain.
- How to password protect a documentation site: The ways to put a password or sign-in in front of a docs site: host-level basic auth, an access proxy, or a docs platform with a gate built in.
- What is the cheapest way to host private documentation?: Private documentation hosting compared on price, as of October 2026: free self-run options, DocuGate at $5 a month, and the hosted platforms at $249 and up.
Get started with DocuGate, free.