Laboratório em bancada
Laboratório: Instalação e Operação Básica do Apache Superset com PostgreSQL e Redis via Docker Compose
Você terá um ambiente completo de BI rodando Apache Superset, PostgreSQL e Redis em containers Docker, pronto para criar dashboards. Tempo estimado: 120 minutos.

- Duração estimada
- 120 min
- Passos
- 13
- Validações
- 5
O objetivo é montar, do zero, um ambiente de BI corporativo local usando apenas software livre. Você vai instalar Apache Superset, PostgreSQL (como banco de dados de exemplo) e Redis (para cache e filas), todos orquestrados por Docker Compose. Ao final, será capaz de acessar o Superset, conectar ao PostgreSQL, criar um dataset, montar um gráfico e um dashboard simples.
Topologia
Três containers: Superset (frontend/backend), PostgreSQL (banco de dados de exemplo) e Redis (cache/filas). Superset conecta-se ao PostgreSQL para buscar dados e ao Redis para cache. Todos na mesma rede Docker bridge, acessíveis apenas localmente. Superset exposto na porta 8088 para acesso via navegador.
+----------------+
| Navegador |
| (localhost) |
+-------+--------+
|
| http://127.0.0.1:8088
+-------v--------+
| Superset |
+---+-------+----+
| |
| |
+-------v-+ +---v------+
| Postgres| | Redis |
+---------+ +----------+Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| PC ou VM | 2 vCPU, 4GB RAM, 10GB disco, portas 8088, 5432, 6379 livres |
| Apache Superset | Apache 2.0 · 3.0.0 |
| PostgreSQL | PostgreSQL License · 15 |
| Redis | BSD 3-Clause · 7 |
| Docker | Apache 2.0 · a versão estável atual |
| Docker Compose | Apache 2.0 · a versão estável atual |
Roteiro
- Preparar o ambiente
Garanta que Docker e Docker Compose estão instalados. Sem eles, não há isolamento, nem portabilidade. Consulte a documentação oficial do Docker para instruções de instalação.
docker --version docker compose versionO que você deve ver: Versões do Docker e Docker Compose exibidas no terminal.
- Criar diretório do laboratório
Organize os arquivos em um diretório dedicado para evitar conflitos e facilitar o gerenciamento.
mkdir superset-lab && cd superset-labO que você deve ver: Diretório criado e acessado.
- Criar arquivo docker-compose.yml
Defina os serviços (Superset, PostgreSQL, Redis) e suas dependências. Isso automatiza o provisionamento.
nano docker-compose.ymlO que você deve ver: Arquivo aberto para edição.
- Configurar docker-compose.yml
Copie o conteúdo abaixo. Ele define as imagens, volumes, variáveis e portas necessárias.
version: "3.7" services: postgres: image: postgres:15 environment: POSTGRES_DB: superset POSTGRES_USER: superset POSTGRES_PASSWORD: superset ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data redis: image: redis:7 ports: - "6379:6379" superset: image: apache/superset:3.0.0 environment: SUPERSET_SECRET_KEY: "superset_lab_key" DATABASE_URL: postgresql+psycopg2://superset:superset@postgres:5432/superset REDIS_URL: redis://redis:6379/0 ports: - "8088:8088" depends_on: - postgres - redis volumes: - superset_home:/app/superset_home volumes: pgdata: superset_home:O que você deve ver: Arquivo salvo com a configuração do ambiente.
- Subir os containers
Inicie todos os serviços definidos. Isso cria um ambiente isolado rapidamente.
docker compose up -dO que você deve ver: Containers iniciados em background. 'docker compose ps' mostra todos em execução.
- Inicializar o banco de dados do Superset
Superset precisa de tabelas próprias. Execute a migração inicial.
docker compose exec superset superset db upgradeO que você deve ver: Mensagens de migração bem-sucedida no terminal.
- Criar usuário administrador do Superset
Sem um admin, não há acesso inicial. Crie o usuário para login.
docker compose exec superset superset fab create-admin # Siga as instruções para definir usuário, email e senha.O que você deve ver: Usuário criado com sucesso.
- Inicializar dados de exemplo do Superset
Carregue datasets e dashboards de exemplo para facilitar testes.
docker compose exec superset superset load_examplesO que você deve ver: Mensagens indicando carregamento de exemplos.
- Iniciar o servidor do Superset
Garanta que o servidor web está rodando para acesso via navegador.
docker compose exec superset superset run -p 8088 --with-threads --reload --debuggerO que você deve ver: Mensagens de inicialização do servidor. Porta 8088 aberta.
- Acessar a interface web do Superset
Abra o navegador em http://localhost:8088. Isso valida o acesso ao frontend.
O que você deve ver: Tela de login do Superset exibida.
- Conectar ao banco de dados PostgreSQL de exemplo
No Superset, adicione uma nova conexão de banco de dados apontando para o PostgreSQL. Isso permite explorar dados reais.
No menu: Data > Databases > + Database String de conexão: postgresql+psycopg2://superset:superset@postgres:5432/supersetO que você deve ver: Conexão criada e listada na interface.
- Criar um dataset e um gráfico simples
Escolha uma tabela de exemplo, crie um dataset e um gráfico (chart) para validar a integração.
No menu: Data > Datasets > + Dataset Escolha a conexão, selecione uma tabela de exemplo, salve. Em Charts, crie um gráfico usando o dataset.O que você deve ver: Gráfico exibido na tela.
- Montar um dashboard básico
Adicione o gráfico criado a um novo dashboard. Isso fecha o ciclo de BI.
No menu: Dashboards > + Dashboard Adicione o gráfico, salve.O que você deve ver: Dashboard com gráfico visível.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Verificar containers em execução | docker compose ps | Todos os serviços (superset, postgres, redis) com status 'Up'. |
| Acessar Superset via navegador | http://localhost:8088 | Tela de login do Superset aparece. |
| Testar conexão com PostgreSQL | No Superset: Data > Databases > Test Connection | Mensagem de sucesso na conexão. |
| Visualizar gráfico criado | Gráfico renderizado corretamente na interface. | |
| Visualizar dashboard | Dashboard exibe o gráfico sem erros. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Erro de conexão ao PostgreSQL | Banco não inicializado ou variáveis incorretas | Verifique variáveis POSTGRES_USER, POSTGRES_PASSWORD e reinicie os containers. |
| Superset não abre na porta 8088 | Porta ocupada ou container não iniciou | Libere a porta ou reinicie o serviço superset. |
| Erro ao criar usuário admin | Banco do Superset não migrado | Execute novamente 'superset db upgrade' antes de criar o usuário. |
| Gráficos não aparecem ou erro de cache | Redis não acessível pelo Superset | Confirme se o serviço Redis está rodando e variável REDIS_URL está correta. |
Segurança e hardening
- Altere a variável SUPERSET_SECRET_KEY antes de usar em produção.
- Não exponha portas do PostgreSQL e Redis para fora do host sem firewall.
- Use senhas fortes para os serviços, mesmo em ambiente de laboratório.
- Remova dados de exemplo antes de liberar o ambiente para usuários reais.
- Consulte a documentação do Superset para práticas de hardening adicionais.
