Guia completo para executar a aplicação VITAIA localmente usando Docker.
Antes de começar, certifique-se de ter instalado:
- Docker (versão 20.10 ou superior)
- Docker Compose (versão 2.0 ou superior)
- Geralmente já vem com Docker Desktop
- Git (para clonar o repositório)
git clone <url-do-repositorio>
cd vitaiaCopie o arquivo de exemplo e edite conforme necessário:
cp .env.example .envEdite o arquivo .env e configure:
- 🤖 OpenAI (Opcional): Configure se for usar recursos de IA
- 🗄️ Database: Configuração automática pelo Docker
Para desenvolvimento local, os valores padrão já funcionam!
- A aplicação roda sem sistema de autenticação
- Todos os dados são associados a um usuário padrão (ID 1)
- Ideal para desenvolvimento e demonstrações
- Não há necessidade de configurar OAuth ou JWT
docker-compose up -dEste comando irá:
- 📦 Baixar as imagens necessárias (PostgreSQL, Node.js)
- 🗄️ Criar o banco de dados PostgreSQL
- 🏗️ Construir a aplicação VITAIA
- 🚀 Iniciar os serviços
Aguarde alguns minutos na primeira execução (Docker precisa baixar as imagens).
Após os containers subirem, execute:
# Entrar no container da aplicação
docker exec -it vitaia-app sh
# Dentro do container, executar migrations
cd /app
npm run db:push
# Sair do container
exitAbra o navegador e acesse:
http://localhost:5000
✨ Pronto! A VITAIA está rodando localmente!
# Logs de todos os serviços
docker-compose logs -f
# Logs apenas da aplicação
docker-compose logs -f app
# Logs apenas do banco de dados
docker-compose logs -f postgresdocker-compose downdocker-compose down -vdocker-compose restartdocker-compose up -d --builddocker exec -it vitaia-app shdocker exec -it vitaia-postgres psql -U vitaia -d vitaia_dbA aplicação roda com um usuário não-root para segurança:
- Usuário:
vitaia - UID: 1001
- GID: 1001
Este usuário é criado automaticamente no Dockerfile e possui permissões apenas para:
- Ler arquivos da aplicação
- Escrever logs
- Conectar ao banco de dados
Credenciais padrão (desenvolvimento):
- Host:
localhost(oupostgresdentro do Docker) - Port:
5432 - Database:
vitaia_db - User:
vitaia - Password:
vitaia_dev_password
Se preferir rodar sem Docker (desenvolvimento):
npm install
# ou
pnpm installInstale PostgreSQL e crie o banco:
CREATE DATABASE vitaia_db;
CREATE USER vitaia WITH PASSWORD 'vitaia_dev_password';
GRANT ALL PRIVILEGES ON DATABASE vitaia_db TO vitaia;cp .env.example .env
# Edite DATABASE_URL para apontar para seu PostgreSQL localnpm run db:pushnpm run devAcesse: http://localhost:5000
# Encontrar processo usando a porta
lsof -i :5000
# Matar o processo (substitua <PID>)
kill -9 <PID>
# Ou altere a porta no docker-compose.yml
ports:
- "3000:5000" # Muda para porta 3000 no host# Verificar se o PostgreSQL está rodando
docker ps | grep postgres
# Verificar logs do PostgreSQL
docker-compose logs postgres
# Reiniciar o serviço
docker-compose restart postgres# Force push do schema
docker exec -it vitaia-app sh
npm run db:push --force# Ver logs detalhados
docker-compose logs app
# Reconstruir sem cache
docker-compose build --no-cache
docker-compose up -dvitaia/
├── Dockerfile # Configuração da imagem Docker
├── docker-compose.yml # Orquestração de serviços
├── .env.example # Exemplo de variáveis de ambiente
├── .env # Suas variáveis (não versionado)
├── package.json # Dependências Node.js
├── drizzle/ # Schemas do banco de dados
├── server/ # Backend (Express + tRPC)
├── client/ # Frontend (React + Vite)
└── dist/ # Build de produção (gerado)
Antes de fazer deploy em produção:
- ✅ Implemente autenticação (OAuth, JWT, ou similar)
- ✅ Altere senhas do PostgreSQL
- ✅ Configure HTTPS/SSL
- ✅ Use secrets manager (não .env em produção)
- ✅ Configure firewall/security groups
- ✅ Ative logs e monitoring
- ✅ Implemente controle de acesso por usuário
Nota: Atualmente todos os dados são associados ao usuário ID 1. Para produção, você precisará:
- Adicionar sistema de autenticação (ex: Clerk, Auth0, NextAuth)
- Modificar as rotas tRPC para usar
ctx.userdo sistema de autenticação - Atualizar o schema do banco para suportar múltiplos usuários
Problemas? Dúvidas?
- Verifique a Documentação completa
- Abra uma issue no repositório
- Consulte os logs:
docker-compose logs -f
✨ VITAIA - A IA da Vida | Medical AI Assistant