Export

Lovable- oder Bolt-App selbst hosten.

Exportiere das Projekt nach GitHub und lege vite und serve in dependencies. Das Buildpack baut mit vite build, serve liefert dist aus und beantwortet Deep Links.

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

  • Vite und React getestet
  • Deep Links funktionieren
  • Gehostet in Nürnberg
claude · run-zero-examples/lovable-bolt-v0

> Deploye den Ordner lovable-bolt-v0 auf run.zero.

runzero_create_appfertigexample-vite-spa

runzero_push_filesfertigein Commit

runzero_deployfertigDienste angelegt

runzero_wait_for_buildfertiglive

live unter https://web-example-vite-spa-efd7ddd7.run-zero.de

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

In vier Schritten live.

Getestet mit dem Vite-Beispiel, das live läuft.

  1. 01

    Nach GitHub exportieren

    Lege das Projekt als Repo ab. Ein v0-Export ist ein Next.js-Projekt, dafür gilt die Next.js-Anleitung.

  2. 02

    Skripte und Abhängigkeiten

    Lege Node 22 fest, vite gehört in dependencies. serve -s liefert dist aus und fällt für unbekannte Pfade auf index.html zurück.

    package.json (Auszug)
    "engines": { "node": "22.x" },"scripts": {  "build": "vite build",  "start": "serve -s dist -l tcp://0.0.0.0:${PORT:-8080}"}
  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 /about. Ist der Build rot, nennt runzero_get_build_logs den Grund.

Dateien

Ein Export, drei Änderungen.

Abhängigkeiten, Startskript und Konfiguration.

vite, das React-Plugin und serve in dependencies, start ruft serve -s auf.

Beispiel auf GitHub(öffnet in neuem Tab)
lovable-bolt-v0/package.json
{  "name": "run-zero-example-vite-spa",  "version": "1.0.0",  "private": true,  "type": "module",  "engines": { "node": "22.x" },  "scripts": {    "dev": "vite",    "build": "vite build",    "start": "serve -s dist -l tcp://0.0.0.0:${PORT:-8080}"  },  "dependencies": {    "@vitejs/plugin-react": "^5.1.0",    "react": "^19.3.1",    "react-dom": "^19.3.1",    "react-router-dom": "^7.9.0",    "serve": "^14.2.5",    "vite": "^7.2.0"  }}
lovable-bolt-v0/vite.config.js
import { defineConfig } from 'vite';import react from '@vitejs/plugin-react';export default defineConfig({ plugins: [react()] });

Zwei Routen im Browser, / und /about.

Beispiel auf GitHub(öffnet in neuem Tab)
lovable-bolt-v0/src/main.jsx
// Same shape as a Lovable or Bolt export: Vite, React and client side routing.import { StrictMode } from 'react';import { createRoot } from 'react-dom/client';import { BrowserRouter, Link, Route, Routes } from 'react-router-dom';function Home() {  return (    <main>      <h1>Vite SPA on run.zero</h1>      <p>Built with vite build at image build time, served with serve -s so deep links work.</p>      <p><Link to="/about">Open /about</Link></p>    </main>  );}function About() {  return (    <main>      <h1>About</h1>      <p>This route only exists in the browser. Reload it: the server falls back to index.html.</p>      <p><Link to="/">Back</Link></p>    </main>  );}createRoot(document.getElementById('root')).render(  <StrictMode>    <BrowserRouter>      <Routes>        <Route path="/" element={<Home />} />        <Route path="/about" element={<About />} />      </Routes>    </BrowserRouter>  </StrictMode>,);
Grenzen

Was heute nicht geht.

Vor allem zu Daten aus dem Browser.

  • Braucht den Tarif Entwickler

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

    Preise ansehen
  • Datenbank bleibt, wo sie ist

    Spricht dein Export direkt aus dem Browser mit einer Datenbank, ändert sich daran nichts. Das Postgres-Add-on erreicht nur ein Server-Dienst.

  • v0 ist Next.js

    Ein v0-Projekt folgt der Next.js-Anleitung, nicht dieser.

  • Build-Werkzeuge in dependencies

    Steht vite in devDependencies, schlägt der Build fehl.

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.

Zum Export.

Ich habe ein v0-Projekt. Was nun?

v0 exportiert Next.js. Folge der Next.js-Anleitung und baue mit next build --webpack.

Kann ich direkt hier mit KI weiterbauen?

Ja. run.zero hat einen eigenen KI-Chat, und dein Agent kann die App über den MCP-Server weiterbearbeiten.

Bekomme ich eine eigene Domain?

Jede App bekommt eine Adresse unter run-zero.de. Eigene Domains mit Let’s-Encrypt-Zertifikat gibt es ab dem Tarif Entwickler.

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.