Instalação Supabase · 8 min read · Sep 13, 2025
Como Instalar Supabase (Alternativa ao Firebase) com Docker no Ubuntu 24.04

Supabase é uma alternativa ao Firebase de código aberto construída sobre o banco de dados PostgreSQL, o banco de dados relacional mais confiável do mundo. Ele permite que os desenvolvedores construam aplicações web, móveis e de IA completas. O Supabase oferece banco de dados PostgreSQL, autenticação, APIs, armazenamento, assinaturas em tempo real e embeddings vetoriais. Com a configuração simples e a interface do usuário, os desenvolvedores podem rapidamente construir aplicações sobre o Supabase.
Neste tutorial, você aprenderá como instalar o Supabase no servidor Ubuntu 24.04. Você estará executando o Supabase como contêineres com Docker e garantindo o Supabase com autenticação por senha e tokens JWT. Por fim, você também aprenderá como configurar o Nginx como um proxy reverso para o Supabase.
Pré-requisitos
Para começar este guia, certifique-se de que você tem o seguinte:
- Um servidor Ubuntu 24.04
- Um usuário não-root com privilégios de administrador
- Um nome de domínio apontado para o endereço IP do servidor
Instalando o Docker Engine
Para implantar o Supabase em seu servidor, você precisa instalar o Docker Engine em sua máquina. As aplicações do Supabase serão executadas como um contêiner em seu servidor.
Nesta seção, você instalará o Docker Engine através do repositório oficial do Docker.
Primeiro, execute o comando abaixo para atualizar o índice de pacotes do Ubuntu e instalar pacotes como ‘ ca-certificates ‘, ‘ curl ‘ e ‘ git ‘.
sudo apt update
sudo apt install -y ca-certificates curl git
Agora execute o seguinte comando para adicionar a chave GPG para o repositório do 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.ascAdicione o repositório do Docker Engine para o seu servidor Ubuntu executando o comando abaixo.
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
Com a chave GPG do Docker e o repositório adicionados, execute o comando ‘ apt ‘ abaixo para atualizar seu índice de pacotes e instalar o Docker Engine. Com isso, você também instalará os plugins Docker Compose e buildx.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDigite ‘ Y ‘ para confirmar a instalação.

Adicionando Usuário ao Grupo Docker
Neste guia, você estará executando o Supabase como um usuário não-root, então certifique-se de que um usuário dedicado seja criado. Em seguida, você precisa adicionar seu usuário ao grupo ‘docker’, o que permitirá que o usuário execute contêineres.
Adicione seu usuário ao grupo ‘ docker ‘ com o comando abaixo. Isso permitirá que seu usuário execute e rode contêineres.
sudo usermod -aG sudo usernameFaça login no seu usuário com o comando ‘ su ‘ abaixo.
su - usernamePor fim, execute o comando ‘ docker ‘ abaixo para rodar o contêiner ‘ hello-world ‘.
docker run hello-worldSe tudo correr bem, você verá a mensagem ‘ Hello World ‘ do Docker.

Baixando e Instalando o Supabase
Agora que você instalou o Docker, o próximo passo é baixar o Supabase e executá-lo como um contêiner. Nesta seção, você aprenderá como colocar o Supabase em funcionamento e, mais tarde, aprenderá como protegê-lo.
Baixe o código-fonte do ‘ supabase ‘ com o comando ‘ git ‘ abaixo.
git clone --depth 1 https://github.com/supabase/supabaseMova para o diretório ‘supabase/docker’ e copie o arquivo ‘ .env.example ‘ para o ‘. env ‘. Este arquivo será usado para configurar sua instalação do Supabase.
cd supbase/docker
cp .env.example .envEm seguida, execute o comando ‘ docker compose ‘ abaixo para baixar as imagens do Supabase do repositório Docker. Isso baixará várias imagens para o Supabase.
docker compose pullVocê pode ver o processo de download das imagens Docker do Supabase abaixo.

Uma vez que o processo esteja concluído, execute o seguinte comando para iniciar os contêineres do Supabase. Com a opção ‘ -d ‘, você executará os contêineres em segundo plano, então os logs dos contêineres do Supabase não serão mostrados.
docker compose up -d
Por fim, execute o comando ‘ docker compose ‘ abaixo para verificar o status dos contêineres do Supabase.
docker compose psNa saída abaixo, você pode ver que os contêineres do Supabase, como ‘ supabase-auth ‘, ‘ supabase-kong ‘, ‘ supabase-rest ‘ e ‘ supabase-studio ‘ estão em execução.

Protegendo o Supabase
Atualmente, o Supabase está em funcionamento em seu sistema, mas sem a devida senha e autenticação. Portanto, por enquanto, você protegerá a instalação do Supabase alterando as credenciais dentro do arquivo ‘.env’.
Antes de começar, vamos gerar senhas para o servidor PostgreSQL e o painel do Supabase, e então gerar o segredo e token JWT.
Execute o comando abaixo duas vezes para gerar uma senha segura para o painel do Supabase e o servidor PostgreSQL.
openssl rand -hex 16
Agora vá para o site do Supabase para gerar dois tokens JWT para o Supabase. Certifique-se de anotar o seguinte:
- Segredo JWT
- Chave para ambos ANON_KEY e SERVICE_KEY
- Tokens JWT gerados para ambos

