Czy Supabase jest darmowy? Limity chmury a self-hosting
Analiza darmowego planu Supabase z limitem 500 MB bazy danych oraz automatycznym wstrzymywaniem projektów. Porównanie kosztów utrzymania własnej instancji na VPS.
Czy Supabase jest darmowy?
Supabase jest darmowy na dwa różne sposoby, a oferty te nie są tożsame. Plan Free w modelu hostowanym nie wiąże się z opłatami. Dokumentacja rozliczeniowa Supabase wymaga podpięcia karty płatniczej w przypadku planów płatnych, natomiast nie wspomina o takim wymogu dla planu Free. Kod źródłowy jest otwarty, więc uruchomienie całego stosu na własnym serwerze VPS (virtual private server) nie wiąże się z kosztami licencyjnymi. Jeden z tych modeli rozlicza użytkownika poprzez limity, drugi poprzez nakład pracy.
Stan na dzień 20 października 2026, supabase.com/pricing wskazuje plan Free obejmujący 0.5 GB bazy danych, 1 GB przestrzeni plikowej, 5 GB transferu wychodzącego oraz 50 000 aktywnych użytkowników miesięcznie, w ramach dwóch aktywnych projektów. Ta sama strona zawiera zapis, który determinuje większość tych parametrów: "Darmowe projekty są wstrzymywane po 1 tygodniu nieaktywności". Przed zaplanowaniem architektury w oparciu o te dane należy je zweryfikować, ponieważ strony z cennikami ulegają zmianom.
Co faktycznie oferuje plan Free
Dane, na których opiera się ten wykres
[
{
"plan": "Free",
"db_gb": 0.5,
"file_storage_gb": 1,
"egress_gb": 5
},
{
"plan": "Pro",
"db_gb": 8,
"file_storage_gb": 100,
"egress_gb": 250
}
]MAU (monthly active users) to liczba unikalnych użytkowników, którzy wygenerowali dowolne zdarzenie uwierzytelniania w cyklu rozliczeniowym. Supabase wskazuje logowanie, odświeżenie tokena oraz wylogowanie jako przykłady, więc zalogowany użytkownik, którego sesja jest automatycznie odświeżana, wlicza się do limitu nawet bez ponownego logowania w danym miesiącu. Każdy użytkownik liczony jest raz na cykl, więc 50,000 to wartość wystarczająca dla projektów w fazie budowy. Liczba użytkowników niemal nigdy nie wyczerpuje się jako pierwsza. Zazwyczaj ograniczeniem jest 0.5 GB bazy Postgres lub 5 GB transferu wychodzącego, gdy zaczynasz serwować obrazy lub pliki z Storage.
Dwa aktywne projekty to mniej oczywisty limit. Jeden projekt produkcyjny i jeden projekt testowy (staging) wyczerpują plan Free, więc trzeci pomysł musi poczekać lub współdzielić bazę danych z usługą, z którą nie powinien być łączony.
Dlaczego wstrzymanie projektu jest ważniejsze niż limit pamięci
„Darmowe projekty są wstrzymywane po 1 tygodniu nieaktywności” to zdanie, które kończy większość planów darmowych. Projekt, do którego nikt nie wysyła zapytań przez siedem dni, przestaje obsługiwać żądania. Demo podlinkowane w pliku README lub API środowiska stagingowego, z którego korzysta się raz w miesiącu, jest niedostępne w momencie, gdy osoba, której wysłano link, w niego kliknie. Przywrócenie projektu odbywa się za pomocą przycisku Resume project w panelu Supabase i jest możliwe przez rok od momentu wstrzymania, więc naprawa jest szybka, ale tylko pod warunkiem monitorowania sytuacji. Supabase wysyła ostrzeżenie e-mail na około tydzień przed wstrzymaniem projektu, co pomaga tylko wtedy, gdy ktoś sprawdza tę skrzynkę odbiorczą.
To jest rzeczywista cena darmowego planu hostingowego. Nie płaci się pieniędzmi. Płaci się dostępnością oraz limitem, którego nie można podnieść bez przejścia na wyższy plan.
Koszty planów Pro i Team po wyczerpaniu limitów darmowych
Dane, na których opiera się ten wykres
[
{
"plan": "Free",
"usd_per_month": 0
},
{
"plan": "Pro",
"usd_per_month": 25
},
{
"plan": "Team",
"usd_per_month": 599
}
]Plan Pro zaczyna się od 25 USD miesięcznie i obejmuje 8 GB miejsca na dysku na projekt, 100 GB pamięci masowej na pliki oraz 250 GB transferu wychodzącego. Po przekroczeniu tych wartości, cennik przewiduje 0.125 USD za GB dysku, 0.0213 USD za GB pamięci na pliki oraz 0.09 USD za GB transferu wychodzącego bez cache. Transfer wychodzący z cache posiada własny limit 250 GB, powyżej którego koszt wynosi 0.03 USD za GB. Wszystkie powyższe stawki obowiązują na dzień 20 października 2026. Plan Pro usuwa również automatyczne wstrzymywanie projektu z powodu braku aktywności. Plan Team zaczyna się od 599 USD miesięcznie i jest przeznaczony dla organizacji wymagających funkcji zgodności oraz kontroli dostępu, a nie dla pojedynczego programisty realizującego poboczny projekt.
Limity wydatków (spend caps) są domyślnie włączone w planie Pro. To ustawienie ma kluczowe znaczenie: przekroczenie wliczonego limitu powoduje ograniczenie usługi, zamiast zwiększania rachunku w trakcie snu użytkownika. Wyłączenie limitu oznacza świadomy wybór drugiego wariantu obsługi przekroczeń. Jest to ten sam rachunek, który przeprowadza się, porównując koszt zarządzanego Postgres do samodzielnie utrzymywanego VPS, ponieważ cena usługi zarządzanej w głównej mierze pokrywa koszt dyżurów technicznych zewnętrznego zespołu.
Koszty samodzielnego hostingu
Brak opłat licencyjnych. Dokumentacja Supabase określa Docker jako „najszybszy i zalecany sposób samodzielnego hostingu”, a cały stos działa na zwykłym VPS. Rachunek przybiera jednak formę nakładu pracy, a dokumentacja wprost wskazuje, jakie obowiązki przechodzą na administratora:
- przygotowanie i utrzymanie serwera
- wzmacnianie bezpieczeństwa oraz aktualizacja systemu operacyjnego i usług
- konfiguracja i zarządzanie usługami
- utrzymanie bazy danych Postgres
- zapewnienie wysokiej dostępności i skalowalności
- tworzenie kopii zapasowych i odtwarzanie po awarii
- monitorowanie i zapewnienie czasu pracy (uptime)
Należy traktować to jako koszt cotygodniowy, a nie jednorazowy koszt wdrożenia. Przygotowanie serwera wykonuje się raz. Aktualizacje i sprawdzanie kopii zapasowych wykonuje się bezterminowo. Jeśli uczciwa odpowiedź brzmi, że nikt nigdy nie przetestuje odtwarzania danych, plan hostowany jest tańszy, niż się wydaje, ponieważ kopia zapasowa, której nigdy nie przywrócono, nie jest kopią zapasową.
Czego nie zawiera samodzielnie hostowany Supabase
Samodzielnie hostowany stos nie jest kopią platformy zarządzanej. Dokumentacja wymienia niedostępne funkcje: "branching, zaawansowane metryki wykraczające poza logi, zarządzane kopie zapasowe oraz PITR, analityka i zasobniki wektorowe, ETL oraz Management API". PITR (point in time recovery) to funkcja, której użytkownicy najbardziej potrzebują po migracji. W planach hostowanych jest to ustawienie włączane jednym przełącznikiem. Na własnym serwerze wymaga to wykonania kopii zapasowej typu base backup oraz archiwizacji WAL (write ahead log), zapewnienia zewnętrznej lokalizacji do ich przechowywania, a także przeprowadzenia prób odtworzenia danych, aby potwierdzić poprawność konfiguracji. Do tego celu służą narzędzia takie jak pgBackRest, a cała konfiguracja spoczywa na administratorze.
Studio, czyli panel webowy, w wersji samodzielnie hostowanej "nie obsługuje wielu organizacji ani projektów". Jeden stos to jeden projekt. Jeśli powodem przejścia na własną infrastrukturę była chęć obejścia limitu dwóch projektów, należy zaplanować wdrożenie drugiego stosu na osobnych portach lub na oddzielnym serwerze, zamiast próbować tworzyć drugi projekt wewnątrz jednego panelu.
Co otrzymujesz w zamian
Samodzielnie hostowany Supabase „nie łączy się z centralą ani nie zbiera telemetrii”, jak podaje dokumentacja. Twoje wiersze i tabela użytkowników znajdują się na sprzęcie, który wynajmujesz bezpośrednio, co stanowi kluczowy argument, gdy umowa z klientem lub regulator wymaga przechowywania danych w konkretnym kraju.
Otrzymujesz również samego Postgresa. Platforma chmurowa optymalizuje i zarządza serwerem w Twoim imieniu. Na własnej maszynie, shared_buffers, max_connections, lista rozszerzeń oraz pooler znajdujący się przed bazą danych są w całości pod Twoją kontrolą. Ten ostatni element staje się problematyczny dość szybko, ponieważ funkcja serverless lub intensywnie działająca aplikacja otworzy więcej połączeń, niż Postgres jest w stanie obsłużyć. W tym momencie uruchomienie PgBouncer lub Supavisor na własnym VPS przestaje być opcjonalne.
Egress to ograniczenie, które przy samodzielnym hostingu znika w najbardziej zauważalny sposób. 5 GB znika błyskawicznie, gdy Storage serwuje obrazy lub dźwięk rzeczywistym użytkownikom. Większość planów VPS uwzględnia transfer mierzony w terabajtach, więc aplikacja intensywnie korzystająca z plików osiągnie limit wersji hostowanej znacznie szybciej, niż obciąży serwer. Jeśli to Storage jest powodem, dla którego czytasz ten tekst, wyceń dysk przed mocą obliczeniową: to, ile naprawdę kosztuje terabajt na block lub object storage ma większy wpływ na całkowity koszt niż procesor.
Uruchamianie własnej instancji stosu
Zalecaną ścieżką jest wykonanie płytkiego klonowania repozytorium do katalogu docker, z przypięciem do konkretnego tagu wydania. Na dzień 20 października 2026 r. jest to tag self-hosted/v0.8.3, opublikowany 16 października 2026 r. Zawiera on poprawki bezpieczeństwa dla komponentów Storage oraz Realtime, dlatego warto zaktualizować instalacje korzystające ze starszych wersji. Oficjalny skrypt instalacyjny dostępny pod adresem supabase.link/setup.sh obsługuje systemy Debian, Ubuntu, RHEL, CentOS oraz Fedora. Ręczne klonowanie opisane poniżej jest lepszym wyborem, jeśli pliki mają być przechowywane we własnym repozytorium git.
git clone --depth 1 --branch self-hosted/v0.8.3 https://github.com/supabase/supabase
mkdir supabase-project
cp -rf supabase/docker/. supabase-project
cd supabase-project && cp .env.example .env
printf 'ref=self-hosted/v0.8.3\n' > .supabase-version
docker compose pull
sh utils/generate-keys.sh
sh utils/add-new-auth-keys.sh
sh run.sh startKrok sh utils/generate-keys.sh jest obowiązkowy. Plik .env.example zawiera domyślne wartości sekretów, które są publicznie dostępne w repozytorium. Uruchomienie stosu na tych wartościach naraża instancję na nieautoryzowany dostęp. Dokumentacja zaleca uruchomienie sh utils/add-new-auth-keys.sh bezpośrednio po tym kroku, aby wygenerować nowe klucze API oraz parę kluczy asymetrycznych. Przed uruchomieniem stosu należy przejrzeć wyniki działania obu skryptów oraz sprawdzić plik .env. Plik .supabase-version przechowuje informację o użytej wersji, co pozwala na późniejszą aktualizację instalacji za pomocą dołączonego skryptu update.sh. Należy również ustawić DASHBOARD_PASSWORD w pliku .env, ponieważ panel Studio jest chroniony przez uwierzytelnianie HTTP Basic, a dokumentacja wymaga, aby hasło zawierało co najmniej jedną literę.
Poprawność działania należy zweryfikować za pomocą docker compose ps, co powinno wyświetlić listę wszystkich usług ze statusem running lub healthy. Następnie należy otworzyć Studio na porcie 8000 i zalogować się przy użyciu danych uwierzytelniających panelu. Polecenie sh run.sh secrets wyświetla wygenerowane klucze w razie potrzeby, a sh run.sh stop zatrzymuje stos. Nie należy wystawiać portu 8000 bezpośrednio do Internetu. Należy umieścić przed nim reverse proxy z terminacją TLS (transport layer security) lub ograniczyć dostęp do sieci prywatnej. Pełna instrukcja, obejmująca konfigurację proxy oraz wartości .env, które warto zmienić w pierwszej kolejności, znajduje się w przewodniku krok po kroku dotyczącym samodzielnego hostowania Supabase z użyciem Docker Compose.
Która darmowa opcja jest odpowiednia
Wybierz hostowany plan Free na etapie budowy projektu, gdy przerwa w działaniu nie generuje kosztów. Jest to pełnoprawny plan z dużą liczbą użytkowników, który zakłada jednak, że z czasem projekt z niego wyrośnie.
Wybierz plan Pro w cenie $25 miesięcznie, gdy projekt posiada użytkowników, dla których przestoje są zauważalne. Koszt ten jest niższy niż czas poświęcony na weryfikację kopii zapasowych w ciągu miesiąca, więc opłata ta jest decyzją o optymalizacji harmonogramu, a nie porażką.
Wybierz self-hosting, jeśli już zarządzasz serwerem VPS i wykonujesz na nim prace operatorskie dla innych usług, jeśli dane nie mogą opuścić Twojej jurysdykcji lub gdy koszty przechowywania i transferu danych rosną szybciej niż cena serwera. Ten schemat powtarza się w przypadku każdego produktu typu open core. Podział między darmową edycją społecznościową n8n a jej płatnymi wersjami oraz podział między darmowym Nextcloud Hub a subskrypcją enterprise wyznaczają tę samą granicę w tym samym miejscu. Darmowe oprogramowanie jest wystarczająco kompletne, aby obsłużyć rzeczywiste obciążenie. Płatny produkt oferuje elementy, których utrzymanie jest uciążliwe dla każdego administratora.
FAQ
Czy plan darmowy Supabase jest darmowy na zawsze?
Strona z cennikiem nie określa limitu czasowego ani okresu próbnego dla planu Free, co zweryfikowano 20 października 2026 r., a dokumentacja rozliczeniowa wymaga podania karty płatniczej tylko w planach płatnych. Plan Free posiada natomiast limity: 0.5 GB bazy danych, 1 GB pamięci masowej plików, 5 GB ruchu wychodzącego, 50 000 aktywnych użytkowników miesięcznie oraz dwa aktywne projekty. Tym, co kończy darmowe korzystanie z usługi dla większości użytkowników, nie jest żaden z powyższych limitów. Jest to zasada, zgodnie z którą „darmowe projekty są wstrzymywane po 1 tygodniu nieaktywności”.
Co się dzieje, gdy darmowy projekt Supabase zostaje wstrzymany?
Projekt przestaje obsługiwać żądania. Wywołania API kończą się niepowodzeniem, a panel sterowania oznacza projekt jako wstrzymany do momentu przywrócenia go przyciskiem Resume project, który według dokumentacji pozostaje dostępny przez rok od momentu wstrzymania. Supabase wysyła ostrzeżenie e-mail na około tydzień przed wstrzymaniem, jednak sama aplikacja nie otrzymuje żadnego powiadomienia, więc udostępniona miesiąc wcześniej wersja demonstracyjna zazwyczaj nie działa, gdy ktoś zgłosi problem. Jeśli projekt musi być dostępny o każdej porze dnia, należy przenieść go do planu Pro lub wdrożyć samodzielnie.
Czy samodzielnie hostowany Supabase jest tym samym, co wersja chmurowa?
Nie. Dokumentacja wymienia funkcje, których samodzielne hostowanie nie obejmuje: „branching, zaawansowane metryki wykraczające poza logi, zarządzane kopie zapasowe i PITR, analityka i zasobniki wektorowe, ETL oraz Management API”. Studio również „nie obsługuje wielu organizacji ani projektów”, co oznacza, że jeden samodzielnie hostowany stos technologiczny odpowiada jednemu projektowi. Komponenty bazy danych, autoryzacji, pamięci masowej, obsługi czasu rzeczywistego oraz Edge Functions to to samo oprogramowanie, które działa na platformie chmurowej.
Czy samodzielnie hostowany Supabase wysyła jakiekolwiek dane do Supabase?
Nie. Dokumentacja dotycząca samodzielnego hostowania stwierdza, że wdrożenie „nie łączy się z serwerami zewnętrznymi ani nie zbiera żadnej telemetrii”. Kontenery pobierają obrazy z publicznego rejestru podczas uruchamiania docker compose pull, co jest zwykłym pobraniem obrazu, a nie raportem na temat danych użytkownika. Wszystkie operacje po tym kroku pozostają na serwerze, co oznacza również, że każda kopia zapasowa i każda aktualizacja bezpieczeństwa spoczywa na administratorze.