Come Autogestire Supabase su un VPS

Pubblicato: di Dallas Kashuba
Come Autogestire Supabase su un VPS thumbnail

Stai usando Supabase Cloud da qualche mese, e la fattura continua ad aumentare.

Ogni bit extra di uscita dal database aggiunge una voce. Ogni 10.000 utenti attivi mensili ti avvicina a un eccesso.

Il piano Pro che iniziava a $25 al mese ora sembra più vicino ai $70.

Da qualche parte tra la pagina dei prezzi e la tua fattura effettiva, l’economia ha smesso di sembrare un affare.

L’auto-hosting è l’alternativa ovvia, ma “ovvia” sta facendo molto lavoro qui. Supabase non è un singolo binario che lasci cadere su un server. È un intero stack di backend — un database Postgres, un servizio di autenticazione, una API REST, sottoscrizioni in tempo reale, archiviazione, funzioni edge e una dashboard — tutti collegati insieme e in esecuzione come una piccola flotta di contenitori Docker.

Fare funzionare quella flotta sul tuo server costa tra $12 e $25 al mese per un VPS con abbastanza RAM per contenere tutto in memoria. Questo è l’equivalente di due abbonamenti streaming al mese per un backend che non ti addebiterà costi extra in caso di picchi di traffico.

Cos’è Supabase e Perché Le Persone Lo Stanno Auto-ospitando?

Supabase è una piattaforma Backend as a Service (BaaS) open-source che integra un database Postgres, autenticazione, una API REST, sottoscrizioni in tempo reale, archiviazione e funzioni di edge in un’unica distribuzione.

È l’alternativa a Firebase che funziona sulla tua infrastruttura, se lo desideri. Il repository GitHub ha superato le 100.000 stelle a partire da maggio 2026, e la piattaforma gestisce i backend per imprese come Mozilla, PwC, Johnson & Johnson e 1Password.

La domanda è se vuoi occuparti del lavoro operativo che Supabase Cloud gestisce per te o pagare qualcun altro per farlo. Stiamo parlando di backup, log, invio email e aggiornamenti.

Le persone ospitano autonomamente Supabase per tre motivi:

  1. Vogliono costi prevedibili che non aumentino con l’uso.
  2. Vogliono i loro dati su un’infrastruttura che controllano.
  3. Vogliono liberarsi dalla trappola del blocco del fornitore che ha reso così dolorosa la partenza da Firebase.

Supabase stesso è sorprendentemente franco su chi dovrebbe e chi non dovrebbe fare l’hosting autonomo. I documenti ufficiali per l’hosting autonomo lo dicono chiaramente: “Supabase auto-ospitato è supportato dalla comunità. Non riceverai lo stesso livello di supporto ufficiale come i clienti di Supabase Cloud.”

Traduzione: Se qualcosa si rompe alle 2 AM, sei da solo.

Cosa Ti Offre Effettivamente Supabase Direttamente dalla Scatola

Pila Supabase che mostra i servizi di base: Postgres, REST API, autenticazione, tempo reale, archiviazione, funzioni e gateway API.

Se pensavi che Supabase fosse solo “Postgres con una REST API”, non lo è. Lo stack auto-ospitato esegue circa 12 container in parallelo.

Le parti che toccherai più spesso sono piuttosto semplici:

  • Postgres. Il database al centro di tutto. Supabase utilizza una versione moderna di PostgreSQL con estensioni per autenticazione, tempo reale e ricerca full-text.
  • PostgREST. Genera automaticamente un’API REST dallo schema di Postgres. Una tabella diventa un endpoint, e non devi scrivere codice backend per farlo accadere.
  • Auth (precedentemente GoTrue). Gestisce le iscrizioni, gli accessi, il reset delle password, OAuth e l’emissione di JWT.
  • Realtime. Invia le modifiche del database ai client connessi tramite WebSockets.
  • Storage. Storage di oggetti compatibile con S3 con controllo di accesso legato al tuo database.
  • Edge Functions. Funzioni serverless basate su Deno che vengono eseguite vicino ai tuoi utenti.
  • Supabase Studio. La dashboard dove puoi navigare tra le tabelle, eseguire SQL e gestire gli utenti autenticati.

