Doku
Schnellstart
Führe in einem gebauten Projekt einen Befehl aus. Kein Konto nötig: Die Website hält 6 Stunden, außer du meldest dich an und übernimmst sie.
npx lobsite
Der Ordner ist das Argument, dir in lobsite.toml oder der erste vorhandene von dist/, build/, out/, _site/, public/. Nur geänderte Dateien werden hochgeladen.
KI-Agenten
Coding-Agenten (Claude Code, Cursor, Codex und andere) deployen mit demselben Befehl. Unter einem Agenten stellt die CLI nie eine Frage, und ihre Ausgabe endet mit einer Zeile „Tell the user:“ mit der URL und, bei einer Website ohne Konto, dem Übernahme-Link, mit dem sie erhalten bleibt.
npx -y lobsite --yes
Es gibt außerdem einen MCP-Server für Coding-Agenten, einen Remote-Server für ChatGPT und Claude.ai und einen curl-Befehl für Sandboxen ohne Node. Richte deinen Agenten ein.
Drag & Drop
Melde dich an und zieh einen Ordner oder eine ZIP-Datei irgendwo ins Dashboard. Bevor etwas hochgeladen wird, laufen dieselben Prüfungen; geheime Dateien werden immer ausgelassen.
lobsite.toml
site = "quiet-fox-4821"
dir = "dist"
spa = false # true: paths that aren't files open index.html
[[redirects]]
from = "/blog/:slug"
to = "/posts/:slug"
status = 301 # 301 | 302 | 307 | 308
[[headers]]
for = "/assets/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
[forms.contact]
required = ["email", "message"]
redirect = "/thanks"
Unbekannte Schlüssel sind ein Fehler, mit einem Vorschlag für den nächstliegenden gültigen Schlüssel. Die Konfiguration geht mit jedem Deploy mit, ein Rollback stellt sie also wieder her.
Single-Page-Apps
Apps mit clientseitigem Routing wie React Router, Vue Router oder TanStack Router haben eine einzige index.html und zeichnen jede Seite im Browser. Wer /dashboard/settings direkt öffnet oder neu lädt, fragt den Server nach einer Datei, die es nicht gibt. Der Single-Page-Modus beantwortet diese Pfade mit deiner index.html, und der Router der App übernimmt. Es gibt drei Wege, ihn einzuschalten:
spa = trueinlobsite.toml. Es geht mit jedem Deploy mit, ein Rollback stellt es also wieder her. Braucht lobsite 0.1.8 oder neuer; ältere Versionen brechen mit „Unknown key“ ab.- Single-Page-App in den Einstellungen der Website im Dashboard. Das ist der Weg für Websites, die du per Drag & Drop hochlädst, denn ein abgelegter Ordner sendet keine
lobsite.toml. Es ist eine Einstellung der Website und bleibt daher über Deploys und Rollbacks hinweg, wie sie ist. - Eine
200.htmlganz oben in der Website. Sie wird stattindex.htmlausgeliefert und funktioniert mit jeder CLI-Version und mit Drag & Drop. So macht es Surge.
Mit Vite (React, Vue, Svelte oder Solid) füg die Einstellung hinzu und deploye dist/ wie gewohnt:
npm run build
npx lobsite
Nur Seitenanfragen bekommen die App: ein Pfad, dessen letzter Teil keine Endung hat (/dashboard, /users/42), oder jede Anfrage eines Browsers, der HTML will (/users/jane.doe). Eine fehlende Datei wie /assets/index-3f9a.js bekommt eine echte 404. Das zählt direkt nach einem Deploy: Wer die alte Version noch offen hat, bekommt für das alte Skript einen klaren Fehler statt deines HTML.
| Die Website hat | Eine fehlende Seite (/dashboard) |
Eine fehlende Datei (/old.js) |
|---|---|---|
| nichts | „Not found“ von Lobsite, 404 | „Not found“ von Lobsite, 404 |
404.html |
404.html, 404 |
404.html, 404 |
| Single-Page-Modus | index.html, 200 |
„Not found“ von Lobsite, 404 |
Single-Page-Modus und 404.html |
index.html, 200 |
404.html, 404 |
200.html (mit oder ohne Einstellung) |
200.html, 200 |
404.html, falls vorhanden, sonst „Not found“, 404 |
Von Netlify kommend entspricht die _redirects-Regel /* /index.html 200 dem spa = true; von Vercel kommend ist ein Rewrite von /(.*) auf /index.html dasselbe.
.lobsiteignore
Dateien, die auf ein Muster in .lobsiteignore passen, werden nicht deployt. Die Syntax ist dieselbe wie bei .gitignore:
drafts/
*.psd
/notes.txt
!keep.psd
Die Datei wird aus dem deployten Ordner und aus der Projektwurzel (neben lobsite.toml) gelesen; Muster in der Datei der Wurzel gelten relativ zur Wurzel. .git, node_modules, .DS_Store und .lobsiteignore selbst werden immer ausgelassen.
Geheime Dateien (.env*, private Schlüssel wie *.pem und id_rsa, .npmrc, .netrc und Ähnliches) stoppen ein Deploy, bis sie entfernt oder ignoriert werden. In einem Terminal bietet die CLI an, sie zu .lobsiteignore hinzuzufügen und ohne sie zu deployen.
Formulare
<form action="/_lobsite/forms/contact" method="POST">
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button>Send</button>
</form>
Formulare werden beim Deploy erkannt. Spamschutz (ein Honeypot, Zeitprüfung und Ratenlimits) wird für dich hinzugefügt. Einsendungen landen auf der Seite „Einsendungen“ in deinem Dashboard und in deinem Postfach. Mehr zu Formularen: Beispiele, Senden mit JavaScript, Frameworks und Einstellungen.
Im kostenlosen Tarif laufen Formulare im eingeschränkten Modus: ein monatliches Kontingent pro Website, Benachrichtigungen nur an die E-Mail deines Kontos und keine Webhooks. Der Standard-Tarif bringt Webhooks, jede bestätigte Benachrichtigungsadresse und ein höheres Kontingent.
Eigene Domains
Eigene Domains gibt es mit jedem Konto, der kostenlose Tarif eingeschlossen. lobsite domain add www.example.com gibt den Eintrag aus, den du anlegen musst: einen CNAME auf cname.lobsite.app. Zertifikate werden für dich ausgestellt und erneuert. Hat ein anderes Konto die Domain ebenfalls hinzugefügt, beweist ein TXT-Eintrag, dass sie dir gehört.
Vorschauen und Rollback
Jedes Deploy hat eine eigene URL, <id>--<site>.lobsite.app. lobsite deploy --preview lässt die Produktion in Ruhe; lobsite rollback und lobsite promote wechseln das Live-Deploy, ohne etwas hochzuladen.
CLI
lobsite [dir] | Einen Ordner deployen (der Standardbefehl) |
lobsite deploy --preview | Hochladen, ohne die Produktion zu ändern |
lobsite deploys | Aufbewahrte Deploys auflisten |
lobsite rollback [id] | Einen früheren Deploy live schalten |
lobsite promote <id> | Beliebigen Deploy live schalten |
lobsite login / logout / whoami | Dein Konto |
lobsite claim [site] | Eine anonyme Website behalten |
lobsite account [use <email>|me] | Zu einem Konto wechseln, in dem du Mitglied bist |
lobsite token create|ls|revoke | CI-Tokens für LOBSITE_TOKEN (Standard) |
lobsite ls / open / rm | Deine Websites |
lobsite domain add|status|rm | Eigene Domains |
lobsite forms ls / export <name> --csv | Formulareinsendungen |
lobsite mcp | Ein MCP-Server für KI-Agenten |
Limits
| Anonym | Free | Standard | |
|---|---|---|---|
| Websites | Keine Grenze | 1 | 5 |
| Dateien pro Website | 100 | 100 | 10.000 |
| Pro Datei | 5 MB | 5 MB | 100 MB |
| Größe der Website | 50 MB | 50 MB | 2 GB |
| Speicher | — | 1 GB | 20 GB |
| Deploys pro Stunde | 10 | 30 | 100 |
| Deploys pro Tag und Website | 3 | Keine Grenze | Keine Grenze |
| Deploy-Verlauf | Live deploy only | 7 days | 30 days |
| Eigene Domains pro Konto | — | 1 | 5 |
| Eigene Domains pro Website | — | 1 | 1 |
| Bandbreite | 1 GB | 10 GB | Unlimited, fair use |
| Formulareinsendungen pro Monat | — | 25 | Unlimited |
| Analytics | — | — | Yes |
| Automatisierungen (Zapier, n8n) | — | — | Yes |
| „Powered by lobsite!“-Badge | Yes | Yes | No |
Bandwidth is per month per account (per site lifetime for anonymous sites). At the limit, free and anonymous sites stop serving until the next month; on Standard there's no cap and sites keep serving: past 1 TB a month, we contact you.