Framework Frankfurt, Germany

Deploy Next.js on Nodion

Connect your repository and Nodion builds the app with its Node.js buildpack: it installs your dependencies from the lockfile, runs next build and starts the server with your start script or next start. With output: 'export' the same repository becomes a static site. The app runs in Frankfurt, next to a managed PostgreSQL database if you need one.

Deploy to Nodion ›

from 1 EUR / month

Up to 15 € credit when signing up

Detected by
next in package.json
Start
start script or next start
Node.js
22, 24 (default), 26
Region
EU Central (Frankfurt)

Deploy Next.js step by step

  1. Keep a lockfile and the usual scripts Commit package-lock.json, yarn.lock, pnpm-lock.yaml or bun.lock; the build fails without one. next start listens on the PORT that Nodion sets, so the default scripts work as they are. package.json
    "scripts": {
      "build": "next build",
      "start": "next start"
    }
  2. Create the app In the dashboard, create an application from your GitHub, GitLab, Bitbucket or Gitea repository, pick the branch and the region EU Central. Keep the build strategy on Buildpacks; if the repository has a Dockerfile, the form picks Dockerfile instead.
  3. Set environment variables Everything next build reads, such as NEXT_PUBLIC_*, needs the Build flag on the Environment tab; all other variables only exist at runtime. Mark API keys as secret.
  4. Attach PostgreSQL and run migrations Create a database in the same region and attach it on the Environment tab; the app gets DATABASE_URL on the next deploy. A release: line in a Procfile runs once per build before the new version starts. Keep your migration tool in dependencies: dev dependencies are removed after the build. Procfile
    release: npm run migrate
  5. Push to deploy Every push to the branch builds a new release. Traffic moves to it once it answers on / with a 2xx or 3xx status; if the release step fails, the running version stays live.

Good to know

  • Static exportWith output: 'export' in next.config, Nodion serves out/ with a static web server and an index.html fallback. No Node server runs, so the smallest size is enough.
  • Health check pathIf / answers 401 or 404, set a health check path that returns 200, for example a route handler at /api/health, in the app settings.
  • MonoreposPoint the base directory at the Next.js app. The build only sees that directory, so the lockfile has to be in it.

What Nodion runs for you

  • Deploys without downtime Push to your branch and Nodion builds a new release. Traffic switches once the new instances answer their health check; a failed release leaves the running one in place. Apps with a local volume restart instead, because the disk belongs to one instance.
  • Databases next to the app Managed PostgreSQL, pgvector, MySQL, Valkey and ClickHouse in the same region. Attached databases arrive as DATABASE_URL, REDIS_URL or CLICKHOUSE_URL.
  • Previews per pull request Turn on previews and pull requests from your repository get their own app with its own URL and fresh, empty databases, created automatically or by hand. Forks and bot pull requests are skipped.
  • Workers, cron jobs and scaling Run workers as extra processes of the same app, schedule jobs on the Cron tab, and scale every process to up to 16 instances.
  • Release step With buildpacks, a Procfile 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.
  • Logs and metrics Build, release and runtime logs plus CPU, memory, disk and network metrics for every instance in the dashboard.
  • Domains and HTTPS A default hostname with HTTPS from the first deploy; your own domains get certificates automatically.

Further reading

Next.js on Nodion: questions and answers

Do the App Router, route handlers and server actions work?

Yes. Nodion runs your app as a regular Next.js Node.js server with next start, so everything that server supports works the same way as on your machine.

Do I need a Dockerfile for Next.js?

No. The Node.js buildpack detects Next.js from package.json and builds a run image for you. If you already have a Dockerfile, Nodion can build that instead.

How does this compare to Vercel?

Nodion runs Next.js as a long-running Node.js server in Frankfurt, with managed databases, workers and cron jobs in the same project and billing per second. More in Nodion vs Vercel.

Where does my Next.js app run?

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.

Can I use Next.js in line with the GDPR?

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.

How much does it cost to run Next.js on Nodion?

An app instance starts at 1 EUR per month. The setup in the cost box costs 3.50 EUR per month: App 2 EUR, PostgreSQL 1.50 EUR. Prices are net and billed per second, and you pick bigger sizes or more instances whenever you need them.

Can I use my own domain for my Next.js app?

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.

Give your agent a cloud.

Earn up to 15 € in credit when signing up.

Continue with GitHub

or with email

Stay in the loop.

Product news, no spam. Unsubscribe anytime.