Pré-requisitos
Antes de começar, certifique-se de ter o seguinte instalado em seu sistema:
- Docker Engine (20.10.0 ou superior)
- Docker Compose (v2.0.0 ou superior)
- OpenSSL (para gerar certificados SSL)
Instalando o Docker
Para macOS:
- Baixe e instale o Docker Desktop do Docker Hub
- Siga o assistente de instalação
- Verifique a instalação:
docker --version
docker-compose --version
Para Linux (Ubuntu/Debian):
# Atualize o índice de pacotes
sudo apt-get update
# Instale os pré-requisitos
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Adicione a chave GPG oficial do Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Configure o repositório estável
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Instale o Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Adicione seu usuário ao grupo docker
sudo usermod -aG docker $USER
Para Windows:
- Baixe e instale o Docker Desktop do Docker Hub
- Habilite o WSL 2 seguindo a documentação do Docker
- Siga o assistente de instalação
- Verifique a instalação no PowerShell:
docker --version
docker-compose --version
Passo 1: Criar Diretório do Projeto
Crie um novo diretório para sua implantação do CaseBender e navegue até ele:
mkdir casebender-deployment
cd casebender-deployment
Passo 2: Configurar Variáveis de Ambiente
Crie um arquivo .env
com o seguinte conteúdo:
# Autenticação
AUTH_SECRET="B7OawnWf6+LwB/9yXbxbk4ppZ1khydqj4qc9k9g3nnE="
AUTH_SALT="B7OawnW"
NEXTAUTH_URL=https://local.casebender.com
NEXTAPP_URL=https://local.casebender.com
# Configuração do Liveblocks
LIVEBLOCKS_SECRET_KEY=sk_dev_HaIczPV4gPit5_gx7YRsNXLGJNzBE5wQ8z8I1H8ft3ZPZHVrfH2ryJJ586ezHYla
# Configuração do Banco de Dados
POSTGRES_PRISMA_URL="postgresql://superadmin:88AlwaysTimeToWin88@db:5432/casebender?pgbouncer=true&connect_timeout=15"
POSTGRES_URL="postgresql://superadmin:88AlwaysTimeToWin88@db:5432/casebender?pgbouncer=true&connect_timeout=15"
POSTGRES_URL_NON_POOLING="postgresql://superadmin:88AlwaysTimeToWin88@db:5432/casebender"
# Configuração do Redis
REDIS_URL="redis://redis:6379"
Passo 3: Gerar Certificados SSL
Para desenvolvimento local, gere certificados SSL autoassinados:
# Gerar certificado SSL e chave
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout local-casebender.key \
-out local-casebender.crt \
-subj "/CN=local.casebender.com/O=CaseBender/C=US"
# Verificar o certificado
openssl x509 -in local-casebender.crt -text -noout
Passo 4: Configurar Nginx
Crie nginx.conf
com o seguinte conteúdo:
events {
worker_connections 1024;
}
http {
server {
listen 443 ssl http2;
server_name local.casebender.com;
ssl_certificate /etc/nginx/certs/local-casebender.crt;
ssl_certificate_key /etc/nginx/certs/local-casebender.key;
location / {
proxy_pass http://app:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# Servidor HTTP opcional para redirecionar para HTTPS
server {
listen 80;
server_name local.casebender.com;
# Redirecionar todo o tráfego HTTP para HTTPS
return 301 https://$host$request_uri;
}
}
Passo 5: Criar Configuração do Docker Compose
Crie docker-compose.yml
com o seguinte conteúdo:
services:
app:
ports:
- "3000:3000"
environment:
- AUTH_SECRET=${AUTH_SECRET}
- AUTH_SALT=${AUTH_SALT}
- NEXTAUTH_URL=${NEXTAUTH_URL:-https://local.casebender.com}
- NEXTAPP_URL=${NEXTAPP_URL:-https://local.casebender.com}
- LIVEBLOCKS_SECRET_KEY=${LIVEBLOCKS_SECRET_KEY}
- POSTGRES_PRISMA_URL=${POSTGRES_PRISMA_URL}
- POSTGRES_URL=${POSTGRES_URL}
- POSTGRES_URL_NON_POOLING=${POSTGRES_URL_NON_POOLING}
image: casebender/casebender:latest
depends_on:
- db
restart: unless-stopped
db:
image: postgres
environment:
POSTGRES_USER: superadmin
POSTGRES_PASSWORD: 88AlwaysTimeToWin88
POSTGRES_DB: casebender
ports:
- "5433:5432"
volumes:
- pgdata:/var/lib/postgresql/data
workflow-processor:
image: casebender/workflow-processor:latest
environment:
- POSTGRES_PRISMA_URL=${POSTGRES_PRISMA_URL}
- POSTGRES_URL=${POSTGRES_URL}
- POSTGRES_URL_NON_POOLING=${POSTGRES_URL_NON_POOLING}
- REDIS_URL=${REDIS_URL}
depends_on:
- db
- redis
ports:
- "3001:3001"
misp-processor:
image: casebender/misp-processor:latest
environment:
- POSTGRES_PRISMA_URL=${POSTGRES_PRISMA_URL}
- POSTGRES_URL=${POSTGRES_URL}
- POSTGRES_URL_NON_POOLING=${POSTGRES_URL_NON_POOLING}
- REDIS_URL=${REDIS_URL}
depends_on:
- db
- redis
ports:
- "3002:3002"
redis:
image: redis:7.2-alpine
command: redis-server --protected-mode no
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
minio:
image: quay.io/minio/minio
mem_limit: 512m
command: ["minio", "server", "/data", "--console-address", ":9090"]
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
ports:
- "9090:9090"
- "9000:9000"
volumes:
- "miniodata:/data"
nginx:
image: nginx:latest
ports:
- "443:443"
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./local-casebender.crt:/etc/nginx/certs/local-casebender.crt:ro
- ./local-casebender.key:/etc/nginx/certs/local-casebender.key:ro
depends_on:
- app
volumes:
miniodata:
pgdata:
redis_data:
Passo 6: Configurar DNS Local
Adicione a seguinte entrada ao seu arquivo hosts:
Para macOS e Linux:
sudo echo "127.0.0.1 local.casebender.com" >> /etc/hosts
Para Windows:
Adicione a seguinte linha ao arquivo C:\Windows\System32\drivers\etc\hosts
:
127.0.0.1 local.casebender.com
Passo 7: Iniciar a Aplicação
- Baixe as imagens necessárias:
- Inicie todos os serviços:
- Monitore os logs:
- Acesse a aplicação em
https://local.casebender.com
Credenciais de Login Padrão
Após implantar o CaseBender, você pode fazer login com as seguintes credenciais padrão:
Usuário: admin@casebender.app
Senha: secret1234
Por razões de segurança, recomendamos fortemente que você altere essas credenciais padrão imediatamente após o seu primeiro login.
Solução de Problemas
Problemas Comuns
-
Avisos de Certificado:
- O navegador mostrará um aviso de segurança porque estamos usando um certificado autoassinado
- Clique em “Avançado” e prossiga para o site
- Para fins de desenvolvimento, isso é esperado e seguro
-
Conflitos de Porta:
- Certifique-se de que as portas 80, 443, 3000-3002, 5433, 6379, 9000 e 9090 não estão em uso
- Se necessário, modifique os mapeamentos de porta no docker-compose.yml
-
Conexão com o Banco de Dados:
- Verifique os logs do PostgreSQL:
docker-compose logs db
- Verifique as credenciais do banco de dados no arquivo .env
- Certifique-se de que o banco de dados está em execução:
docker-compose ps db
-
Dependências de Serviço:
- Se os serviços falharem ao iniciar, verifique suas dependências:
docker-compose ps
docker-compose logs [nome_do_serviço]
Verificando Logs
Visualize logs para serviços específicos:
# Todos os serviços
docker-compose logs
# Serviço específico
docker-compose logs [nome_do_serviço]
# Acompanhar logs
docker-compose logs -f [nome_do_serviço]
Gerenciamento de Serviços
# Reiniciar um serviço específico
docker-compose restart [nome_do_serviço]
# Parar todos os serviços
docker-compose down
# Remover volumes (excluirá todos os dados)
docker-compose down -v
Próximos Passos
Agora que você tem o CaseBender funcionando localmente, você pode querer: