Framework Frankfurt, Germany
Nodion recognizes Astro by astro in package.json and runs your build with its Node.js buildpack. By default it serves dist/ as a static site; when your config sets output: 'server', it starts the Node.js server with node ./dist/server/entry.mjs instead. Either way, your site runs in Frankfurt.
astro in package.jsondist/, or node ./dist/server/entry.mjsbuild script and serves dist/ with a static web server. No Node.js server runs, so a static Astro site needs no adapter. package.json "scripts": {
"dev": "astro dev",
"build": "astro build"
} astro build, so tick Build for them on the Environment tab. In server mode, the same goes for PUBLIC_* variables, which end up in the browser code. npx astro add node or install @astrojs/node yourself, use it in standalone mode and set output: 'server' (or 'hybrid' on Astro 4). Nodion only starts a server when astro.config.mjs, .js or .ts contains that setting; it does not read astro.config.mts. Keep astro and @astrojs/node in dependencies, because dev dependencies are removed after the build. astro.config.mjs import { defineConfig } from "astro/config";
import node from "@astrojs/node";
export default defineConfig({
output: "server",
adapter: node({ mode: "standalone" }),
}); PORT, which Nodion sets, and HOST. Set HOST to 0.0.0.0 on the Environment tab so that the server accepts connections from outside the instance, including the health check. Nodion starts node ./dist/server/entry.mjs unless package.json has a start script; if yours runs astro dev, remove it. / answers with a 2xx or 3xx status. output setting, not by the adapter. A project that keeps the default static output and renders single pages on demand with export const prerender = false is not run as a server. Set output: 'server' instead, and mark the pages that should stay static with export const prerender = true.index.html. To show the page Astro builds from src/pages/404.astro instead, add a static.toml with fallback = "404.html". Only do this for static output: a static.toml always makes Nodion serve the project as static files.DATABASE_URL, REDIS_URL or CLICKHOUSE_URL. release: line runs with every new build. Dockerfile apps, and redeploys or rollbacks to an earlier image, use a release command set on the app itself, which also takes precedence over the Procfile line. On static sites a release step runs in an image that holds only the built files. As a static site by default, served from dist/. With output: 'server' in astro.config.mjs, .js or .ts, Nodion runs the Node.js server that @astrojs/node builds.
@astrojs/node with mode: 'standalone'. It builds a server that Nodion starts with node ./dist/server/entry.mjs; set HOST to 0.0.0.0 so it accepts outside connections.
Nodion only looks for output: 'server' (or 'hybrid') written in astro.config.mjs, astro.config.js or astro.config.ts. A config in astro.config.mts, an output value read from a variable, or a static.toml in the project keeps it static.
In the EU Central region in Frankfurt, Germany. Build, registry, the app and its databases, volumes, buckets, logs and metrics stay in that region, and Nodion's API and control plane are hosted in Germany. Nodion GmbH is based in Stuttgart.
Nodion provides the basis for it: Nodion GmbH is based in Stuttgart, Germany, in the Frankfurt region the app, its databases and volumes run in Germany, and you conclude the data processing agreement (DPA) under Art. 28 GDPR electronically in the dashboard. Whether your setup complies also depends on how you configure and use the app.
An app instance starts at 1 EUR per month. The setup in the cost box costs 2 EUR per month: App 2 EUR. Prices are net and billed per second, and you pick bigger sizes or more instances whenever you need them.
Yes. Every app gets a default hostname with HTTPS. Add your own domain on the app's Domains tab; the TLS certificate is issued and renewed automatically.
Earn up to 15 € in credit when signing up.
or with email
Product news, no spam. Unsubscribe anytime.
Successfully subscribed.