## The short version

To deploy an Astro app on Ample, run `ample deploy . --name <app-name> --public` in the project directory, or ask your coding agent to deploy it to Ample. Ample builds it on the `node-22` template, starts it with `npm run start` and returns a public HTTPS URL.

## STEP BY STEP

### Deploy Astro

1.  **Ask your coding agent**

Install the Ample CLI and create an account (no browser or card needed), then ask Claude Code, Codex, Cursor or any agent with a shell to deploy the project. See [Ample for coding agents](/content/agents/index.html).

```bash
   curl -fsSL https://get.ample.computer/install.sh | sh
   ample auth signup
   # then, in your agent:
   # "Deploy this Astro app to Ample"
   ```

2.  **Or deploy from the CLI**

Run the deploy once from the project directory. It waits until the app is live or failed and prints the URL; exit 0 is live, 1 failed, 2 needs input.

```bash
   ample deploy . --name <app-name> --public
   ```

3.  **Or use MCP**

Agents connected to the Ample MCP server (`https://api.ample.computer/mcp`, or `ample mcp` over stdio) call `ample_deploy` with the same arguments.

4.  **Verify**

Open the URL. If the deploy failed, read the build log, then the runtime log, fix the cause and deploy again.

```bash
   ample logs <deployment_id> --kind build
   ```

## TESTED CONFIGURATION

### What Ample runs

| Template     | `node-22`      |
|--------------|----------------|
| Install      | `npm install`  |
| Build        | `npm run build --if-present`  |
| Start        | `npm run start`  |
| Tested size  | `s-1vcpu-1gb`  |

A server-output Astro app runs its start script; a static build is published as a static site. Ample detects the runtime, installs dependencies, runs the build when present and starts the app on the node-22 template behind a public HTTPS URL.

Last verification (September 20, 2026): Astro app built and started on node-22 and rendered the expected page.

## FIT CHECK

### Before you deploy

#### You need

- A package.json with build and start scripts
- A server that listens on process.env.PORT and 0.0.0.0
- An Ample account token with servers:write

#### Know the limits

- Verified on the node-22 template at s-1vcpu-1gb; other templates and sizes are not verified by this recipe.
- Astro SSR adapters other than the tested node output are not verified.

## QUESTIONS

### Frequently asked questions

#### Do I need a Dockerfile to deploy Astro?

No. Ample detects Astro from the repository and builds it from source on the `node-22` template. Dockerfile build steps are not run.

#### How do I add a database to a Astro app?

Leave DATABASE_URL unset and deploy: when the code needs Postgres, MySQL, Redis or MongoDB, Ample creates a managed database and passes its connection string to the app. See [Connect Postgres for Astro](/content/guides/astro/database-connection/index.html).

#### What does it cost to host a Astro app on Ample?

The Free plan runs 2 apps at once with no card and a hard monthly budget, so it never bills you. Larger needs are priced on volume; see [pricing](/content/pricing/index.html).

#### What if the deploy fails?

`ample deploy` waits until the app is live or failed. A failure returns who must act, a diagnosis and a suggested fix; read the logs with `ample logs <deployment_id> --kind build`. See [Diagnose deployment failures for Astro](/content/guides/astro/deployment-diagnostics/index.html).
