Deploy your Astro Site
Ready to build and deploy your Astro site? Follow one of our guides to different deployment services or scroll down for general guidance about deploying an Astro site.
Deployment Guides
Section titled Deployment Guides
Netlify
SSRStatic *
Vercel
SSRStatic *
Deno Deploy
SSR *
GitHub Pages
Static *
GitLab Pages
Static *
Cloudflare Pages
SSRStatic *
AWS
Static *
AWS via Flightcontrol
SSRStatic *
AWS via SST
SSRStatic *
Clever Cloud
SSRStatic *
Azion
SSRStatic *
Google Cloud
SSRStatic *
Firebase Hosting
SSRStatic *
Heroku
Static *
Microsoft Azure
Static *
Buddy
Static *
Edgio
SSRStatic *
Fleek
Static *
Fly.io
SSRStatic *
Render
Static *
Stormkit
Static *
Surge
Static *
Cleavr
SSRStatic *
Kinsta
SSRStatic *
Zeabur
SSRStatic *
Zerops
SSRStatic
Quick Deploy Options
Section titled Quick Deploy Options You can build and deploy an Astro site to a number of hosts quickly using either their website’s dashboard UI or a CLI.
Website UI
Section titled Website UI A quick way to deploy your website is to connect your Astro project’s online Git repository (e.g. GitHub, GitLab, Bitbucket) to a host provider and take advantage of continuous deployment using Git.
These host platforms automatically detect pushes to your Astro project’s source repository, build your site and deploy it to the web at a custom URL or your personal domain. Often, setting up a deployment on these platforms will follow steps something like the following:
- Add your repository to an online Git provider (e.g. in GitHub, GitLab, Bitbucket)
- Choose a host that supports continuous deployment (e.g. Netlify or Vercel) and import your Git repository as a new site/project.
Many common hosts will recognize your project as an Astro site, and should choose the appropriate configuration settings to build and deploy your site as shown below. (If not, these settings can be changed.)
Deploy settings
* **Build Command:** `astro build` or `npm run build`
* **Publish directory:** `dist`
3. Click “Deploy” and your new website will be created at a unique URL for that host (e.g. new-astro-site.netlify.app
).
The host will be automatically configured to watch your Git provider’s main branch for changes, and to rebuild and republish your site at each new commit. These settings can typically be configured in your host provider’s dashboard UI.
CLI Deployment
Section titled CLI Deployment Some hosts will have their own command line interface (CLI) you can install globally to your machine using npm. Often, using a CLI to deploy looks something like the following:
Terminal window
npm install --global netlify-cli
Terminal window
pnpm add --global netlify-cli
Terminal window
yarn global add netlify-cli
- Run the CLI and follow any instructions for authorization, setup etc.
- Build your site and deploy to your host
Many common hosts will build and deploy your site for you. They will usually recognize your project as an Astro site, and should choose the appropriate configuration settings to build and deploy as shown below. (If not, these settings can be changed.)
Deploy settings
* **Build Command:** `astro build` or `npm run build`
* **Publish directory:** `dist`
Other hosts will require you to build your site locally and deploy using the command line.
Building Your Site Locally
Section titled Building Your Site Locally Many hosts like Netlify and Vercel will build your site for you and then publish that build output to the web. But, some sites will require you to build locally and then run a deploy command or upload your build output.
You may also wish to build locally to preview your site, or to catch any potential errors and warnings in your own environment.
Run the command npm run build
to build your Astro site.
Terminal window
npm run build
Terminal window
pnpm run build
Terminal window
yarn run build
By default, the build output will be placed at dist/
. This location can be changed using the outDir
configuration option.
Adding an Adapter for SSR
Section titled Adding an Adapter for SSR Note
Before deploying your Astro site with SSR (server-side rendering) enabled, make sure you have:
- Installed the appropriate adapter to your project dependencies (either manually, or using the adapter’s
astro add
command, e.g.npx astro add netlify
). - Added the adapter to your
astro.config.mjs
file’s import and default export when installing manually. (Theastro add
command will take care of this step for you!)
Recipes