Ricevi anche Kong come gateway API, imgproxy per la gestione delle immagini, Supavisor per il pooling delle connessioni e Logflare per l’analisi. Metti tutto insieme, e stai guardando un intero stack backend, non una semplice app.

Ricevi contenuti direttamente nella tua casella di posta

Iscriviti ora per ricevere tutti gli ultimi aggiornamenti direttamente nella tua casella di posta.

Quanto Costa l’Hosting Autonomo di Supabase?

Ospitare autonomamente Supabase su un VPS costa $12–$25 al mese, coprendo il server, l’archiviazione e la larghezza di banda. Il software Supabase stesso è gratuito.

Dai un’occhiata alla tua ultima fattura di Supabase Cloud per un momento. La voce che sorprende le persone non è il costo base di $25. Sono l’egresso del database e lo storage aggiuntivo, che il piano Pro misura separatamente (la spiegazione dei costi del 2026 di Supascale esamina le voci).

Confronta con Supabase Cloud:

PianoCosto BaseCosa Ottieni
Gratuito0 €Database da 500 MB
50K utenti attivi mensili
1 GB di archiviazione
Si mette in pausa dopo 7 giorni di inattività
Pro25 €/meseDatabase da 8 GB
100K utenti attivi mensili
100 GB di archiviazione
250 GB di uscita
Team599 €/meseSupporto prioritario
Single Sign-On (SSO)
Log di controllo
Scaling basato sull’utilizzo
VPS auto-ospitato12-25 €/meseIllimitato (limitato solo dalla capacità del server)

Il prezzo base Pro sembra comparabile, ma l’uso nel mondo reale lo aumenta rapidamente.

L’analisi di Supascale mostra che la maggior parte delle applicazioni di produzione di piccole e medie dimensioni si attestano sui $100–$200 al mese su Pro, una volta considerati gli add-on di elaborazione e gli extra per superamento dei limiti — i livelli di elaborazione di Supabase partono da $10 al mese fino a $3,730 al mese per l’istanza 16XL. App con 100K–200K utenti attivi mensili possono superare di gran lunga queste cifre, e con 500K utenti attivi mensili le fatture possono raggiungere i $1,000–$2,000 al mese.

Il piano gratuito è gratuito — fino a quando non provi ad usarlo per la produzione.

I progetti si mettono in pausa automaticamente dopo sette giorni di inattività, il che significa che il tuo ambiente di staging muore ogni settimana e i tuoi progetti secondari si interrompono ogni volta che vai in vacanza. Secondo la suddivisione dei prezzi del 2026 di UI Bakery, questa è la ragione più comune per cui le persone abbandonano il piano gratuito prima del previsto.

L’auto-ospitazione capovolge l’equazione. I tuoi costi rimangono legati alla tua infrastruttura, non al tuo utilizzo. Gestire 50.000 MAU costa lo stesso di gestire 500.000, limitato solo da quello che il tuo VPS può sopportare. Nessuna tariffa di uscita, nessun eccesso di archiviazione, nessun add-on di elaborazione.

L’Hosting Autonomo Non È Solo Una Fattura VPS

