Produkty
Sites — hosting frontendu
Statyczne strony i aplikacje SSR obok bazy: wdrożenia, podglądy, rollback, domeny, GitHub, hook i CLI.
Sites hostuje frontend Twojego projektu w UE, obok bazy. Wgrywasz gotowy build (dist/, .zip) albo kod źródłowy — budujemy go w izolowanym kontenerze gVisor — i wystawiamy pod adresem HTTPS. Obsługiwane: Vite/React/Vue/Svelte, Create React App, Astro, SvelteKit (adapter-static), Next.js z output: 'export' (statyczne) oraz Next.js i dowolne aplikacje Node.js (npm start) jako SSR.
Adresy
- Produkcja:
https://<witryna>-<ref>.host.ulewicz.space - Każde wdrożenie:
https://<witryna>-d3-<ref>.host.ulewicz.space(niezmienny podgląd) - Pull request:
https://<witryna>-pr12-<ref>.host.ulewicz.space - Własna domena: dodaj ją w zakładce Domeny i ustaw
CNAMEna<witryna>-<ref>.host.ulewicz.space. Certyfikat Let's Encrypt wystawiamy i odnawiamy automatycznie.
Nazwa witryny: małe litery, cyfry i „-”, maks. 41 znaków; nie może kończyć się na -d<liczba> ani -pr<liczba> i nie może być db, cache ani search.
Wdrażanie
# CLI
hostbase sites deploy ./dist --site sklep # gotowy build (tryb dist)
hostbase sites deploy . --site sklep --mode source # kod źródłowy, budowany u nas
hostbase sites deploy . --site sklep --preview # podgląd, produkcja bez zmian
hostbase sites rollback sklep d11 # natychmiastowy powrót
hostbase sites logs sklep --build --deployment d12
- Panel — kreator: wgraj .zip lub folder, wybierz framework, ustaw zmienne.
- GitHub — po podłączeniu repozytorium (Integracje → GitHub) powiąż witrynę z gałęzią: push wdraża produkcję, PR z tego samego repozytorium dostaje podgląd, status commita
hostbase/sites/<witryna>i komentarz z adresem. PR z forków nie są budowane. - Hook wdrożeniowy — adres
POST https://host.ulewicz.space/api/hooks/sites/<token>uruchamia nowe wdrożenie produkcyjne (z CI lub CMS). Rotacja w panelu lubhostbase sites hook sklep --rotate. - API / MCP —
POST /api/v1/projects/{ref}/sites/{name}/deploymentszarchive_base64; narzędzia MCPdeploy_site,promote_site_deploymenti inne.
Budowanie i zmienne środowiskowe
Framework wykrywamy po package.json (lub ustawiasz ręcznie, razem z komendą instalacji, budowania i katalogiem wynikowym). Budowanie trwa maks. 15 minut, w kontenerze gVisor z 2 vCPU i 3 GB RAM, z cache npm między budowami. Do builda i do SSR wstrzykujemy automatycznie: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY, PUBLIC_SUPABASE_*, REACT_APP_SUPABASE_*, SUPABASE_URL, SUPABASE_ANON_KEY, HOSTBASE_SITE_URL. Klucz service_role i DATABASE_URL trafiają wyłącznie do działających aplikacji SSR — nigdy do builda ani do plików statycznych. Własne zmienne nadpisują automatyczne; zmiany budowania działają od następnego wdrożenia (sites redeploy).
Serwer statyczny
- Fallback SPA (
index.html), czyste adresy (/o-nas→o-nas.htmllubo-nas/index.html), własne404.html. - Brotli i gzip (pliki kompresujemy przy wdrożeniu), ETag/304, Range.
- Zasoby z hashem w nazwie (
/assets/index-Ab12Cd34.js,/_next/static/…) dostająCache-Control: immutablena rok; HTML jest zawsze rewalidowany. _redirectsw katalogu wynikowym:
/stara-strona /nowa-strona 301
/blog/:slug /artykuly/:slug 302
/api/* /index.html 200
/sklep/* /produkty/:splat 301!
/zniknelo /404.html 404
Reguły działają, gdy nie ma pliku o danej ścieżce; wykrzyknik po statusie wymusza regułę mimo istniejącego pliku. 200 to przepisanie (bez zmiany adresu).
# _headers
/*
X-Frame-Options: DENY
Referrer-Policy: same-origin
/assets/*
Cache-Control: public, max-age=31536000, immutable
Wdrożenia, rollback i SSR
Każde wdrożenie jest niezmienne i ma własny adres. Awans (promote) i rollback przełączają produkcję na wybrane gotowe wdrożenie bez przebudowy i bez przestoju. Zachowujemy 10 ostatnich wdrożeń i produkcyjne. Nieudane wdrożenie nie zmienia produkcji, a powiadomienie o błędzie trafia do centrum powiadomień. Aplikacje SSR działają w kontenerach (gVisor, użytkownik bez uprawnień, system plików tylko do odczytu, sieć prywatna do Twojej bazy); produkcyjny i dwa ostatnie podglądy są uruchomione, starsze usypiają i można je obudzić.
Statystyki i limity
Zakładka Statystyki pokazuje żądania, transfer, kody statusu i najpopularniejsze ścieżki z logów brzegowych. Transfer liczy się do egress planu; budowanie do limitu minut (Free 100, Pro 1000, Team 6000 / mies., ponad limit 0,12 zł / min); kontenery SSR rozliczamy jak godziny Workers (Small/Medium/Large) i wymagają planu Pro+. Limity: 10 witryn na projekt, 10 domen na witrynę, archiwum do 24 MB, witryna do 500 MB i 20 000 plików.
Management API
GET /api/v1/projects/{ref}/sites
PUT /api/v1/projects/{ref}/sites/{name} # ustawienia
POST /api/v1/projects/{ref}/sites/{name}/deployments # {mode, target, archive_base64, settings}
POST /api/v1/projects/{ref}/sites/{name}/deployments/{id}/promote
GET /api/v1/projects/{ref}/sites/{name}/logs?build=1&deployment=d3
PUT /api/v1/projects/{ref}/sites/{name}/env # {env: {K: "v"}}
POST /api/v1/projects/{ref}/sites/{name}/domains # {hostname}
GET /api/v1/projects/{ref}/sites/{name}/analytics?range=7d
POST /api/v1/projects/{ref}/sites/{name}/hook