Supabase Installazione · 8 min read · Sep 13, 2025
Come Installare Supabase (Alternativa a Firebase) con Docker su Ubuntu 24.04

Supabase è un’alternativa open-source a Firebase costruita sopra il database PostgreSQL, il database relazionale più affidabile al mondo. Permette agli sviluppatori di costruire applicazioni web, mobili e AI complete. Supabase offre database PostgreSQL, autenticazione, API, Storage, abbonamenti in tempo reale e vettori di embedding. Con la semplice configurazione e interfaccia utente, gli sviluppatori possono rapidamente costruire applicazioni su Supabase.
In questo tutorial, imparerai come installare Supabase su un server Ubuntu 24.04. Eseguirai Supabase come contenitori con Docker, e proteggerai Supabase con autenticazione a password e token JWT. Infine, imparerai anche come configurare Nginx come reverse proxy per Supabase.
Prerequisiti
Per iniziare con questa guida, assicurati di avere quanto segue:
- Un server Ubuntu 24.04
- Un utente non root con privilegi di amministratore
- Un nome di dominio puntato all’indirizzo IP del server
Installazione di Docker Engine
Per distribuire Supabase sul tuo server, devi installare Docker Engine sulla tua macchina. Le applicazioni Supabase verranno eseguite come contenitore sul tuo server.
In questa sezione, installerai Docker Engine tramite il repository ufficiale di Docker.
Prima, esegui il comando qui sotto per aggiornare l’indice dei pacchetti di Ubuntu e installare pacchetti come ‘ ca-certificates ‘, ‘ curl ‘ e ‘ git ‘.
sudo apt update
sudo apt install -y ca-certificates curl git
Ora esegui il seguente comando per aggiungere la chiave GPG per il repository di Docker Engine.
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.ascAggiungi il repository di Docker Engine per il tuo server Ubuntu eseguendo il comando qui sotto.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Con la chiave GPG e il repository di Docker aggiunti, esegui il comando ‘ apt ‘ qui sotto per aggiornare l’indice dei pacchetti e installare Docker Engine. Con questo, installerai anche i plugin Docker Compose e buildx.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginInserisci ‘ Y ‘ per confermare l’installazione.

Aggiungere Utente al Gruppo Docker
In questa guida, eseguirai Supabase come utente non root, quindi assicurati che venga creato un utente dedicato. Poi, devi aggiungere il tuo utente al gruppo ‘docker’, che permetterà all’utente di eseguire contenitori.
Aggiungi il tuo utente al gruppo ‘ docker ‘ con il comando qui sotto. Questo permetterà al tuo utente di eseguire e gestire contenitori.
sudo usermod -aG sudo usernameAccedi al tuo utente con il comando ‘ su ‘ qui sotto.
su - usernameInfine, esegui il comando ‘ docker ‘ qui sotto per eseguire il contenitore ‘ hello-world ‘.
docker run hello-worldSe tutto va bene, vedrai il messaggio ‘ Hello World ‘ da Docker.

Scaricare e Installare Supabase
Ora che hai installato Docker, il passo successivo è scaricare Supabase ed eseguirlo come contenitore. In questa sezione, imparerai come far funzionare Supabase e, in seguito, come proteggerlo.
Scarica il codice sorgente ‘ supabase ‘ con il comando ‘ git ‘ qui sotto.
git clone --depth 1 https://github.com/supabase/supabaseSpostati nella directory ‘supabase/docker’ e copia il file ‘ .env.example ‘ in ‘ .env ‘. Questo file verrà utilizzato per configurare la tua installazione di Supabase.
cd supbase/docker
cp .env.example .envSuccessivamente, esegui il comando ‘ docker compose ‘ qui sotto per scaricare le immagini di Supabase dal repository Docker. Questo scaricherà più immagini per Supabase.
docker compose pullPuoi vedere il processo di download delle immagini Docker di Supabase qui sotto.

