Dokumentacja
Szybki start
W zbudowanym projekcie uruchom jedno polecenie. Konto nie jest potrzebne: strona działa 6 godzin, chyba że się zalogujesz i ją przejmiesz.
npx lobsite
Folderem jest argument, dir w lobsite.toml albo pierwszy istniejący z dist/, build/, out/, _site/, public/. Wysyłane są tylko zmienione pliki.
Agenci AI
Agenci do kodowania (Claude Code, Cursor, Codex i inni) wdrażają tym samym poleceniem. Pod agentem CLI nigdy nie zadaje pytań, a jego wynik kończy się linią „Tell the user:” z adresem URL i, dla strony bez konta, linkiem do przejęcia, który pozwala ją zachować.
npx -y lobsite --yes
Jest też serwer MCP dla agentów do kodowania, zdalny serwer dla ChatGPT i Claude.ai oraz polecenie curl dla sandboksów bez Node. Skonfiguruj swojego agenta.
Przeciągnij i upuść
Zaloguj się i upuść folder lub plik ZIP w dowolnym miejscu panelu. Przed wysłaniem czegokolwiek działają te same kontrole; pliki z sekretami są zawsze pomijane.
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"
Nieznane klucze są błędem, z podpowiedzią najbliższego poprawnego klucza. Konfiguracja jedzie z każdym wdrożeniem, więc wycofanie ją przywraca.
Aplikacje jednostronicowe
Aplikacje z routingiem po stronie klienta, jak React Router, Vue Router czy TanStack Router, mają jeden index.html i rysują każdą stronę w przeglądarce. Bezpośrednie otwarcie /dashboard/settings albo jego odświeżenie prosi serwer o plik, który nie istnieje. Tryb jednostronicowy odpowiada na te ścieżki Twoim index.html, a router aplikacji przejmuje sterowanie. Są trzy sposoby, by go włączyć:
spa = truewlobsite.toml. Jedzie z każdym wdrożeniem, więc wycofanie go przywraca. Wymaga lobsite 0.1.8 lub nowszego; starsze wersje zatrzymują się z „Unknown key”.- Aplikacja jednostronicowa w ustawieniach strony w panelu. To sposób dla stron wgrywanych przeciąganiem, bo upuszczony folder nie wysyła
lobsite.toml. To ustawienie strony, więc nie zmienia się przy wdrożeniach i wycofaniach. 200.htmlna najwyższym poziomie strony. Jest serwowany zamiastindex.htmli działa z każdą wersją CLI oraz z przeciąganiem. Tak robi to Surge.
Z Vite (React, Vue, Svelte lub Solid) dodaj ustawienie i wdróż dist/ jak zwykle:
npm run build
npx lobsite
Aplikację dostają tylko żądania stron: ścieżka, której ostatnia część nie ma rozszerzenia (/dashboard, /users/42), albo dowolne żądanie przeglądarki proszącej o HTML (/users/jane.doe). Brakujący plik, np. /assets/index-3f9a.js, dostaje prawdziwe 404. Ma to znaczenie tuż po wdrożeniu: odwiedzający, który ma otwartą starą wersję, dostaje jasny błąd dla starego skryptu, a nie Twój HTML w jego miejscu.
| Strona ma | Brakująca strona (/dashboard) |
Brakujący plik (/old.js) |
|---|---|---|
| nic | „Not found” Lobsite, 404 | „Not found” Lobsite, 404 |
404.html |
404.html, 404 |
404.html, 404 |
| tryb jednostronicowy | index.html, 200 |
„Not found” Lobsite, 404 |
tryb jednostronicowy i 404.html |
index.html, 200 |
404.html, 404 |
200.html (z ustawieniem lub bez) |
200.html, 200 |
404.html, jeśli jest, w przeciwnym razie „Not found”, 404 |
Przy przeprowadzce z Netlify reguła _redirects /* /index.html 200 to spa = true; z Vercel rewrite /(.*) na /index.html oznacza to samo.
.lobsiteignore
Pliki pasujące do wzorca w .lobsiteignore nie są wdrażane. Składnia jest taka sama jak w .gitignore:
drafts/
*.psd
/notes.txt
!keep.psd
Plik jest czytany z wdrażanego folderu i z katalogu głównego projektu (obok lobsite.toml); wzorce w pliku z katalogu głównego są względne wobec niego. .git, node_modules, .DS_Store i sam .lobsiteignore są zawsze pomijane.
Pliki z sekretami (.env*, klucze prywatne jak *.pem i id_rsa, .npmrc, .netrc i podobne) zatrzymują wdrożenie, dopóki nie zostaną usunięte lub zignorowane. W terminalu CLI proponuje dodanie ich do .lobsiteignore i wdrożenie bez nich.
Formularze
<form action="/_lobsite/forms/contact" method="POST">
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button>Send</button>
</form>
Formularze są wykrywane podczas wdrożenia. Ochrona przed spamem (pułapka, pomiar czasu i limity) jest dodawana za Ciebie. Zgłoszenia trafiają na stronę „Zgłoszenia” w panelu i na Twój e-mail. Więcej o formularzach: przykłady, wysyłanie przez JavaScript, frameworki i ustawienia.
W darmowym planie formularze działają w trybie ograniczonym: miesięczny limit na stronę, powiadomienia tylko na e-mail konta i bez webhooków. Plan Standard dodaje webhooki, dowolny zweryfikowany adres powiadomień i wyższy limit.
Własne domeny
Własne domeny są w każdym koncie, łącznie z darmowym. lobsite domain add www.example.com wypisuje rekord do dodania: CNAME na cname.lobsite.app. Certyfikaty są wystawiane i odnawiane za Ciebie. Jeśli inne konto też dodało domenę, rekord TXT potwierdza, że jest Twoja.
Podglądy i wycofanie
Każde wdrożenie ma własny URL, <id>--<site>.lobsite.app. lobsite deploy --preview nie rusza produkcji; lobsite rollback i lobsite promote przełączają działające wdrożenie bez wysyłania plików.
CLI
lobsite [dir] | Wdróż folder (domyślne polecenie) |
lobsite deploy --preview | Prześlij bez zmiany produkcji |
lobsite deploys | Lista zachowanych wdrożeń |
lobsite rollback [id] | Przywróć wcześniejsze wdrożenie |
lobsite promote <id> | Opublikuj dowolne wdrożenie |
lobsite login / logout / whoami | Twoje konto |
lobsite claim [site] | Zachowaj anonimową stronę |
lobsite account [use <email>|me] | Przełącz na konto, którego jesteś członkiem |
lobsite token create|ls|revoke | Tokeny CI dla LOBSITE_TOKEN (Standard) |
lobsite ls / open / rm | Twoje strony |
lobsite domain add|status|rm | Własne domeny |
lobsite forms ls / export <name> --csv | Zgłoszenia z formularzy |
lobsite mcp | Serwer MCP dla agentów AI |
Limity
| Anonimowy | Free | Standard | |
|---|---|---|---|
| Strony | Bez limitu | 1 | 5 |
| Plików na stronę | 100 | 100 | 10 000 |
| Na plik | 5 MB | 5 MB | 100 MB |
| Rozmiar strony | 50 MB | 50 MB | 2 GB |
| Miejsce | — | 1 GB | 20 GB |
| Wdrożeń na godzinę | 10 | 30 | 100 |
| Wdrożeń dziennie na stronę | 3 | Bez limitu | Bez limitu |
| Historia wdrożeń | Live deploy only | 7 days | 30 days |
| Własnych domen na konto | — | 1 | 5 |
| Własnych domen na stronę | — | 1 | 1 |
| Transfer | 1 GB | 10 GB | Unlimited, fair use |
| Zgłoszeń z formularzy miesięcznie | — | 25 | Unlimited |
| Analityka | — | — | Yes |
| Automatyzacje (Zapier, n8n) | — | — | Yes |
| Plakietka „Powered by lobsite!” | 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.