Il conto del VPS non è l’unico costo per ospitare da soli. Spenderai anche in altri modi:

  • Il tuo tempo. Pianifica da una a due ore al mese per la manutenzione di routine, come aggiornamenti di sicurezza, aggiornamenti delle immagini Docker, controllo dei log e verifica dei backup. Prevedi più tempo se aggiungi funzionalità o aumenti le dimensioni.
  • Consegna delle email. Supabase Cloud gestisce le email di autenticazione (ad esempio, reset della password, link magici, verifica dell’email) come un servizio gestito. La versione auto-ospitata non lo fa. Avrai bisogno di un fornitore SMTP come SendGrid, Mailgun o AWS SES. Prevedi una spesa di $0-$30 al mese a seconda del volume.
  • Archiviazione oggetti per file. Il servizio di Storage utilizza di default il filesystem locale, il quale è adatto per i test e una bomba a orologeria in produzione. Avrai bisogno di uno storage di oggetti compatibile con S3 — AWS S3, Backblaze B2, Wasabi o DreamObjects di DreamHost sono tutti validi. Prevedi un budget di $5–$20 al mese per un’app di piccole-medie dimensioni in produzione.
  • Infrastruttura di backup. L’auto-ospitazione non include backup automatici, quindi dovrai configurarli tu stesso. Scrivi un lavoro Cron `simple pg_dump` e conserva l’output in un luogo affidabile. Non trascurare questa parte; il tuo futuro io ti ringrazierà.

Quali Specifiche Di Server Richiede Supabase?

Supabase richiede molta memoria. Eseguire contemporaneamente 12 container, la maggior parte dei quali vicini al database, significa che la RAM è più importante della CPU. Il minimo pratico è 4 GB per un’istanza di sviluppo con servizi opzionali disabilitati. Le implementazioni in produzione richiedono 8 GB o più.

Il motivo è il numero di contenitori, non un singolo servizio. Postgres richiede buffer condivisi. PostgREST necessita di un pool di connessioni. GoTrue richiede un piccolo footprint per il runtime di Go. Realtime mantiene aperte le connessioni WebSocket. Edge Runtime avvia isolati V8.

Singolarmente, ogni servizio è modesto. Combinati, si sommano rapidamente.

Se non hai mai configurato un VPS prima, inizia con la nostra guida per principianti al VPS prima di dimensionare il tuo server.

Da DreamHost, il nostro piano VPS Autogestito Stack 8 offre 8 GB di RAM con archiviazione SSD NVMe e accesso completo Root, la dimensione giusta per un deployment standard di Supabase con tutti i servizi opzionali attivi.

Che Dimensione Di VPS È Necessaria Per Supabase?

Carico di LavoroRAMCPUIdeale Per
Sviluppo / leggero4 GB2 coreTest, piccoli progetti secondari, Analytics e Tempo Reale disabilitati
Standard di produzione8 GB4 corePiccole app SaaS, backend per app mobili, tutti i servizi abilitati
Pesante16 GB+4-8 coreTraffico elevato, grandi carichi di lavoro Postgres, Funzioni Edge su larga scala

Puoi anche rimuovere i servizi opzionali dal file Docker Compose per ridurre l’impronta.

Non hai bisogno di sottoscrizioni in tempo reale? Salta il contenitore Realtime.

Non usi le Funzioni Edge? Rimuovi il Runtime Edge.

Le analisi non sono cruciali? Elimina Logflare.

Un stack semplificato potrebbe adattarsi più comodamente su un VPS da 4 GB.

Lo storage NVMe è più importante di quanto pensi. Postgres è costantemente in lettura e scrittura, e la latenza degli SSD influisce direttamente sulla velocità di esecuzione delle query. I vecchi dischi SATA o i dischi rotanti rallenteranno notevolmente prima che il database diventi interessante.

Come Funziona Il Setup Di Supabase Autogestito?

Processo in cinque fasi per avviare lo stack: provisionare VPS, installare Docker, clonare repo, generare segreti, eseguire Docker Compose.

Il dispiegamento completo richiede circa cinque passaggi e dura da una a due ore se ti trovi a tuo agio in un terminale.

Ecco cosa devi fare:

  1. Configura un VPS con Ubuntu 22.04 o più recente, 8 GB di RAM e accesso SSH.
  2. Installa Docker e Docker Compose sul server.
  3. Clona il repository di Supabase e copia il file di esempio dell’ambiente: `git clone https://github.com/supabase/supabase && cp supabase/docker/.env.example supabase/docker/.env`
  4. Genera e imposta i segreti. Esegui lo script `generate-keys.sh` di Supabase per produrre il tuo JWT_SECRET, ANON_KEY, e SERVICE_ROLE_KEY, poi imposta POSTGRES_PASSWORD e le credenziali del dashboard nel file .env.
  5. Esegui `docker compose up -d` dalla directory docker, e l’intero stack si avvia.