Una volta terminato il processo, esegui il seguente comando per avviare i contenitori di Supabase. Con l’opzione ‘ -d ‘, eseguirai i contenitori in background, quindi i log per i contenitori di Supabase non verranno mostrati.
docker compose up -d
Infine, esegui il comando ‘ docker compose ‘ qui sotto per controllare lo stato dei contenitori di Supabase.
docker compose psNell’output qui sotto, puoi vedere che i contenitori di Supabase come ‘ supabase-auth ‘, ‘ supabase-kong ‘, ‘ supabase-rest ‘ e ‘ supabase-studio ‘ sono in esecuzione.

Proteggere Supabase
Attualmente, Supabase è attivo e funzionante sul tuo sistema, ma senza una corretta password e autenticazione. Quindi, per ora, proteggerai l’installazione di Supabase cambiando le credenziali all’interno del file ‘.env’.
Prima di iniziare, generiamo le password per il server PostgreSQL e il dashboard di Supabase, e poi generiamo il segreto e il token JWT.
Esegui il comando qui sotto due volte per generare una password sicura per il dashboard di Supabase e il server PostgreSQL.
openssl rand -hex 16
Ora vai sul sito web di Supabase per generare due token JWT per Supabase. Assicurati di annotare quanto segue:
- JWT Secret
- Chiave per entrambi ANON_KEY e SERVICE_KEY
- Token JWT generati per entrambi

Ora che hai generato password e token per Supabase, applichiamo queste modifiche modificando il file ‘.env’.
Apri il file ‘ .env ‘ utilizzando l’editor ‘ vim ‘.
vim .envIncolla la tua password OpenSSL generata nell’opzione ‘ POSTGRES_PASSWORD ‘.
POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367Inserisci la tua chiave segreta JWT nell’opzione ‘ JWT_SECRET ‘.
JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUghSostituisci il valore ‘ ANON_KEY ‘ con il tuo token JWT generato per l’utente ‘ anon ‘.
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4Sostituisci il valore ‘ SERVICE_ROLE_KEY ‘ con il tuo token JWT generato per l’utente ‘ service_role ‘.
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MzYzNTU2MDAsCiAgImV4cCI6IDE4OTQxMjIwMDAKfQ.DOo1lqH76AR_jCx0N9QDZBEdrQ8T_JBQqc7CagD1mWMSe stai distribuendo su un server pubblico, inserisci i dettagli del tuo server SMTP.
Email auth
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=false
[email protected]
SMTP_HOST=smtp.server.address
SMTP_PORT=2500
SMTP_USER=username
SMTP_PASS=password
SMTP_SENDER_NAME=sender_name
ENABLE_ANONYMOUS_USERS=falseInserisci il tuo nome utente e password nelle opzioni ‘ DASHBOARD_USERNAME ‘ e ‘ DASHBOARD_PASSWORD ‘. Questo utente verrà utilizzato per accedere a Supabase.
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=91521851a4e1375145959eecddfaff45Inserisci il tuo nome di dominio nelle opzioni ‘ SITE_URL ‘, ‘ API_EXTERNAL_URL ‘ e ‘ SUPABASE_PUBLIC_URL’. In questo esempio, utilizzeremo un dominio ‘https://supabase.howtoforge.local’.
SITE_URL=https://supabase.howtoforge.local
API_EXTERNAL_URL=https://supabase.howtoforge.local
SUPABASE_PUBLIC_URL=https://supabase.howtoforge.localSalva il file e esci dall’editor quando hai finito.
Ora esegui il comando ‘ docker ‘ qui sotto per fermare e rimuovere i contenitori di Supabase.
docker compose downE poi ricrea i contenitori per Supabase con il seguente comando.
docker compose up -dUna volta che tutto è in esecuzione, controlla ciascun servizio del contenitore utilizzando il comando qui sotto.
docker compose psPuoi vedere qui che ciascun contenitore per Supabase è in esecuzione.

