Framework Frankfurt, Germany
Nodion builds SvelteKit with its Node.js buildpack and reads the adapter from package.json: with @sveltejs/adapter-node it starts your app with node build, with @sveltejs/adapter-static it serves build/ as a static site. The template default, adapter-auto, does not work on Nodion, so switch adapters first. Your app runs in Frankfurt.
@sveltejs/kit and the adapter in package.jsonnode build (adapter-node) or static files (adapter-static)npm i -D @sveltejs/adapter-node, remove @sveltejs/adapter-auto and use the new adapter in your config. Nodion reads the adapter from package.json, and the config decides what the build writes, so change both. In SvelteKit 3 the config lives in the sveltekit() options in vite.config.js; on SvelteKit 2 it is kit.adapter in svelte.config.js. vite.config.js (SvelteKit 3) import adapter from "@sveltejs/adapter-node";
import { sveltekit } from "@sveltejs/kit/vite";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [
sveltekit({
adapter: adapter(),
paths: { origin: "https://shop.example.com" },
}),
],
}); build script and starts node build, and adapter-node listens on the PORT that Nodion sets. A start script, if you add one, replaces that command. paths.origin to your public URL as in the config above; it replaces adapter-node's ORIGIN variable. On SvelteKit 2, set ORIGIN on the Environment tab instead, for example https://shop.example.com. $env/static/private and $env/static/public are inlined during the build, so they need the Build flag on the Environment tab. $env/dynamic/private and $env/dynamic/public are read while the server runs and work with normal variables. / answers with a 2xx or 3xx status. If / answers 401 or 404, add a route such as src/routes/health/+server.js that returns 200 and set /health as the health check path. @sveltejs/adapter-static, Nodion serves build/ with a static web server and an index.html fallback. Prerender your pages with export const prerender = true in the root +layout.js. For a single-page app, turn off SSR there and set fallback: 'index.html' in the adapter options, because Nodion needs an index.html in build/. No Node.js server runs, so the smallest size is enough.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. adapter-auto only knows a fixed list of hosts, and Nodion is not on it, so the build has no output Nodion can use. Install @sveltejs/adapter-node or @sveltejs/adapter-static and use it in your config: vite.config.js in SvelteKit 3, svelte.config.js in SvelteKit 2.
Yes, with adapter-node. Nodion runs your app as a long-running Node.js server, so +page.server.js, +server.js and form actions work as they do with node build on your machine. Set the public origin (paths.origin in SvelteKit 3, ORIGIN in SvelteKit 2) so that form actions are not rejected as cross-site.
No. With adapter-node or adapter-static, the Node.js buildpack builds the app from package.json. If your repository has a Dockerfile, the create form picks the Dockerfile strategy instead.
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.