Deploying to Cloudflare Pages lets you put your Astro website online quickly and for free. It makes your site available to anyone on the internet.
Deploying to Cloudflare Pages in Astro
1. Push your Astro project to a GitHub repository. 2. Go to Cloudflare Pages dashboard. 3. Click 'Create a project' and connect your GitHub repo. 4. Set the build command to: npm run build 5. Set the build output directory to: dist 6. Click 'Save and Deploy'.
The npm run build command runs Astro's build process.
The dist folder is where Astro puts the finished website files.
Build command: npm run build Output directory: dist
astro build directly if you prefer.Build command: astro build Output directory: dist
public in your config.Build command: npm run build Output directory: public
This example shows the minimal setup for an Astro project ready to deploy on Cloudflare Pages. The build script runs astro build, which creates the dist folder. Cloudflare Pages uses this folder to serve your site.
/* This is a simple Astro project setup for Cloudflare Pages deployment. */ // package.json scripts section { "scripts": { "build": "astro build", "start": "astro dev" } } // astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ output: 'static' }); // After pushing this project to GitHub: // 1. Go to Cloudflare Pages dashboard. // 2. Connect your GitHub repo. // 3. Set build command: npm run build // 4. Set output directory: dist // 5. Deploy.
Make sure your GitHub repo is public or connected properly to Cloudflare Pages.
Cloudflare Pages automatically redeploys your site when you push new code to the connected branch.
Use the Cloudflare Pages dashboard to see build logs and manage your site.
Deploying to Cloudflare Pages makes your Astro site live on the internet easily.
Push your code to GitHub, connect it in Cloudflare Pages, and set build/output settings.
Cloudflare Pages handles hosting and updates automatically for you.
Practice
Solution
Step 1: Prepare your Astro project
You need to have your Astro site code ready and pushed to a GitHub repository because Cloudflare Pages connects to GitHub to get your code.Step 2: Connect GitHub repo to Cloudflare Pages
Cloudflare Pages uses your GitHub repository to build and deploy your site automatically.Final Answer:
Push your Astro project code to a GitHub repository -> Option AQuick Check:
First step is pushing code to GitHub [OK]
- Trying to deploy without a GitHub repo
- Assuming local CLI is mandatory
- Thinking Docker is required
Solution
Step 1: Understand Astro build process
Astro projects usenpm run buildto create the static files for deployment.Step 2: Set build command in Cloudflare Pages
Cloudflare Pages needs the build command to generate the site files;npm run buildis the correct command.Final Answer:
npm run build -> Option CQuick Check:
Build command = npm run build [OK]
- Using npm run start which runs a dev server
- Using astro dev which is for local development
- Confusing install with build
build: command: "npm run build" directory: "dist"What will Cloudflare Pages do after you push your Astro site code?
Solution
Step 1: Read the build command
The config says to runnpm run build, which builds the Astro site into static files.Step 2: Check the output directory
The directorydistis where Astro puts the built site files, so Cloudflare Pages deploys from there.Final Answer:
Run npm run build and deploy files from the dist folder -> Option BQuick Check:
Build command + output folder = deploy [OK]
- Confusing npm start with build
- Deploying from wrong folder
- Thinking node_modules is deployed
Solution
Step 1: Understand the error message
"Build command not found" means Cloudflare tried to run the build command but it does not exist in your project.Step 2: Check package.json scripts
The build command must be defined in thescriptssection of package.json, usually as "build": "astro build" or similar.Final Answer:
You forgot to add a build script in package.json -> Option DQuick Check:
Missing build script causes build command error [OK]
- Assuming branch or account causes build command error
- Thinking GitHub Actions must be enabled manually
- Ignoring package.json scripts
Solution
Step 1: Understand environment variable usage in Cloudflare Pages
Cloudflare Pages requires environment variables to be set in its dashboard to inject them during build securely.Step 2: Avoid pushing .env files with secrets
For security, do not push .env files with secrets to GitHub; instead, configure variables in Cloudflare Pages settings.Final Answer:
Add environment variables in Cloudflare Pages dashboard under Settings > Environment Variables -> Option AQuick Check:
Set env vars in Cloudflare dashboard for build [OK]
- Pushing .env files with secrets publicly
- Hardcoding sensitive info in code
- Assuming local env vars affect cloud build
Ready to prove it?
Pass the test and this pattern moves unknown