Saprai che ha funzionato quando `docker compose ps` mostra ogni servizio in uno stato `in esecuzione` o `sano`, e `curl http://localhost:8000/rest/v1/` restituisce una risposta JSON da PostgREST.

Se un container è in `restarting` o `exited`, controlla prima i log di quel container. Postgres è il solito colpevole, e la causa è di solito una variabile di ambiente mancante o malformata.

La documentazione ufficiale per l’auto-ospitamento di Supabase con Docker esamina ogni variabile d’ambiente.

Kong, il gateway API, si trova davanti a tutto e gestisce il routing. In produzione, tipicamente metterai un reverse proxy (un server che si trova tra internet e la tua applicazione, gestendo SSL e routing) come Caddy o Nginx davanti a Kong per terminare HTTPS e limitare l’accesso al dashboard.

Salva i tuoi JWT_SECRET, ANON_KEY e SERVICE_ROLE_KEY in un luogo affidabile non appena vengono generati. Perdere questi non è catastrofico perché puoi rigenerarli, ma il loro rinnovo costringe ogni sessione utente attiva a scadere e ogni app cliente a ottenere nuove chiavi.

Cosa Ti Servirà Per Ospitare Autonomamente Supabase

  • Un VPS con Ubuntu 22.04+ con almeno 8 GB di RAM e accesso Root/SSH
  • Un nome di dominio puntato all’IP del tuo server
  • Docker e Docker Compose installati
  • Un provider SMTP configurato per le email di autenticazione (SendGrid, Mailgun, AWS SES)
  • Memoria Object Storage compatibile S3 per il caricamento dei file di produzione (opzionale ma consigliato)
  • Una conoscenza di base del terminale e circa da una a due ore

Come Mantieni Sicura Un’istanza Supabase Autogestita?

La sicurezza di Supabase auto-ospitato si basa su tre pilastri specifici per la piattaforma, oltre alla normale igiene del VPS.

Tre vulnerabilità di sicurezza del database: segreto JWT esposto, tabelle non protette e controllo degli accessi compromessi da chiave super-amministratore.

Il Segreto JWT

Ogni token di autorizzazione che Supabase emette è firmato con il tuo JWT_SECRET. Se dovesse essere divulgato, gli attaccanti potrebbero falsificare token che impersonano qualsiasi utente.

I documenti sulla sicurezza dei token di Supabase spiegano come funziona: “Un segreto condiviso che si trova nelle mani di un attore malintenzionato può essere utilizzato per impersonare i tuoi utenti [e] consentire loro l’accesso ad azioni o dati privilegiati, ed è difficile rilevare o identificare quando o come un segreto condiviso sia stato dato a un attore malintenzionato.”

Tratta il JWT_SECRET come se fosse la password di un database di produzione, perché funzionalmente è esattamente ciò che è. Conservalo in un gestore di segreti, non in un file `.env` su Git, e mai nel tuo pacchetto frontend.

Il percorso di produzione raccomandato sono le chiavi di firma asimmetriche (RS256 o ECC). Sono più difficili da rivelare accidentalmente rispetto a un segreto condiviso, e Supabase supporta entrambi.

Sicurezza A Livello Di Riga

Il servizio PostgREST di Supabase espone ogni tabella del tuo database come un endpoint REST.

Senza politiche di Sicurezza a Livello di Riga su ogni tabella, ogni utente autenticato può leggere e scrivere ogni riga. Questo è l’errore più grande che i nuovi utenti fanno quando ospitano da soli.

Attiva RLS su ogni tabella fin dal primo giorno, inclusa quelle che pensi non ne abbiano bisogno.

