Skip to main content
Deploy your Astro static build to an S3 bucket behind CloudFront.

Prerequisites

  • A Git repository containing your application and its production build command.
  • A Ravion account with your AWS account connected. Start free at Ravion signup.
  • The Ravion CLI installed and authenticated. See CLI installation.
The examples use my-org/my-app as a placeholder. Replace it with your repository before applying the config.

Set up this Astro app for Ravion static or SSR hosting.

Open in Cursor

Configure the deployment

The bucket and distribution stay in your AWS account, and Ravion versions each deployment. This example uses Railpack for the build. Use build_source: dockerfile instead when you need a custom Dockerfile. For a static Astro site, astro build writes to dist. Set routing to filesystem so generated paths resolve to their files.
ravion.yaml

Apply the config

1

Create the project

2

Preview and apply

Astro variables prefixed with PUBLIC_ are exposed to browser code. Add them to build_environment_variables when they are required at build time. Keep server-only values out of a static build.

Custom domain

Use the CloudFront distribution hostname from the module outputs, then follow custom domains to add an ACM certificate and DNS record.

Astro SSR on ECS

For on-demand rendering, install @astrojs/node, set output: "server", and configure standalone mode. Astro writes the server entry to dist/server/entry.mjs; run it with Node on port 4321.
ravion.yaml
Set HOST=0.0.0.0 and PORT=4321 in the runtime environment. Use the ECS service’s Application Load Balancer hostname for your custom domain.

Next steps

Custom domains

Point a domain at your deployed service and manage its certificate.

Project config

Preview and apply Ravion configuration from source control.

Pipelines

Add approvals, migrations, and deployment automation.

Logs and metrics

Inspect deploy output and production health in Ravion.