Deploy your Astro Site to GitHub Pages
This content is not available in your language yet.
You can use GitHub Pages to host an Astro website directly from a repository on GitHub.com.
How to deploy
You can deploy an Astro site to GitHub Pages by using GitHub Actions to automatically build and deploy your site. To do this, your source code must be hosted on GitHub.
Astro maintains the official withastro/action
to deploy your project with very little configuration. Follow the instructions below to deploy your Astro site to GitHub pages, and see the package README if you need more information.
-
Set the
site
and, if needed,base
options inastro.config.mjs
.site
should behttps://<YOUR_USERNAME>.github.io
orhttps://my-custom-domain.com
base
should be your repository’s name starting with a forward slash, for example/my-repo
. This is so that Astro understands your website’s root is/my-repo
, rather than the default/
.
Don’t set a
base
parameter if:- Your page is served from the root folder.
- Your repository is located at
https://github.com/<USERNAME>/<USERNAME>.github.io
. - You’re using a custom domain.
If you did not previously have a value for
base
set, and are only configuring this value so that you can deploy to GitHub, you must update your internal page links to now include yourbase
. -
Create a new file in your project at
.github/workflows/deploy.yml
and paste in the YAML below.The astro action takes a few optional inputs. These can be provided by uncommenting the
with:
line and the input you want to use.The official Astro action scans for a lockfile to detect your preferred package manager (
npm
,yarn
,pnpm
, orbun
). You should commit your package manager’s automatically generatedpackage-lock.json
,yarn.lock
,pnpm-lock.yaml
, orbun.lockb
file to your repository. -
On GitHub, go to your repository’s Settings tab and find the Pages section of the settings.
-
Choose GitHub Actions as the Source of your site.
-
Commit the new workflow file and push it to GitHub.
Your site should now be published! When you push changes to your Astro project’s repository, the GitHub Action will automatically deploy them for you.
You can optionally set up a custom domain by adding the following ./public/CNAME
file to your project:
This will deploy your site at your custom domain instead of user.github.io
. Don’t forget to also configure DNS for your domain provider.