L'installazione di Supabase tramite Docker è illustrata in dettaglio nella documentazione ufficiale. Tuttavia, alcuni dettagli andrebbero compresi meglio per poter effettuare un'installazione senza intoppi.
File necessari
Sulla pagina Self-Hosting with Docker, nella sezione Installing and running Supabase, viene mostrata la procedura in cui si effettua la clonazione della repository GitHub ufficiale come primo passaggio.
In realtà i file necessari per poter installare Supabase in Docker sono solo quelli contenuti nella directory docker
. Di conseguenza tutti gli altri file e directory non sono necessari allo scopo che si vuole ottenere e quindi possono essere eliminati.
Chiavi API nel file .env
Nella sezione Generate API keys è presente un modulo per generare le credenziali da inserire nel file .env
dell'installazione.
Questa sezione è fondamentale poiché se si lascia inalterato il contenuto del file .env
con i dati predefiniti, la connessione alle API tramite client (ad esempio con JavaScript) restituirà un errore di autenticazione su tutti gli endpoint. Ciò avviene perché il pametro JWT Secret, generato e presentato nel modulo, costituisce la chiave crittografica con cui verranno aa loro volta generate le chiavi API.
SMTP e supporto TLS
Supabase restituirà un errore interno se il servizio SMTP che stiamo usando, e di cui abbiamo specificato le informazioni nel file .env
, non supporta correttamente TLS.
Quindi se si sta utilizzando un servizio locale (ad esempio Mailpit) per lo sviluppo, occorre fare in modo che il supporto a TLS sia abilitato.
Reinstallazione
Supabase è basato su PostgreSQL. Per effettuare una reinstallazione completa evitando il problema del blocco dei servizi Docker che fanno riferimento al database, occorre eliminare la directory dei dati di PostgreSQL.
Possiamo effettuare questa operazione dal terminale:
cd supabase/docker
sudo rm -rf volumes/db/data
La directory data
verrà ricreata da Supabase all'atto dell'esecuzione del comando docker compose up -d
.
Conclusione
La documentazione di Supabase è ricca e completa, ma come sempre occorre conoscere dei dettagli acquisibili solo tramite un'esperienza diretta.