(gh-pages)= # Hosting websites/homepages on GitHub Pages ## Often we don't need more than a static website You can host your personal homepage or group webpage or project website on GitHub using [GitHub Pages](https://pages.github.com/). [GitLab](https://about.gitlab.com/features/pages/) and [Bitbucket](https://confluence.atlassian.com/bitbucket/publishing-a-website-on-bitbucket-cloud-221449776.html) also offer a very similar solution. Unless you need user authentication or a sophisticated database behind your website, [GitHub Pages](https://pages.github.com/) can be a very nice alternative to running your own web servers. This is how all [https://coderefinery.org](https://coderefinery.org) material is hosted. ## How to find the website URL Here below, NAMESPACE can either be a username or an organizational account. **Personal homepage or organizational homepage** - Generated URL: https://**NAMESPACE**.github.io - Generated from: https://github.com/**NAMESPACE**/**NAMESPACE**.github.io (main branch) **Project website** - Generated URL: https://**NAMESPACE**.github.io/**REPOSITORY** - Generated from: https://github.com/**NAMESPACE**/**REPOSITORY** (gh-pages branch) ## Exercise - Your own website on GitHub Pages ```{exercise} GH-Pages-2: Host your own github page - Deploy own website reusing a template: - Follow the steps from GitHub Pages . The documentation there is very good so there is no need for us to duplicate the screenshots. - Select "Project site". - Select "Choose a theme". - Follow the instructions on . - Browse your page on https://**USERNAME**.github.io/**REPOSITORY** (adjust "USERNAME" and "REPOSITORY"). - Make a change to the repository after the webpage has been deployed for the first time. - Please wait few minutes and then verify that the change shows up on the website. ``` ```{callout} Real-life examples - CodeRefinery website (built using [Zola](https://www.getzola.org/)) - [Source](https://raw.githubusercontent.com/coderefinery/coderefinery.org/main/content/lessons/core.md) - Result: - This lesson (built using [Sphinx](https://www.sphinx-doc.org/) and [MyST](https://myst-parser.readthedocs.io/) and [sphinx-lesson](https://coderefinery.github.io/sphinx-lesson/)) - [Source](https://raw.githubusercontent.com/coderefinery/documentation/main/content/gh-pages.md) - Result: this page ``` ```{note} - You can use HTML directly or another static site generator if you prefer to not use the default [Jekyll](https://jekyllrb.com/). - It is no problem to use a custom domain instead of `*.github.io`. ```