Agora que você gerou senhas e tokens para o Supabase, vamos aplicá-los editando o arquivo ‘.env’.
Abra o arquivo ‘ .env ‘ usando o editor ‘ vim ‘.
vim .envCole sua senha gerada pelo OpenSSL na opção ‘ POSTGRES_PASSWORD ‘.
POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367Digite sua chave secreta JWT na opção ‘ JWT_SECRET ‘.
JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUghSubstitua o valor de ‘ ANON_KEY ‘ pelo seu token JWT gerado para o usuário ‘ anon ‘.
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4Substitua o valor de ‘ SERVICE_ROLE_KEY ‘ pelo seu token JWT gerado para o usuário ‘ service_role ‘.
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MzYzNTU2MDAsCiAgImV4cCI6IDE4OTQxMjIwMDAKfQ.DOo1lqH76AR_jCx0N9QDZBEdrQ8T_JBQqc7CagD1mWMSe você estiver implantando em um servidor público, insira os detalhes do seu servidor 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=falseDigite seu nome de usuário e senha nas opções ‘ DASHBOARD_USERNAME ‘ e ‘ DASHBOARD_PASSWORD ‘. Este usuário será usado para fazer login no Supabase.
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=91521851a4e1375145959eecddfaff45Digite seu nome de domínio nas opções ‘ SITE_URL ‘, ‘ API_EXTERNAL_URL ‘ e ‘ SUPABASE_PUBLIC_URL’. Neste exemplo, usaremos um domínio ‘https://supabase.howtoforge.local’.
SITE_URL=https://supabase.howtoforge.local
API_EXTERNAL_URL=https://supabase.howtoforge.local
SUPABASE_PUBLIC_URL=https://supabase.howtoforge.localSalve o arquivo e saia do editor quando terminar.
Agora execute o comando ‘ docker ‘ abaixo para parar e remover os contêineres do Supabase.
docker compose downE então recrie os contêineres para o Supabase com o seguinte comando.
docker compose up -dUma vez que tudo esteja em funcionamento, verifique cada serviço de contêiner usando o comando abaixo.
docker compose psVocê pode ver abaixo que cada contêiner do Supabase está em execução.

Configurando o Nginx como um Proxy Reverso para o Supabase
Agora que o Supabase está protegido, vamos instalar o servidor web Nginx e configurá-lo como um proxy reverso para o Supabase. Certifique-se de que você tenha seu nome de domínio pronto e apontado para o endereço IP do servidor.
Instale o Nginx com o seguinte comando ‘ apt ‘.
sudo apt install nginx -yAgora crie uma nova configuração de bloco de servidor Nginx ‘ /etc/nginx/sites-available/supabase ‘ com o editor ‘vim’.
sudo vim /etc/nginx/sites-available/supabaseCole a seguinte configuração e certifique-se de alterar o nome do domínio na opção ‘ 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;
}
}Salve o arquivo e saia do editor quando terminar.
Em seguida, execute o comando abaixo para ativar o bloco de servidor do Supabase e verificar sua sintaxe do Nginx. Se não houver erro, você receberá uma saída ‘ syntax is ok - test is successful ‘.
sudo ln -s /etc/nginx/sites-available/supabase /etc/nginx/sites-enabled/
sudo nginx -t
Agora execute o comando ‘ systemctl ‘ abaixo para reiniciar o servidor web Nginx e aplicar suas alterações. Com isso, sua instalação do Supabase deve estar rodando sob o Proxy Reverso do Nginx.
sudo systemctl restart nginxPor fim, execute o comando ‘systemctl’ abaixo para verificar o serviço Nginx e garantir que o serviço esteja em execução.
sudo systemctl status nginxSe tudo correr bem, você verá uma saída como a seguinte.

Protegendo o Supabase com HTTPS
Depois que o Nginx estiver em funcionamento como um proxy reverso, vamos gerar certificados SSL e habilitar HTTPS para proteger a instalação do Supabase.
Se você estiver no modo de desenvolvimento, pode pular esta parte e deixar o Supabase sem HTTPS. Para produção, você deve implementar HTTPS para proteger seu servidor Supabase.
Instale o Certbot e o Plugin Certbot do Nginx com o comando ‘ apt ‘ abaixo. Digite ‘Y’ para confirmar a instalação.
sudo apt install certbot python3-certbot-nginxApós a conclusão da instalação, execute o comando ‘certbot’ abaixo para gerar certificados SSL para seu nome de domínio. Certifique-se de alterar o nome do domínio e o endereço de e-mail dentro do comando.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d supabase.howtoforge.localUma vez concluído, seus certificados SSL estarão disponíveis no diretório ‘ /etc/letsencrypt/live/domain.com ‘ e o Supabase estará protegido com HTTPS automaticamente através do plugin Certbot do Nginx.
Acessando o Supabase Studio
Para acessar o Supabase, abra seu navegador e visite https://supabase.howtoforge.local. Se sua instalação for bem-sucedida, você será solicitado a autenticação básica por senha.
Digite o nome de usuário e a senha nas opções ‘ DASHBOARD_USERNAME ‘ e ‘ DASHBOARD_PASSWORD ‘ e clique em ‘ Login ‘.

Se for bem-sucedido, você verá o seguinte Painel do Supabase.

Conclusão
Parabéns! Você concluiu a instalação do Supabase no servidor Ubuntu 24.04 via Docker. Você implantou e protegeu o Supabase com a autenticação por senha do token JWT, e então instalou e configurou o Nginx como um proxy reverso. Por fim, você também protegeu o Supabase com HTTPS através do Certbot e Letsencrypt. A partir daqui, você pode agora tentar criar um novo banco de dados, inserir dados no Supabase e, em seguida, criar aplicações simples com o módulo Supabase para se comunicar via API REST.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.