You can host your site on GitHub's
github.io domain or your own custom domain. For more information, see "Using a custom domain with GitHub Pages."
If your project site is published from a private or internal repository owned by an organization using GitHub Enterprise Cloud, you can manage access control for the site. For more information, see "Changing the visibility of your GitHub Pages site."
To get started, see "Creating a GitHub Pages site."
Organization owners can disable the publication of GitHub Pages sites from the organization's repositories. For more information, see "Managing the publication of GitHub Pages sites for your organization."
To publish a user site, you must create a repository owned by your user account that's named
<username>.github.io. To publish an organization site, you must create a repository owned by an organization that's named
<organization>.github.io. Unless you're using a custom domain, user and organization sites are available at
The source files for a project site are stored in the same repository as their project. Unless you're using a custom domain, project sites are available at
If you publish your site privately, the URL for your site will be different. For more information, see "Changing the visibility of your GitHub Pages site."
For more information about how custom domains affect the URL for your site, see "About custom domains and GitHub Pages."
You can only create one user or organization site for each account on GitHub. Project sites, whether owned by an organization or a user account, are unlimited.
The publishing source for your GitHub Pages site is the branch and folder where the source files for your site are stored.
Warning: GitHub Pages sites are publicly available on the internet by default, even if the repository for the site is private or internal. If your project site is published from a private or internal repository owned by an organization using GitHub Enterprise Cloud, you can manage access control for the site. Otherwise, if you have sensitive data in your site's repository, you may want to remove the data before publishing. For more information, see "About repository visibility" and "Changing the visibility of your GitHub Pages site."
If the default publishing source exists in your repository, GitHub Pages will automatically publish a site from that source. The default publishing source for user and organization sites is the root of the default branch for the repository. The default publishing source for project sites is the root of the
If you want to keep the source files for your site in a different location, you can change the publishing source for your site. You can publish your site from any branch in the repository, either from the root of the repository on that branch,
/, or from the
/docs folder on that branch. For more information, see "Configuring a publishing source for your GitHub Pages site."
If you choose the
/docs folder of any branch as your publishing source, GitHub Pages will read everything to publish your site, including the CNAME file, from the
/docs folder. For example, when you edit your custom domain through the GitHub Pages settings, the custom domain will write to
/docs/CNAME. For more information about CNAME files, see "Managing a custom domain for your GitHub Pages site."
GitHub Pages publishes any static files that you push to your repository. You can create your own static files or use a static site generator to build your site for you. You can also customize your own build process locally or on another server. We recommend Jekyll, a static site generator with built-in support for GitHub Pages and a simplified build process. For more information, see "About GitHub Pages and Jekyll."
GitHub Pages will use Jekyll to build your site by default. If you want to use a static site generator other than Jekyll, disable the Jekyll build process by creating an empty file called
.nojekyll in the root of your publishing source, then follow your static site generator's instructions to build your site locally.
GitHub Pages does not support server-side languages such as PHP, Ruby, or Python.
- GitHub Pages sites created after June 15, 2016 and using
github.iodomains are served over HTTPS. If you created your site before June 15, 2016, you can enable HTTPS support for traffic to your site. For more information, see "Securing your GitHub Pages with HTTPS."
- GitHub Pages sites shouldn't be used for sensitive transactions like sending passwords or credit card numbers.
- Your use of GitHub Pages is subject to the GitHub Terms of Service, including the prohibition on reselling.
GitHub Pages sites are subject to the following usage limits:
GitHub Pages source repositories have a recommended limit of 1GB. For more information, see "What is my disk quota?"
Published GitHub Pages sites may be no larger than 1 GB.
GitHub Pages sites have a soft bandwidth limit of 100GB per month.
GitHub Pages sites have a soft limit of 10 builds per hour.
If your site exceeds these usage quotas, we may not be able to serve your site, or you may receive a polite email from GitHub Support or GitHub Premium Support suggesting strategies for reducing your site's impact on our servers, including putting a third-party content distribution network (CDN) in front of your site, making use of other GitHub features such as releases, or moving to a different hosting service that might better fit your needs.
GitHub Pages is not intended for or allowed to be used as a free web hosting service to run your online business, e-commerce site, or any other website that is primarily directed at either facilitating commercial transactions or providing commercial software as a service (SaaS).
In addition, GitHub does not allow GitHub Pages to be used for certain purposes or activities. For a list of prohibited uses, see "GitHub's Additional Product Terms for GitHub Pages."
A MIME type is a header that a server sends to a browser, providing information about the nature and format of the files the browser requested. GitHub Pages supports more than 750 MIME types across thousands of file extensions. The list of supported MIME types is generated from the mime-db project.
While you can't specify custom MIME types on a per-file or per-repository basis, you can add or modify MIME types for use on GitHub Pages. For more information, see the mime-db contributing guidelines.