PostgreSQL ili Supabase
| PostgreSQL | Supabase (self-hosted) | |
|---|---|---|
| Šta dobijate | bazu podataka | bazu, prijavu korisnika, fajlove, REST i realtime API, Studio |
| Ko piše backend | vi (Laravel, Django, Node.js…) | veliki deo je gotov, frontend zove API direktno |
| Broj servisa | jedan | desetak kontejnera |
| RAM za početak | 1 do 2 GB | najmanje 4 GB, za upotrebu 8 GB |
| Održavanje | ažuriranja baze i backup | ažuriranja svih servisa, tajni ključevi, backup |
| Tipična aplikacija | klasičan sajt ili API | aplikacija iz Lovable-a ili Bolt-a, mobilna aplikacija |
Pravilo je jednostavno: ako aplikacija već ima backend, uzmite PostgreSQL. Ako je napravljena oko Supabase klijenta (@supabase/supabase-js) i koristi njegovu prijavu i fajlove, treba vam Supabase.
Samo PostgreSQL na VPS-u
apt update && apt install -y postgresql
sudo -u postgres createuser --pwprompt aplikacija
sudo -u postgres createdb -O aplikacija aplikacija_dbBaza podrazumevano sluša samo na localhost, što je i najbezbednije kad je aplikacija na istom serveru. Ako baza mora da prima veze spolja, dozvolite samo određene IP adrese u pg_hba.conf i u zaštitnom zidu, nikad ceo internet.
Supabase na VPS-u (Docker Compose)
Supabase se na sopstvenom serveru pokreće zvaničnom Docker Compose postavkom. Ako Docker još nije instaliran, prvo uradite korake iz vodiča Docker na VPS-u, a šta su kontejneri i image piše na stranici šta je Docker.
- Pripremite VPS. Za Supabase uzmite VPS sa 4 GB RAM-a za probu, a 8 GB za rad (CLOUD 4, 3.390 RSD mesečno) i Ubuntu 24.04, pa instalirajte Docker i Docker Compose.
- Preuzmite Supabase Docker postavku. Klonirajte zvanični repozitorijum supabase/supabase i kopirajte sadržaj foldera docker i fajl .env.example u svoj folder projekta.
- Promenite tajne u .env. Upišite svoje POSTGRES_PASSWORD, JWT_SECRET, ANON_KEY, SERVICE_ROLE_KEY i lozinku za Studio. Podrazumevane vrednosti iz primera nikad ne ostavljajte na serveru.
- Pokrenite servise. Komandama docker compose pull i docker compose up -d preuzmite i pokrenite sve kontejnere, pa proverite stanje sa docker compose ps.
- Postavite domen i SSL. Ispred Supabase API-ja i Studio-a postavite reverse proxy sa SSL-om (npr. Caddy) na poddomenu, na primer api.vasdomen.rs.
- Uključite backup baze. Podesite dnevni pg_dump preko cron-a i kopiju van servera, jer je sve važno u Postgres bazi.
git clone --depth 1 https://github.com/supabase/supabase
mkdir supabase-projekat
cp -rf supabase/docker/* supabase-projekat/
cp supabase/docker/.env.example supabase-projekat/.env
cd supabase-projekat
nano .env # promenite sve tajne i lozinke
docker compose pull
docker compose up -d
docker compose ps # svi servisi "running (healthy)"Backup baze
Na VPS-u backup radite sami. Najjednostavnije je dnevni izvoz baze preko cron-a:
15 3 * * * cd /root/supabase-projekat && docker compose exec -T db pg_dump -U postgres postgres | gzip > /root/backup/supabase-$(date +\%F).sql.gzIzvoz kopirajte i van servera, a fajlove iz Storage-a (volumes/storage) uključite u isti backup. Za VPS postoji i backup kao dodatna usluga, opisan na stranici dodaci za hosting i servere.
Supabase Cloud ili sopstveni server
Supabase Cloud ima besplatan plan sa ograničenjima i plaćene planove (aktuelne uslove pogledajte na supabase.com/pricing). Sopstveni server ima smisla kad želite fiksni mesečni trošak, kad podaci treba da budu na serveru koji vi kontrolišete ili kad na istom VPS-u već držite i druge servise. Ako ne želite da održavate servere, Cloud je jednostavniji izbor.
Aplikacije iz Lovable-a, Bolt-a i sličnih alata najčešće koriste Supabase. Kako da takvu aplikaciju objavite na svom domenu, piše na stranici AI hosting.