Skip to content

Latest commit

 

History

History
320 lines (214 loc) · 6.45 KB

File metadata and controls

320 lines (214 loc) · 6.45 KB

🚀 VITAIA - Setup Local com Docker

Guia completo para executar a aplicação VITAIA localmente usando Docker.


📋 Pré-requisitos

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)

🛠️ Passo a Passo - Setup Inicial

1️⃣ Clone o Repositório (se ainda não tiver)

git clone <url-do-repositorio>
cd vitaia

2️⃣ Configure as Variáveis de Ambiente

Copie o arquivo de exemplo e edite conforme necessário:

cp .env.example .env

Edite 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!

⚠️ IMPORTANTE: Autenticação Removida

  • 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

3️⃣ Execute com Docker Compose

docker-compose up -d

Este 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).

4️⃣ Aplicar Migrações do Banco de Dados

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
exit

5️⃣ Acesse a Aplicação

Abra o navegador e acesse:

http://localhost:5000

Pronto! A VITAIA está rodando localmente!


📊 Comandos Úteis

Ver logs em tempo real

# 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 postgres

Parar os serviços

docker-compose down

Parar e remover volumes (⚠️ APAGA O BANCO DE DADOS)

docker-compose down -v

Reiniciar os serviços

docker-compose restart

Rebuildar a aplicação (após alterações no código)

docker-compose up -d --build

Acessar o container da aplicação

docker exec -it vitaia-app sh

Acessar o banco de dados PostgreSQL

docker exec -it vitaia-postgres psql -U vitaia -d vitaia_db

👤 Usuário e Permissões

Usuário no Container

A 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

Banco de Dados

Credenciais padrão (desenvolvimento):

  • Host: localhost (ou postgres dentro do Docker)
  • Port: 5432
  • Database: vitaia_db
  • User: vitaia
  • Password: vitaia_dev_password

⚠️ IMPORTANTE: Altere essas credenciais em produção!


🔧 Desenvolvimento Local (Sem Docker)

Se preferir rodar sem Docker (desenvolvimento):

1. Instalar Dependências

npm install
# ou
pnpm install

2. Configurar PostgreSQL Local

Instale 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;

3. Configurar .env

cp .env.example .env
# Edite DATABASE_URL para apontar para seu PostgreSQL local

4. Executar Migrações

npm run db:push

5. Iniciar em Modo Desenvolvimento

npm run dev

Acesse: http://localhost:5000


🐛 Resolução de Problemas

Erro: "Port 5000 already in use"

# 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

Erro: "Connection refused" ao banco de dados

# 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

Erro: "Migration failed"

# Force push do schema
docker exec -it vitaia-app sh
npm run db:push --force

Container não inicia

# Ver logs detalhados
docker-compose logs app

# Reconstruir sem cache
docker-compose build --no-cache
docker-compose up -d

📁 Estrutura do Projeto Docker

vitaia/
├── 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)

🔒 Segurança - Produção

⚠️ IMPORTANTE: A aplicação não possui sistema de autenticação

Antes de fazer deploy em produção:

  1. Implemente autenticação (OAuth, JWT, ou similar)
  2. ✅ Altere senhas do PostgreSQL
  3. ✅ Configure HTTPS/SSL
  4. ✅ Use secrets manager (não .env em produção)
  5. ✅ Configure firewall/security groups
  6. ✅ Ative logs e monitoring
  7. ✅ 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.user do sistema de autenticação
  • Atualizar o schema do banco para suportar múltiplos usuários

📞 Suporte

Problemas? Dúvidas?


✨ VITAIA - A IA da Vida | Medical AI Assistant