About GitHub Pages
GitHub Pages is a static site hosting service that takes HTML, CSS, and JavaScript files straight from a repository on GitHub Enterprise Server, optionally runs the files through a build process, and publishes a website. You can see examples of GitHub Pages sites in the GitHub Pages examples collection.
To get started, see "Creating a GitHub Pages site."
Types of GitHub Pages sites
There are three types of GitHub Pages sites: project, user, and organization. Project sites are connected to a specific project hosted on GitHub Enterprise Server, such as a JavaScript library or a recipe collection. User and organization sites are connected to a specific GitHub Enterprise Server account.
To publish a user site, you must create a repository owned by your user account that's named <username>.<hostname>
. To publish an organization site, you must create a repository owned by an organization that's named <organization>.<hostname>
.
The source files for a project site are stored in the same repository as their project.
You can only create one user or organization site for each account on GitHub Enterprise Server. Project sites, whether owned by an organization or a user account, are unlimited.
The URL where your site is available depends on whether subdomain isolation is enabled for your GitHub Enterprise Server instance.
Type of site | Subdomain isolation enabled | Subdomain isolation disabled |
---|---|---|
User | http(s)://pages.<hostname>/<username> | http(s)://<hostname>/pages/<username> |
Organization | http(s)://pages.<hostname>/<organization> | http(s)://<hostname>/pages/<organization> |
Project site owned by user account | http(s)://pages.<hostname>/<username>/<repository>/ | http(s)://<hostname>/pages/<username>/<repository>/ |
Project site owned by organization account | http(s)://pages.<hostname>/<orgname>/<repository>/ | http(s)://<hostname>/pages/<orgname>/<repository>/ |
For more information, see "Enabling subdomain isolation" or contact your site administrator.
Publishing sources for GitHub Pages sites
The publishing source for your GitHub Pages site is the branch and folder where the source files for your site are stored.
Warning: If your site administrator has enabled Public Pages, GitHub Pages sites are publicly available on the internet, even if the repository for the site is private or internal. If you have sensitive data in your site's repository, you may want to remove the data before publishing. For more information, see "Configuring GitHub Pages for your enterprise" and "About repository visibility."
The default publishing source for user and organization sites is the master
branch. If the repository for your user or organization site has a master
branch, your site will publish automatically from that branch. You cannot choose a different publishing source for user or organization sites.
The default publishing source for a project site is the gh-pages
branch. If the repository for your project site has a gh-pages
branch, your site will publish automatically from that branch.
Project sites can also be published from the master
branch or a /docs
folder on the master
branch. To publish your site from one of these sources, you must configure a different publishing source. For more information, see "Configuring a publishing source for your GitHub Pages site."
If you choose the /docs
folder of the master
branch as your publishing source, GitHub Pages will read everything to publish your site from the /docs
folder.
You cannot publish your project site from any other branch, even if the default branch is not master
or gh-pages
.
Static site generators
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.
Guidelines for using GitHub Pages
GitHub Pages sites are subject to the following usage limits:
- GitHub Pages source repositories have a recommended limit of 1GB.
- Published GitHub Pages sites may be no larger than 1 GB.
MIME types on 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.
Further reading
- GitHub Pages on GitHub Learning Lab
- "GitHub Pages"