TanStackStart
Source:
src/Hetzner/Website/TanStackStart.ts
Deploy a TanStack Start application to a Hetzner Cloud Server: the SSR server as a systemd unit on port 3000, static assets baked into the unit.
The build runs through
@alchemy.run/frontend-frameworks/tanstack-start with the
@alchemy.run/frontend-frameworks/tanstack-start/node deploy target —
both must be installed in your project, alongside @tanstack/react-start
(or @tanstack/solid-start) and vite.
Your vite.config.ts needs no adapter wiring: TanStack Start is pure
Vite, so the integration drives the project’s own vite build, forces
the SSR bundle to be self-contained, and wraps its fetch handler as a
Node HTTP server.
Creating TanStack Start Sites
Section titled “Creating TanStack Start Sites”Basic TanStack Start App
const site = yield* Hetzner.Website.TanStackStart("Web", { rootDir: "./app",});Custom Domain
const site = yield* Hetzner.Website.TanStackStart("Web", { rootDir: "./app", domain: "app.example.com", zone,});Server Configuration
Section titled “Server Configuration”Process Environment
const site = yield* Hetzner.Website.TanStackStart("Web", { rootDir: "./app", env: { API_BASE: "https://api.example.com", },});Read An Environment Variable From A Server Function
const getApiBase = createServerFn({ method: "GET" }).handler(() => ({ apiBase: process.env.API_BASE,}));