Impostare Nginx come Reverse Proxy per Supabase
Ora che Supabase è protetto, installiamo il server web Nginx e configuriamolo come reverse proxy per Supabase. Assicurati di avere il tuo nome di dominio pronto e puntato all’indirizzo IP del server.
Installa Nginx con il seguente comando ‘ apt ‘.
sudo apt install nginx -yOra crea una nuova configurazione del blocco server Nginx ‘ /etc/nginx/sites-available/supabase ‘ con l’editor ‘vim’.
sudo vim /etc/nginx/sites-available/supabaseIncolla la seguente configurazione e assicurati di cambiare il nome di dominio all’interno dell’opzione ‘ server_name ‘.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream kong {
server localhost:8000;
}
server {
listen 80;
server_name supabase.howtoforge.local;
# REST
location ~ ^/rest/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# AUTH
location ~ ^/auth/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# REALTIME
location ~ ^/realtime/v1/(.*)$ {
proxy_redirect off;
proxy_pass http://kong;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
# STUDIO
location / {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
}
}Salva il file e esci dall’editor quando hai finito.
Successivamente, esegui il comando qui sotto per attivare il blocco server di Supabase e verificare la sintassi di Nginx. Se non ci sono errori, riceverai un output ‘ syntax is ok - test is successful ‘.
sudo ln -s /etc/nginx/sites-available/supabase /etc/nginx/sites-enabled/
sudo nginx -t
Ora esegui il comando ‘ systemctl ‘ qui sotto per riavviare il server web Nginx e applicare le tue modifiche. Con questo, la tua installazione di Supabase dovrebbe essere in esecuzione sotto il reverse Proxy Nginx.
sudo systemctl restart nginxInfine, esegui il comando ‘systemctl’ qui sotto per verificare il servizio Nginx e assicurarti che il servizio sia in esecuzione.
sudo systemctl status nginxSe tutto va bene, vedrai un output simile al seguente.

Proteggere Supabase con HTTPS
Dopo che Nginx è attivo e funzionante come reverse proxy, generiamo certificati SSL e abilitiamo HTTPS per proteggere l’installazione di Supabase.
Se sei in modalità di sviluppo, puoi saltare questa parte e lasciare Supabase senza HTTPS. Per la produzione, devi implementare HTTPS per proteggere il tuo server Supabase.
Installa Certbot e il plugin Nginx Certbot con il comando ‘ apt ‘ qui sotto. Inserisci ‘Y’ per confermare l’installazione.
sudo apt install certbot python3-certbot-nginxDopo che l’installazione è completata, esegui il comando ‘certbot’ qui sotto per generare certificati SSL per il tuo nome di dominio. Assicurati di cambiare il nome di dominio e l’indirizzo email all’interno del comando.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d supabase.howtoforge.localUna volta completato, i tuoi certificati SSL saranno disponibili nella directory ‘ /etc/letsencrypt/live/domain.com ‘ e Supabase sarà protetto automaticamente con HTTPS tramite il plugin Nginx Certbot.
Accedere a Supabase Studio
Per accedere a Supabase, apri il tuo browser web e visita https://supabase.howtoforge.local. Se la tua installazione ha avuto successo, ti verrà chiesto di inserire l’autenticazione di base con password.
Inserisci il nome utente e la password nelle opzioni ‘ DASHBOARD_USERNAME ‘ e ‘ DASHBOARD_PASSWORD ‘ e fai clic su ‘ Login ‘.

Se hai successo, vedrai il seguente Dashboard di Supabase.

Conclusione
Congratulazioni! Hai completato l’installazione di Supabase sul server Ubuntu 24.04 tramite Docker. Hai distribuito e protetto Supabase con l’autenticazione a password e il token JWT, e poi hai installato e configurato Nginx come reverse proxy. Infine, hai anche protetto Supabase con HTTPS tramite Certbot e Letsencrypt. Da qui, puoi ora provare a creare un nuovo database, inserire dati in Supabase e poi creare semplici applicazioni con il modulo Supabase per comunicare tramite REST API.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.