Entrar ou criar conta

Laboratório: Metabase em produção com PostgreSQL via Docker Compose

Você terá um ambiente Metabase funcional, conectado a um banco PostgreSQL, acessível via navegador, pronto para criar dashboards. O laboratório leva cerca de 2 horas.

Implantação de BI corporativo com Metabase
Ligado ao treinamento Implantação de BI corporativo com Metabase

Roteiro para estudo em ambiente de laboratório ou de teste. Execute apenas em equipamentos, redes e contas que você tenha autorização para usar, com backup e homologação próprios. Comandos podem causar indisponibilidade ou perda de dados. Software e marcas citados pertencem aos seus titulares. Termos de Uso.

ULC-LAB-BI-0002 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
4
Versões da documentação consultada
Metabase a versão estável atual · PostgreSQL a versão estável atual · Docker a versão estável atual · Docker Compose a versão estável atual
Objetivo

Este laboratório ensina como implantar o Metabase open source em uma VM Linux, usando Docker Compose para orquestrar o Metabase e um banco PostgreSQL dedicado. Você aprenderá a configurar volumes persistentes, variáveis de ambiente seguras, criar o usuário inicial, conectar o Metabase ao banco e validar o acesso via web. O objetivo é entender o fluxo de implantação e os pontos críticos de operação segura.

Topologia

Uma VM Linux (exemplo: 192.168.56.10) roda dois containers: um com PostgreSQL, outro com Metabase. O Metabase conecta-se ao PostgreSQL pela rede interna do Docker. O acesso ao Metabase é feito via navegador em outro dispositivo na mesma rede, usando a porta 3000.

┌────────────┐        ┌─────────────┐
│  Usuário   │ <───> │   Metabase  │
│(192.168.56.1)│      │(192.168.56.10:3000)│
└────────────┘        │   │
                      │   │
                ┌─────▼─────┐
                │ PostgreSQL │
                │(Docker net)│
                └────────────┘

Equipamentos e software

ItemRequisito, licença ou versão
VM Linux (Ubuntu 22.04 ou Debian 12)2 vCPU, 4GB RAM, 10GB disco, acesso root, porta 3000 liberada
MetabaseAGPL v3 · a versão estável atual
PostgreSQLPostgreSQL License · a versão estável atual
DockerApache 2.0 · a versão estável atual
Docker ComposeApache 2.0 · a versão estável atual

