Skip to main content

Creating a GitHub Pages site

You can create a GitHub Pages site in a new or existing repository.

GitHub Pages is available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see "GitHub's products."

Note: Organization owners can restrict the publication of GitHub Pages sites from repositories owned by the organization. For more information, see "Managing the publication of GitHub Pages sites."

Creating a repository for your site

You can either create a repository or choose an existing repository for your site.

If you want to create a GitHub Pages site for a repository where not all of the files in the repository are related to the site, you will be able to configure a publishing source for your site. For example, you can have a dedicated branch and folder to hold your site source files, or you can use a custom GitHub Actions workflow to build and deploy your site source files.

If the account that owns the repository uses GitHub Free or GitHub Free for organizations, the repository must be public.

If you want to create a site in an existing repository, skip to the "Creating your site" section.

  1. In the upper-right corner of any page, use the drop-down menu, and select New repository. Drop-down with option to create a new repository

  2. Use the Owner drop-down menu, and select the account you want to own the repository. Owner drop-down menu

    Note: If you're a managed user account, you can only publish GitHub Pages sites from repositories owned by organizations. For more information, see "About GitHub Pages."

  3. Type a name for your repository and an optional description. If you're creating a user or organization site, your repository must be named <user>.github.io or <organization>.github.io. If your user or organization name contains uppercase letters, you must lowercase the letters. For more information, see "About GitHub Pages." Create repository field

  4. Choose a repository visibility. For more information, see "About repositories." Radio buttons to select repository visibility

  5. Select Initialize this repository with a README. Initialize this repository with a README checkbox

  6. Click Create repository. Button to create repository

Creating your site

Before you can create your site, you must have a repository for your site on GitHub Enterprise Cloud. If you're not creating your site in an existing repository, see "Creating a repository for your site."

Warning: Unless your enterprise uses Enterprise Managed Users, GitHub Pages sites are publicly available on the internet by default, even if the repository for the site is private or internal. You can publish a site privately by managing 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 repositories" and "Changing the visibility of your GitHub Pages site."

  1. On GitHub Enterprise Cloud, navigate to your site's repository.

  2. Decide which publishing source you want to use. For more information, see "Configuring a publishing source for your GitHub Pages site."

  3. Create the entry file for your site. GitHub Pages will look for an index.html, index.md, or README.md file as the entry file for your site.

    If your publishing source is a branch and folder, the entry file must be at the top level of the source folder on the source branch. For example, if your publishing source is the /docs folder on the main branch, your entry file must be located in the /docs folder on a branch called main.

    If your publishing source is a GitHub Actions workflow, the artifact that you deploy must include the entry file at the top level of the artifact. Instead of adding the entry file to your repository, you may choose to have your GitHub Actions workflow generate your entry file when the workflow runs.

  4. Configure your publishing source. For more information, see "Configuring a publishing source for your GitHub Pages site."

  5. Under your repository name, click Settings. Repository settings button

  6. In the "Code and automation" section of the sidebar, click Pages.

  7. Optionally, if you're publishing a project site from a private or internal repository, choose the visibility for your site. Under "GitHub Pages", select the GitHub Pages visibility drop-down menu, then click a visibility. For more information, see "Changing the visibility of your GitHub Pages site". Drop-down to select visibility for your site

    Note: To publish a GitHub Pages site privately, your organization must use GitHub Enterprise Cloud. For more information about how you can try GitHub Enterprise Cloud for free, see "Setting up a trial of GitHub Enterprise Cloud."

  8. To see your published site, under "GitHub Pages", click your site's URL. URL of your published site

    Note: It can take up to 10 minutes for changes to your site to publish after you push the changes to GitHub Enterprise Cloud. If you don't see your GitHub Pages site changes reflected in your browser after an hour, see "About Jekyll build errors for GitHub Pages sites."

  9. Your GitHub Pages site is built and deployed with a GitHub Actions workflow. For more information, see "Viewing workflow run history".

    Note: GitHub Actions is free for public repositories. Usage charges apply for private and internal repositories that go beyond the monthly allotment of free minutes. For more information, see "Usage limits, billing, and administration".

Note: If you are publishing from a branch and your site has not published automatically, make sure someone with admin permissions and a verified email address has pushed to the publishing source.

Next steps

You can add more pages to your site by creating more new files. Each file will be available on your site in the same directory structure as your publishing source. For example, if the publishing source for your project site is the gh-pages branch, and you create a new file called /about/contact-us.md on the gh-pages branch, the file will be available at https://<user>.github.io/<repository>/about/contact-us.html.

You can also add a theme to customize your site’s look and feel. For more information, see "Adding a theme to your GitHub Pages site using Jekyll".

To customize your site even more, you can use Jekyll, a static site generator with built-in support for GitHub Pages. For more information, see "About GitHub Pages and Jekyll".

Further reading