Chiave del Ruolo di Servizio

Il SERVICE_ROLE_KEY è una chiave super-amministratore che elude completamente la sicurezza a livello di riga.

È destinato a chiamate da backend a backend dove è necessario saltare esplicitamente i permessi a livello utente. La chiave non deve mai comparire nel codice frontend, nei repository pubblici o nei pacchetti delle applicazioni client. Se viene divulgata, l’intero database è esposto.

Oltre alle preoccupazioni specifiche di Supabase, si applica la normale protezione del server. Abilita un firewall che esponga solo le porte 22 (SSH), 80 (HTTP) e 443 (HTTPS). Esegui tutto dietro a un proxy inverso con HTTPS. Restringi l’accesso a Supabase Studio solo da IP noti e mantieni il server aggiornato. I nostri consigli sulla sicurezza cloud coprono la checklist generale di protezione, quindi ti consigliamo di darci un’occhiata.

Un’ultima cosa: ruotare il segreto JWT invalida immediatamente tutte le sessioni utente attive. Pianifica una finestra di manutenzione e non ruotare il venerdì pomeriggio — altrimenti avrai dei problemi.

Quali Sono I Compromessi Tra L’Hosting Autonomo E Supabase Cloud?

Supabase auto-ospitato e Supabase Cloud non sono interscambiabili. Ognuno prevale su assi diversi.

FunzionalitàAuto-ospitatoSupabase Cloud
Costo mensile$12-$25 VPS + componenti aggiuntivi$25 base + costi per uso eccessivo
Scalabilità oltre la baseLimitata dal tuo VPSAutomatica (a pagamento)
Backup automatizzatiFai da te (pg_dump cron)Giornalieri automatici + PITR
Log (PostgREST, Edge Functions)Stack di osservabilità fai da teIncluso nella dashboard
Modifica delle Edge FunctionsSolo CLIEditor nella dashboard
Consegna emailFornitore SMTP fai da teGestito
SupportoComunità (GitHub, Discord)Livelli a pagamento con SLA
Localizzazione dei datiDove vuoi tuRegioni cloud di Supabase
ConformitàLa possiedi tuRichiesto Pro+

Self-hosting ha senso quando i costi prevedibili sono più importanti della comodità gestita, quando hai bisogno che i dati siano fisicamente su infrastrutture che controlli, o quando stai gestendo più progetti che costerebbero ciascuno più di $25 al mese sul Cloud.

Il Cloud è vincente quando la capacità operativa è scarsa e quando i backup automatizzati e l’uptime garantito da SLA sono imprescindibili. È anche una buona scelta quando il tuo team è piccolo e il calcolo del costo totale di proprietà favorisce effettivamente l’hosting gestito.

C’è anche una via di mezzo.

Strumenti come Coolify, Dokploy e Railway possono distribuire e gestire Supabase sul tuo VPS, occupandosi di aggiornamenti, backup e di una certa osservabilità senza l’approccio manuale completo di Docker Compose.

Semplicemente, ottieni la maggior parte dell’economia auto-ospitata con meno oneri operativi. Nessuno di essi eguaglia la rifinitura della Dashboard del Cloud, ma tutti costano meno del Cloud su larga scala.

Dovresti Veramente Ospitare Supabase da Solo?

Ospitare autonomamente Supabase non è tanto una decisione di costo quanto una decisione operativa.

Il VPS è economico. Ciò per cui ti stai effettivamente registrando è il possesso dei backup, dei log e della gestione delle email di autenticazione. Per la maggior parte dei piccoli team, questo scambio ha senso solo quando il prezzo del Cloud inizia a essere pesante o quando la residenza dei dati smette di essere un optional e diventa un requisito.

Se non sei pronto per la configurazione manuale completa, strumenti come Coolify e Dokploy si posizionano nel mezzo. Gestiranno lo stack sul tuo VPS con meno sovraccarico rispetto a Docker Compose puro e a un costo inferiore rispetto al Cloud una volta che aumenti la scala.