Roteiro

  1. Preparar a VM Linux

    Atualize os pacotes da VM para garantir segurança e compatibilidade.

    sudo apt update && sudo apt upgrade -y

    O que você deve ver: Sistema atualizado sem erros.

  2. Instalar Docker e Docker Compose

    O Metabase e o PostgreSQL serão executados em containers. Instale Docker e Docker Compose para facilitar o gerenciamento.

    sudo apt install docker.io docker-compose -y

    O que você deve ver: Comando 'docker --version' e 'docker-compose --version' retornam versões instaladas.

  3. Criar diretórios de persistência

    Crie pastas para persistir dados do PostgreSQL e do Metabase. Isso evita perda de dados ao reiniciar containers.

    mkdir -p ~/metabase_lab/postgres_data
    mkdir -p ~/metabase_lab/metabase_data

    O que você deve ver: Diretórios criados em ~/metabase_lab.

  4. Criar arquivo docker-compose.yml

    Monte um arquivo docker-compose.yml para orquestrar os serviços Metabase e PostgreSQL, com volumes persistentes e variáveis de ambiente seguras.

    cat > ~/metabase_lab/docker-compose.yml <<EOF
    version: '3.8'
    services:
      db:
        image: postgres:15
        container_name: metabase-postgres
        restart: unless-stopped
        environment:
          POSTGRES_DB: metabase
          POSTGRES_USER: metabase
          POSTGRES_PASSWORD: m3t4b453_pwd
        volumes:
          - ./postgres_data:/var/lib/postgresql/data
        networks:
          - metanet
      metabase:
        image: metabase/metabase:latest
        container_name: metabase-app
        restart: unless-stopped
        environment:
          MB_DB_TYPE: postgres
          MB_DB_DBNAME: metabase
          MB_DB_PORT: 5432
          MB_DB_USER: metabase
          MB_DB_PASS: m3t4b453_pwd
          MB_DB_HOST: db
        ports:
          - 3000:3000
        volumes:
          - ./metabase_data:/metabase-data
        networks:
          - metanet
    networks:
      metanet:
        driver: bridge
    EOF

    O que você deve ver: Arquivo docker-compose.yml criado em ~/metabase_lab.

  5. Iniciar os containers

    Suba os containers em modo destacado. O Metabase irá inicializar e conectar ao PostgreSQL automaticamente.

    cd ~/metabase_lab
    docker-compose up -d

    O que você deve ver: Containers 'metabase-postgres' e 'metabase-app' em execução.

  6. Verificar logs de inicialização

    Acompanhe os logs do Metabase para garantir que subiu sem erros e conectou ao banco.

    docker logs -f metabase-app

    O que você deve ver: Mensagens de inicialização do Metabase e confirmação de conexão ao PostgreSQL.

  7. Acessar a interface web do Metabase

    Abra o navegador e acesse http://<IP-da-VM>:3000 para iniciar o setup.

    O que você deve ver: Tela de configuração inicial do Metabase.

  8. Configurar usuário administrador

    Crie o usuário admin do Metabase. Isso define quem gerencia o ambiente.

    O que você deve ver: Usuário criado e acesso ao painel principal do Metabase.

  9. Conectar uma base de dados de exemplo

    Adicione uma fonte de dados (pode ser o próprio PostgreSQL criado). Isso permite criar perguntas e dashboards.

    O que você deve ver: Base de dados conectada e disponível no Metabase.

  10. Criar uma pergunta simples

    No Metabase, crie uma pergunta (query) simples para validar a conexão e visualizar dados.

    O que você deve ver: Resultado da consulta exibido na interface.

  11. Criar um dashboard

    Monte um dashboard básico adicionando a pergunta criada. Isso valida a funcionalidade de BI.

    O que você deve ver: Dashboard criado e visualizável.

  12. Testar persistência dos dados

    Reinicie os containers e verifique se as configurações e dashboards permanecem.

    docker-compose down
    docker-compose up -d

    O que você deve ver: Ambiente volta ao ar com dados preservados.

Como saber que funcionou

TesteComandoCritério
Acessar http://<IP-da-VM>:3000 de outro dispositivo na redeTela de login do Metabase aparece
Executar 'docker ps' na VMdocker psContainers 'metabase-app' e 'metabase-postgres' em estado 'Up'
Criar e visualizar uma pergunta no MetabaseResultado da consulta exibido sem erro
Reiniciar containers e acessar novamentedocker-compose down && docker-compose up -dDashboards e configurações permanecem após reinício

Troubleshooting

SintomaCausa provávelCorreção
Acesso negado ao Metabase na porta 3000Firewall bloqueando a portaLiberar porta 3000/tcp no firewall da VM
Erro de conexão ao banco no log do MetabaseVariáveis de ambiente do banco incorretasVerificar usuário, senha e nome do serviço no docker-compose.yml
Dados e dashboards somem após reinícioVolumes não persistentesConferir se os volumes estão mapeados corretamente no docker-compose.yml
Containers não sobemPorta 5432 ou 3000 já em usoParar serviços conflitantes ou alterar mapeamento de portas

Segurança e hardening

  • Altere as senhas padrão do PostgreSQL e do Metabase.
  • Não exponha a porta 3000 para a internet sem proxy reverso e autenticação forte.
  • Restrinja o acesso aos volumes de dados.
  • Mantenha Docker e containers sempre atualizados.
  • Consulte a documentação do Metabase para variáveis de ambiente sensíveis.

Checklist final

Referências

  1. Documentação oficial do Metabase: Deploy with Docker · Metabase (metabase.com)
  2. Documentação oficial do PostgreSQL · PostgreSQL Global Development Group (postgresql.org)
  3. Documentação oficial do Docker Compose · Docker, Inc. (docs.docker.com)
  4. Repositório oficial do Metabase no GitHub · GitHub (repositório oficial do projeto) (github.com)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
4 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.