mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
32ba623541
4c81c6c2a live reload: add section about `--navigateToChanged` 271014257 Update netify hugo version to 0.83.1 14199cff1 Add pull_request event 0c33b05de Hosting on GitHub: Little wording fixes and update Ubuntu runner in example workflow to 20.04 (#1457) e47b6c33a Hugo Modules plural typo (#1266) 0f2bbacdd Add node_modules to .gitignore 1d645d79f Overhaul scratch.md (#1451) 572766889 Add link to golang regex syntax, change modified date 21b0c7459 Add info about contentType config de7d96fa2 Document Go template's multiline support 0c8f2dcb1 Avoid scratch usage 696fa92e1 Rename scratch var 44193f267 Update usage instructions 4230f8fa5 Rename and refactor shortcode e9953751e Strip leading whitespaces d61a58010 Add `insertpages` shortcode 04d30677d Mention WebP under 'Target Format' (#1431) 946784508 Update lookup-order.md (#1443) a7b587988 Update index.md 27907f7ea netlify: Hugo 0.83.1 044d37e57 Merge branch 'tempv0.83.1' b81aedb03 Fix page `.Kind` fcf7775ad releaser: Add release notes to /docs for release of 0.83.1 9b39c77c8 fix typo in 0.83 release notes 1c38993ce Update index.md 45b8aefa6 Update index.md 43902dfaa Update index.md 3d959c7ae Merge branch 'tempv0.83.0' 6c22dc327 Fix URL 497ea3224 Use Hugo version badge shortcode a182d10dd releaser: Add release notes to /docs for release of 0.83.0 287fd9ac0 docs: Fix shortcode e789c879a docs: Regenerate docs helper 1666c7f31 docs: Regenerate CLI docs 117de1d12 Merge commit 'c239c643fee10bfa217cb108755b798f8f5f3b10' a6bf3f7d9 docs: Regen docs helper git-subtree-dir: docs git-subtree-split: 4c81c6c2ace6c23d0d5d24ee37e6a2f30acba01e
106 lines
4.3 KiB
Markdown
106 lines
4.3 KiB
Markdown
---
|
|
title: Host on GitHub
|
|
linktitle: Host on GitHub
|
|
description: Deploy Hugo as a GitHub Pages project or personal/organizational site and automate the whole process with Github Action Workflow
|
|
date: 2014-03-21
|
|
publishdate: 2014-03-21
|
|
categories: [hosting and deployment]
|
|
keywords: [github,git,deployment,hosting]
|
|
authors: [Spencer Lyon, Gunnar Morling]
|
|
menu:
|
|
docs:
|
|
parent: "hosting-and-deployment"
|
|
weight: 30
|
|
weight: 30
|
|
sections_weight: 30
|
|
toc: true
|
|
aliases: [/tutorials/github-pages-blog/]
|
|
---
|
|
|
|
GitHub provides free and fast static hosting over SSL for personal, organization, or project pages directly from a GitHub repository via its [GitHub Pages service][] and automating development workflows and build with [GitHub Actions].
|
|
|
|
## Assumptions
|
|
|
|
1. You have Git 2.8 or greater [installed on your machine][installgit].
|
|
2. You have a GitHub account. [Signing up][ghsignup] for GitHub is free.
|
|
3. You have a ready-to-publish Hugo website or have at least completed the [Quick Start][].
|
|
|
|
## Types of GitHub Pages
|
|
|
|
There are two types of GitHub Pages:
|
|
|
|
- User/Organization Pages (`https://<USERNAME|ORGANIZATION>.github.io/`)
|
|
- Project Pages (`https://<USERNAME|ORGANIZATION>.github.io/<PROJECT>/`)
|
|
|
|
Please refer to the [GitHub Pages documentation][ghorgs] to decide which type of site you would like to create as it will determine which of the below methods to use.
|
|
|
|
## GitHub User or Organization Pages
|
|
|
|
As mentioned in the [GitHub Pages documentation][ghorgs], you can host a user/organization page in addition to project pages. Here are the key differences in GitHub Pages websites for Users and Organizations:
|
|
|
|
1. You must use a `<USERNAME>.github.io` to host your **generated** content
|
|
2. Content from the `main` branch will be used to publish your GitHub Pages site
|
|
|
|
This is a much simpler setup as your Hugo files and generated content are published into two different repositories.
|
|
|
|
## Build Hugo With GitHub Action
|
|
|
|
GitHub executes your software development workflows. Everytime you push your code on the Github repository, Github Actions will build the site automatically.
|
|
|
|
Create a file in `.github/workflows/gh-pages.yml` containing the following content (based on [actions-hugo](https://github.com/marketplace/actions/hugo-setup)):
|
|
|
|
```yml
|
|
name: github pages
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main # Set a branch to deploy
|
|
pull_request:
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: true # Fetch Hugo themes (true OR recursive)
|
|
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
|
|
|
- name: Setup Hugo
|
|
uses: peaceiris/actions-hugo@v2
|
|
with:
|
|
hugo-version: 'latest'
|
|
# extended: true
|
|
|
|
- name: Build
|
|
run: hugo --minify
|
|
|
|
- name: Deploy
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
if: github.ref == 'refs/heads/main'
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
publish_dir: ./public
|
|
```
|
|
|
|
For more advanced settings [actions-hugo](https://github.com/marketplace/actions/hugo-setup) and [actions-gh-pages](https://github.com/marketplace/actions/github-pages-action).
|
|
|
|
## Use a Custom Domain
|
|
|
|
If you'd like to use a custom domain for your GitHub Pages site, create a file `static/CNAME`. Your custom domain name should be the only contents inside `CNAME`. Since it's inside `static`, the published site will contain the CNAME file at the root of the published site, which is a requirement of GitHub Pages.
|
|
|
|
Refer to the [official documentation for custom domains][domains] for further information.
|
|
|
|
[config]: /getting-started/configuration/
|
|
[domains]: https://help.github.com/articles/using-a-custom-domain-with-github-pages/
|
|
[ghorgs]: https://help.github.com/articles/user-organization-and-project-pages/#user--organization-pages
|
|
[ghpfromdocs]: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/
|
|
[ghsignup]: https://github.com/join
|
|
[GitHub Pages service]: https://help.github.com/articles/what-is-github-pages/
|
|
[installgit]: https://git-scm.com/downloads
|
|
[orphan branch]: https://git-scm.com/docs/git-checkout/#Documentation/git-checkout.txt---orphanltnewbranchgt
|
|
[Quick Start]: /getting-started/quick-start/
|
|
[submodule]: https://github.com/blog/2104-working-with-submodules
|
|
[worktree feature]: https://git-scm.com/docs/git-worktree
|
|
[GitHub Actions]: https://docs.github.com/en/actions
|