Il primo mese di auto-ospitato è il più difficile. Modificherai limiti di risorse che non sapevi esistessero, scoprirai modalità di errore non documentate e scriverai il manuale operativo che avresti voluto che qualcun altro ti avesse dato.

I mesi due fino a dodici diventano tranquilli. Effettui aggiornamenti con Docker Compose, esegui un pg_dump notturno su S3 e la tua fattura rimane invariata.

Il modo migliore per scoprire da che parte stai: avvia un VPS da $12, esegui un’istanza Supabase non di produzione per una settimana e lascia che l’esperienza decida per te.

L’economia ti dirà il resto.

VPS

Possiedi l’intero stack. App, IA, database e altro ancora.

Mantieni ogni credenziale e conversazione su un server che controlli tu, con velocità NVMe e banda illimitata integrate.

Esplora i piani di hosting VPS

Domande Frequenti Sul Self-Hosting Di Supabase

Non sei sicuro se ospitare autonomamente Supabase sia la mossa giusta? Di seguito alcune delle domande più frequenti che le persone si pongono prima di fare il grande passo.

Supabase autogestito è davvero gratuito?

Supabase auto-ospitato è gratuito, software open-source con licenza Apache 2.0. I tuoi costi effettivi sono il VPS, un fornitore SMTP opzionale per le email di autenticazione e uno spazio di archiviazione compatibile S3 opzionale per il caricamento di file di produzione. Prevedi un budget di circa $15 a $50 al mese tutto incluso per un piccolo dispiegamento di produzione.

Quale server mi serve per ospitare Supabase autonomamente?

La configurazione di produzione consigliata è 8 GB di RAM, 4 core CPU e archiviazione NVMe SSD. L’intero stack Supabase esegue circa una dozzina di contenitori, e la maggior parte di essi contiene memoria di lavoro.

Puoi eseguire un’istanza di sviluppo minima su 4 GB se disabiliti Analytics, Realtime e Edge Runtime nel tuo file Docker Compose. Il piano Stack 8 di VPS gestito autonomamente di DreamHost offre 8 GB di RAM con accesso completo al root; vedi i nostri piani di Hosting VPS per la gamma completa.

Quali funzionalità mancano nel Supabase auto-ospitato?

Le lacune più grandi sono i backup automatizzati del database, il ripristino a un certo punto temporale, la modifica delle funzioni edge basata su dashboard, la registrazione unificata per PostgREST e le Funzioni Edge, e la gestione della consegna delle email. Puoi costruire sostituti per tutte queste (ad es., lavori Cron `pg_dump`, un stack di osservabilità personalizzato, un provider SMTP), ma niente è pronto all’uso. Il pannello di controllo di Supabase Studio funziona su hosting autonomo, ma il pannello del Cloud ha più rifiniture e nuove funzionalità per primo.

Come aggiorno un’istanza Supabase auto-ospitata?

Esegui `docker compose pull` per scaricare le ultime immagini, poi `docker compose up -d` per riavviare con le nuove versioni. L’intero aggiornamento richiede circa cinque minuti su un’istanza sana.

Esegui il backup del tuo database Postgres con `pg_dump` prima di qualsiasi aggiornamento di versione importante, blocca le tue immagini Docker a tag di versione specifici in produzione e leggi le note di rilascio di Supabase per le modifiche importanti. I servizi di autenticazione e archiviazione richiedono occasionalmente passaggi di migrazione.

Posso migrare da Supabase Cloud a self-hosted?

Sì, ma ci vuole più di un’esportazione del database. I dati di Postgres migrano con `pg_dump` dal Cloud e `pg_restore` su un sistema auto-ospitato. Gli utenti autenticati, gli oggetti di archiviazione e le funzioni edge hanno ciascuno i propri percorsi di migrazione.

Prevedi qualche ora di lavoro per un piccolo progetto e più tempo per schemi complessi.