Skip to content

Astro

Source: src/Hetzner/Website/Astro.ts

Deploy an Astro application to a Hetzner Cloud Server: the Node adapter bundle as a systemd unit on port 3000, static assets baked into the unit. Pages render on demand by default (output: "server"); astro: { output: "static" } prerenders every page and deploys assets-only.

The build runs through @alchemy.run/frontend-frameworks/astro with the @alchemy.run/frontend-frameworks/astro/node deploy target. Your astro.config.* must not declare an adapter.

Basic Astro App

const site = yield* Hetzner.Website.Astro("Web", {
rootDir: "./app",
});

Custom Domain

const site = yield* Hetzner.Website.Astro("Web", {
rootDir: "./app",
domain: "app.example.com",
zone,
});
const site = yield* Hetzner.Website.Astro("Docs", {
rootDir: "./docs",
astro: { output: "static" },
assets: { notFoundHandling: "404-page" },
});