Next.js

Next.js hosten, ohne Vercel.

run.zero baut deine App mit next build und startet sie mit next start als Node-Server in Deutschland. Server-Rendering und Route Handlers laufen in diesem Prozess.

Braucht den Tarif Entwickler, kostenlos gibt es nur Websites. Preise · Grenzen vorab prüfen

  • App Router und SSR getestet
  • Ein Node-Prozess je Replica
  • Gehostet in Nürnberg
claude · run-zero-examples/nextjs

> Deploye den Ordner nextjs auf run.zero.

runzero_create_appfertigexample-nextjs

runzero_push_filesfertigein Commit

runzero_deployfertigDienste angelegt

runzero_wait_for_buildfertiglive

live unter https://web-example-nextjs-6733689e.run-zero.de

Die Sitzung, mit der die Live-Demo entstanden ist, mit den echten MCP-Tools.
Ablauf

In vier Schritten live.

Getestet mit Next.js 16 im Beispiel, das live läuft.

  1. 01

    Skripte anpassen

    Lege Node 22 fest und baue mit next build --webpack. Turbopack, in Next.js 16 der Standard, findet next im Modul-Layer des Buildpacks nicht.

    package.json (Auszug)
    "engines": { "node": "22.x" },"scripts": {  "build": "next build --webpack",  "start": "next start -p ${PORT:-8080}"}
  2. 02

    next in dependencies

    next, react und react-dom stehen in dependencies. Das Buildpack entfernt devDependencies.

  3. 03

    run-zero.yaml anlegen

    Ein Dienst, Port 8080.

    run-zero.yaml
    version: "1"services:  web:    port: 8080
  4. 04

    Konto anlegen und deployen

    Lege ein Konto an, verbinde deinen Agenten mit dem Befehl und melde dich in Claude Code mit /mcp und Authenticate an.

    • Dann schreibst du dem Agenten: Deploye dieses Repo auf run.zero.
    Ohne Agent

    Lege die App im Dashboard an und verbinde dein GitHub-Repo. Jeder Push baut neu.

    Claude Code verbinden
    claude mcp add --transport http \  -s user run-zero \  https://api.run-zero.de/mcp \  --client-id runzero-cli \  --callback-port 53761

Nach 1 bis 3 Minuten läuft die App unter https://web-<app>.run-zero.de. Prüfe eine Route deiner App, im Beispiel /api/health. Ist der Build rot, nennt runzero_get_build_logs den Grund.

Dateien

Ein Projekt, ein Dienst.

Die Skripte in package.json entscheiden alles.

build nutzt --webpack, start nutzt den Port aus $PORT.

Beispiel auf GitHub(öffnet in neuem Tab)
nextjs/package.json
{  "name": "run-zero-example-nextjs",  "version": "1.0.0",  "private": true,  "engines": { "node": "22.x" },  "scripts": {    "dev": "next dev",    "build": "next build --webpack",    "start": "next start -p ${PORT:-8080}"  },  "dependencies": {    "next": "16.4.5",    "react": "19.3.1",    "react-dom": "19.3.1"  }}

Wird bei jedem Aufruf auf dem Server gerendert, die Uhrzeit zeigt es.

Beispiel auf GitHub(öffnet in neuem Tab)
nextjs/app/page.js
// Rendered on the server for every request, so the time shows that SSR runs on run.zero.export const dynamic = 'force-dynamic';export default function Home() {  return (    <main>      <h1>Next.js on run.zero</h1>      <p>Server-rendered at {new Date().toISOString()} by next start.</p>      <p><a href="/api/health">/api/health</a></p>    </main>  );}
Vergleich

Was sich gegenüber Vercel ändert.

Nur was du im Betrieb merkst.

Serverless Functions je RouteEin Node-Prozess mit next start je Replica
Build bei Vercelnext build beim Image-Build mit Paketo
Umgebungsvariablen im Projektenv: in run-zero.yaml, geheime Werte als Secret
Vercel-Domainhttps://<dienst>-<app>.run-zero.de, eigene Domain mit Let’s Encrypt
Vercel Postgres, KV, BlobPostgres-Add-on, KV und Blob gibt es nicht
Grenzen

Was heute nicht geht.

Damit dich nichts überrascht.

  • Braucht den Tarif Entwickler

    Free hat keine Apps mit Server und kein Postgres, der Deploy bricht dort ab.

    Preise ansehen
  • Kein Turbopack-Build

    Baue mit --webpack, sonst bricht next build auf dem Buildpack ab.

  • Keine Vercel-Dienste

    Edge Network, KV, Blob und Analytics von Vercel gibt es hier nicht.

  • ISR nicht getestet

    Ein geteilter Cache über mehrere Replicas ist nicht eingerichtet, ISR haben wir nicht geprüft.

Betrieb

Was du nicht mehr selbst machst.

Build, HTTPS, Datenbank und Backups laufen auf der Plattform.

  • Daten bleiben in Deutschland

    Server und Backups bei Hetzner in Nürnberg. Mit Auftragsverarbeitungsvertrag.

  • HTTPS automatisch

    Jeder Dienst bekommt eine Adresse unter run-zero.de, eigene Domains ein Zertifikat von Let’s Encrypt.

  • Postgres als Add-on

    Ein Eintrag in run-zero.yaml, DATABASE_URL kommt als Umgebungsvariable.

  • Kein Lock-in

    Dein Code bleibt in deinem Repo, die Datenbank gibt es als Dump zum Download.

Fragen.

Zu Next.js.

Geht auch ein statischer Export?

Das haben wir mit Next.js nicht getestet. Das Vite-Beispiel zeigt, wie serve fertige Dateien ausliefert.

Welche Next.js-Version ist getestet?

Next.js 16 mit React 19 im Beispiel. Die Live-Demo rendert jede Anfrage auf dem Server.

Wie nutze ich eine Datenbank?

Hänge das Postgres-Add-on in run-zero.yaml an den Dienst. Deine Server-Komponenten und Route Handlers lesen DATABASE_URL.

Mein Projekt kommt aus v0. Gilt das auch?

Ja. Ein v0-Export ist ein Next.js-Projekt, du gehst dieselben Schritte.

Weitere Anleitungen

Alle Anleitungen

Dein Code. Live auf run.zero.

Kostenlos gibt es eine Website, ohne Kreditkarte. Apps mit Server, Datenbank und eigene Domain gibt es ab dem Tarif Entwickler.