From 32d86d501cd0498503560037f6306d8aa37238cc Mon Sep 17 00:00:00 2001 From: WanderMotta Date: Thu, 10 Jul 2025 14:44:56 -0300 Subject: [PATCH] Commit inicial - upload de todos os arquivos da pasta --- DEPLOY.md | 220 + Dockerfile | 29 + Site Institucional IAsis.md | 225 + default.conf | 14 + deploy.config.js | 65 + dist/assets/digital_twin_saude_1-3Fbdyu_X.png | Bin 0 -> 381321 bytes dist/assets/ia_saude_1-DLHBfmun.jpg | Bin 0 -> 355403 bytes dist/assets/index-Dq8ybkNH.css | 1 + dist/assets/index-TGkpCvBx.js | 276 + .../interoperabilidade_saude_1-BoELfxBX.jpg | Bin 0 -> 80381 bytes dist/assets/jornada_paciente_1-BabfGcKz.png | Bin 0 -> 101084 bytes .../redes_saude_inteligentes_1-f50vk3Tg.png | Bin 0 -> 565225 bytes dist/assets/saude_conectada_1-Dmbu6kf2.jpg | Bin 0 -> 514696 bytes dist/assets/tecnologia_saude_1-CDunotUd.webp | Bin 0 -> 48698 bytes dist/favicon.ico | Bin 0 -> 15406 bytes dist/index.html | 14 + github.bat | 30 + index.html | 13 + package-lock.json | 5307 +++++++++++++++++ package.json | 76 + public/favicon.ico | Bin 0 -> 15406 bytes src/App.css | 171 + src/App.jsx | 89 + src/assets/digital_twin_saude_1.png | Bin 0 -> 381321 bytes src/assets/ia_saude_1.jpg | Bin 0 -> 355403 bytes src/assets/interoperabilidade_saude_1.jpg | Bin 0 -> 80381 bytes src/assets/interoperabilidade_saude_2.png | Bin 0 -> 141369 bytes src/assets/jornada_paciente_1.png | Bin 0 -> 101084 bytes src/assets/react.svg | 1 + src/assets/redes_saude_inteligentes_1.png | Bin 0 -> 565225 bytes src/assets/saude_conectada_1.jpg | Bin 0 -> 514696 bytes src/assets/tecnologia_saude_1.webp | Bin 0 -> 48698 bytes src/components/About.jsx | 271 + src/components/Contact.jsx | 408 ++ src/components/Footer.jsx | 109 + src/components/ForWho.jsx | 413 ++ src/components/Header.jsx | 130 + src/components/Home.jsx | 238 + src/components/Impact.jsx | 360 ++ src/components/Login.jsx | 194 + src/components/Modules.jsx | 457 ++ src/components/Platform.jsx | 292 + src/components/Technology.jsx | 342 ++ src/components/ui/accordion.jsx | 62 + src/components/ui/alert-dialog.jsx | 138 + src/components/ui/alert.jsx | 63 + src/components/ui/aspect-ratio.jsx | 9 + src/components/ui/avatar.jsx | 47 + src/components/ui/badge.jsx | 44 + src/components/ui/breadcrumb.jsx | 112 + src/components/ui/button.jsx | 55 + src/components/ui/calendar.jsx | 72 + src/components/ui/card.jsx | 101 + src/components/ui/carousel.jsx | 195 + src/components/ui/chart.jsx | 309 + src/components/ui/checkbox.jsx | 30 + src/components/ui/collapsible.jsx | 21 + src/components/ui/command.jsx | 155 + src/components/ui/context-menu.jsx | 224 + src/components/ui/dialog.jsx | 131 + src/components/ui/drawer.jsx | 131 + src/components/ui/dropdown-menu.jsx | 223 + src/components/ui/form.jsx | 143 + src/components/ui/hover-card.jsx | 39 + src/components/ui/input-otp.jsx | 73 + src/components/ui/input.jsx | 24 + src/components/ui/label.jsx | 23 + src/components/ui/menubar.jsx | 250 + src/components/ui/navigation-menu.jsx | 152 + src/components/ui/pagination.jsx | 118 + src/components/ui/popover.jsx | 47 + src/components/ui/progress.jsx | 27 + src/components/ui/radio-group.jsx | 43 + src/components/ui/resizable.jsx | 51 + src/components/ui/scroll-area.jsx | 51 + src/components/ui/select.jsx | 164 + src/components/ui/separator.jsx | 27 + src/components/ui/sheet.jsx | 138 + src/components/ui/sidebar.jsx | 682 +++ src/components/ui/skeleton.jsx | 15 + src/components/ui/slider.jsx | 56 + src/components/ui/sonner.jsx | 24 + src/components/ui/switch.jsx | 29 + src/components/ui/table.jsx | 121 + src/components/ui/tabs.jsx | 62 + src/components/ui/textarea.jsx | 20 + src/components/ui/toggle-group.jsx | 61 + src/components/ui/toggle.jsx | 43 + src/components/ui/tooltip.jsx | 53 + src/hooks/use-mobile.js | 19 + src/index.css | 0 src/lib/utils.js | 6 + src/main.jsx | 10 + vite.config.js | 14 + 94 files changed, 14452 insertions(+) create mode 100644 DEPLOY.md create mode 100644 Dockerfile create mode 100644 Site Institucional IAsis.md create mode 100644 default.conf create mode 100644 deploy.config.js create mode 100644 dist/assets/digital_twin_saude_1-3Fbdyu_X.png create mode 100644 dist/assets/ia_saude_1-DLHBfmun.jpg create mode 100644 dist/assets/index-Dq8ybkNH.css create mode 100644 dist/assets/index-TGkpCvBx.js create mode 100644 dist/assets/interoperabilidade_saude_1-BoELfxBX.jpg create mode 100644 dist/assets/jornada_paciente_1-BabfGcKz.png create mode 100644 dist/assets/redes_saude_inteligentes_1-f50vk3Tg.png create mode 100644 dist/assets/saude_conectada_1-Dmbu6kf2.jpg create mode 100644 dist/assets/tecnologia_saude_1-CDunotUd.webp create mode 100644 dist/favicon.ico create mode 100644 dist/index.html create mode 100644 github.bat create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 src/App.css create mode 100644 src/App.jsx create mode 100644 src/assets/digital_twin_saude_1.png create mode 100644 src/assets/ia_saude_1.jpg create mode 100644 src/assets/interoperabilidade_saude_1.jpg create mode 100644 src/assets/interoperabilidade_saude_2.png create mode 100644 src/assets/jornada_paciente_1.png create mode 100644 src/assets/react.svg create mode 100644 src/assets/redes_saude_inteligentes_1.png create mode 100644 src/assets/saude_conectada_1.jpg create mode 100644 src/assets/tecnologia_saude_1.webp create mode 100644 src/components/About.jsx create mode 100644 src/components/Contact.jsx create mode 100644 src/components/Footer.jsx create mode 100644 src/components/ForWho.jsx create mode 100644 src/components/Header.jsx create mode 100644 src/components/Home.jsx create mode 100644 src/components/Impact.jsx create mode 100644 src/components/Login.jsx create mode 100644 src/components/Modules.jsx create mode 100644 src/components/Platform.jsx create mode 100644 src/components/Technology.jsx create mode 100644 src/components/ui/accordion.jsx create mode 100644 src/components/ui/alert-dialog.jsx create mode 100644 src/components/ui/alert.jsx create mode 100644 src/components/ui/aspect-ratio.jsx create mode 100644 src/components/ui/avatar.jsx create mode 100644 src/components/ui/badge.jsx create mode 100644 src/components/ui/breadcrumb.jsx create mode 100644 src/components/ui/button.jsx create mode 100644 src/components/ui/calendar.jsx create mode 100644 src/components/ui/card.jsx create mode 100644 src/components/ui/carousel.jsx create mode 100644 src/components/ui/chart.jsx create mode 100644 src/components/ui/checkbox.jsx create mode 100644 src/components/ui/collapsible.jsx create mode 100644 src/components/ui/command.jsx create mode 100644 src/components/ui/context-menu.jsx create mode 100644 src/components/ui/dialog.jsx create mode 100644 src/components/ui/drawer.jsx create mode 100644 src/components/ui/dropdown-menu.jsx create mode 100644 src/components/ui/form.jsx create mode 100644 src/components/ui/hover-card.jsx create mode 100644 src/components/ui/input-otp.jsx create mode 100644 src/components/ui/input.jsx create mode 100644 src/components/ui/label.jsx create mode 100644 src/components/ui/menubar.jsx create mode 100644 src/components/ui/navigation-menu.jsx create mode 100644 src/components/ui/pagination.jsx create mode 100644 src/components/ui/popover.jsx create mode 100644 src/components/ui/progress.jsx create mode 100644 src/components/ui/radio-group.jsx create mode 100644 src/components/ui/resizable.jsx create mode 100644 src/components/ui/scroll-area.jsx create mode 100644 src/components/ui/select.jsx create mode 100644 src/components/ui/separator.jsx create mode 100644 src/components/ui/sheet.jsx create mode 100644 src/components/ui/sidebar.jsx create mode 100644 src/components/ui/skeleton.jsx create mode 100644 src/components/ui/slider.jsx create mode 100644 src/components/ui/sonner.jsx create mode 100644 src/components/ui/switch.jsx create mode 100644 src/components/ui/table.jsx create mode 100644 src/components/ui/tabs.jsx create mode 100644 src/components/ui/textarea.jsx create mode 100644 src/components/ui/toggle-group.jsx create mode 100644 src/components/ui/toggle.jsx create mode 100644 src/components/ui/tooltip.jsx create mode 100644 src/hooks/use-mobile.js create mode 100644 src/index.css create mode 100644 src/lib/utils.js create mode 100644 src/main.jsx create mode 100644 vite.config.js diff --git a/DEPLOY.md b/DEPLOY.md new file mode 100644 index 0000000..4e1726f --- /dev/null +++ b/DEPLOY.md @@ -0,0 +1,220 @@ +# 🚀 Deploy no Coolify - IAsis Website + +## 📋 PrĂ©-requisitos + +- Coolify instalado e configurado +- RepositĂłrio Git com os arquivos do projeto +- Docker disponĂ­vel no servidor + +## 🔧 Configuração do Deploy + +### 1. ConfiguraçÔes do Projeto no Coolify + +```bash +# ConfiguraçÔes bĂĄsicas +Nome do Projeto: iasis-website +RepositĂłrio: [seu-repositĂłrio-git] +Branch: main (ou master) +``` + +### 2. ConfiguraçÔes de Build + +```bash +# Comando de build +npm install --legacy-peer-deps && npm run build + +# DiretĂłrio de saĂ­da +dist + +# Porta da aplicação +80 + +# Health check +/health +``` + +### 3. VariĂĄveis de Ambiente + +No painel do Coolify, adicione as seguintes variĂĄveis: + +```bash +NODE_ENV=production +VITE_APP_NAME=IAsis +VITE_APP_VERSION=1.0.0 +``` + +### 4. ConfiguraçÔes de DomĂ­nio + +```bash +# DomĂ­nio personalizado (opcional) +seu-dominio.com + +# SSL +AutomĂĄtico via Let's Encrypt (recomendado) +``` + +## 📩 Processo de Deploy + +### MĂ©todo 1: Deploy AutomĂĄtico (Recomendado) + +1. **Conecte o repositĂłrio** no Coolify +2. **Configure as variĂĄveis** de ambiente +3. **Inicie o deploy** automĂĄtico +4. **Coolify irĂĄ**: + - Clonar o repositĂłrio + - Executar o build com Docker + - Servir via Nginx + - Configurar SSL automaticamente + +### MĂ©todo 2: Deploy Manual + +Se preferir fazer deploy manual: + +```bash +# 1. Build local +npm install --legacy-peer-deps +npm run build + +# 2. Build da imagem Docker +docker build -t iasis-website . + +# 3. Upload para o Coolify +# (seguir instruçÔes especĂ­ficas do seu Coolify) +``` + +## 🔍 Verificação do Deploy + +### Endpoints de Teste + +```bash +# Health check +https://seu-dominio.com/health + +# PĂĄgina principal +https://seu-dominio.com/ + +# Login +https://seu-dominio.com/ +# Credenciais: Admin / Iasis@2025 +``` + +### Logs de Verificação + +```bash +# Verificar logs do container +docker logs [container-id] + +# Verificar logs do Nginx +docker exec [container-id] cat /var/log/nginx/access.log +docker exec [container-id] cat /var/log/nginx/error.log +``` + +## đŸ› ïž Troubleshooting + +### Problemas Comuns + +1. **Erro de dependĂȘncias**: + ```bash + # Solução: usar --legacy-peer-deps + npm install --legacy-peer-deps + ``` + +2. **Erro de build**: + ```bash + # Verificar se o Node.js 18 estĂĄ sendo usado + node --version + ``` + +3. **Erro de roteamento SPA**: + ```bash + # Verificar se o default.conf estĂĄ correto + # Deve ter: try_files $uri $uri/ /index.html; + ``` + +4. **Erro de permissĂ”es**: + ```bash + # Verificar permissĂ”es dos arquivos + ls -la /usr/share/nginx/html + ``` + +### Comandos Úteis + +```bash +# Verificar status do container +docker ps + +# Entrar no container +docker exec -it [container-id] /bin/sh + +# Verificar arquivos servidos +docker exec [container-id] ls -la /usr/share/nginx/html + +# Testar Nginx +docker exec [container-id] nginx -t + +# Recarregar configuração do Nginx +docker exec [container-id] nginx -s reload +``` + +## 📊 Monitoramento + +### MĂ©tricas Importantes + +- **Uptime**: verificar via `/health` +- **Logs de acesso**: monitorar via Nginx +- **Uso de recursos**: CPU e memĂłria +- **Tempo de resposta**: pĂĄginas carregando < 2s + +### Alertas Recomendados + +- Container down +- Alto uso de CPU (> 80%) +- Muitos erros 4xx/5xx +- Tempo de resposta elevado + +## 🔒 Segurança + +### Headers de Segurança Implementados + +```nginx +X-Frame-Options: SAMEORIGIN +X-Content-Type-Options: nosniff +X-XSS-Protection: 1; mode=block +Referrer-Policy: strict-origin-when-cross-origin +``` + +### RecomendaçÔes Adicionais + +- Usar HTTPS sempre +- Configurar firewall adequadamente +- Monitorar logs de acesso +- Manter Nginx atualizado + +## 📈 Performance + +### OtimizaçÔes Implementadas + +- **CompressĂŁo gzip** para todos os assets +- **Cache headers** otimizados +- **Build otimizado** com Vite +- **Imagem Docker leve** (Alpine Linux) + +### MĂ©tricas Esperadas + +- **Primeiro carregamento**: < 2s +- **Navegação**: < 0.5s +- **Tamanho do bundle**: < 2MB +- **Lighthouse score**: > 90 + +--- + +## 🆘 Suporte + +Em caso de problemas: + +1. Verificar logs do Coolify +2. Consultar documentação do Coolify +3. Verificar configuraçÔes de rede +4. Testar localmente primeiro + +**Deploy realizado com sucesso! 🎉** \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..28f9a9b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +# Etapa 1: build +FROM node:18-alpine AS build + +# Define diretĂłrio de trabalho +WORKDIR /app + +# Copia os arquivos do projeto +COPY . . + +# Instala dependĂȘncias e gera build de produção +#RUN npm install && npm run build +RUN npm install --legacy-peer-deps && npm run build + + +# Etapa 2: servidor Nginx +FROM nginx:alpine + +# Remove configuração padrĂŁo e aplica a personalizada +RUN rm /etc/nginx/conf.d/default.conf +COPY default.conf /etc/nginx/conf.d/ + +# Copia os arquivos estĂĄticos gerados pelo build +COPY --from=build /app/dist /usr/share/nginx/html + +# ExpĂ”e a porta HTTP +EXPOSE 80 + +# Inicia o Nginx em primeiro plano +CMD ["nginx", "-g", "daemon off;"] diff --git a/Site Institucional IAsis.md b/Site Institucional IAsis.md new file mode 100644 index 0000000..9289082 --- /dev/null +++ b/Site Institucional IAsis.md @@ -0,0 +1,225 @@ +# Site Institucional IAsis + +## 📋 VisĂŁo Geral + +Site institucional completo para a IAsis - Plataforma de Interoperabilidade em SaĂșde, desenvolvido em React com design moderno e responsivo. + +## 🚀 CaracterĂ­sticas Principais + +### ✹ Design e UX +- **Design Moderno**: Interface limpa e profissional +- **Responsivo**: Funciona perfeitamente em desktop, tablet e mobile +- **Paleta de Cores**: Azul (#3B82F6), Verde (#10B981), Roxo (#8B5CF6) +- **Tipografia**: Hierarquia visual clara e legĂ­vel +- **AnimaçÔes**: Efeitos hover e transiçÔes suaves + +### 📄 PĂĄginas Implementadas + +1. **Home** (`/`) + - Hero section com apresentação principal + - MĂ©tricas de impacto (18M+ pacientes, 40→3 dias de regulação) + - VisĂŁo geral dos produtos digitais + - Call-to-actions estratĂ©gicos + +2. **Sobre** (`/sobre`) + - HistĂłria e evolução da empresa + - MissĂŁo, visĂŁo e propĂłsito + - Valores corporativos + - Timeline da jornada da IAsis + - InformaçÔes sobre a equipe + +3. **Plataforma** (`/plataforma`) + - Apresentação dos 3 produtos principais: + - WEB3 ENGINE (Infraestrutura de Integração) + - SMART DIGITAL TWIN (InteligĂȘncia EstratĂ©gica) + - MED JOURNEY (Continuidade do Cuidado) + - Arquitetura em camadas + - Tecnologias utilizadas + +4. **MĂłdulos** (`/modulos`) + - Detalhamento dos 10 mĂłdulos da plataforma + - Sistema de filtros por categoria + - Funcionalidades expandĂ­veis + - Modelo comercial modular + +5. **Tecnologia** (`/tecnologia`) + - Stack tecnolĂłgico completo + - Arquitetura da plataforma + - PrincĂ­pios arquiteturais + - MĂ©tricas de performance + +6. **Impacto** (`/impacto`) + - Casos de sucesso reais + - MĂ©tricas de impacto + - BenefĂ­cios por stakeholder + - Impacto social + +7. **Para Quem** (`/para-quem`) + - Segmentação por tipo de cliente: + - MunicĂ­pios (pequeno, mĂ©dio, grande porte) + - Estados + - Operadoras de SaĂșde + - Hospitais e ClĂ­nicas + - Comparativo de soluçÔes + +8. **Contato** (`/contato`) + - FormulĂĄrio de contato funcional + - InformaçÔes de contato + - FAQ + - MĂșltiplas opçÔes de contato + +### đŸ› ïž Tecnologias Utilizadas + +- **Frontend**: React 19.1.0 + Vite 6.3.5 +- **Styling**: Tailwind CSS +- **Componentes**: Shadcn/UI +- **Ícones**: Lucide React +- **Roteamento**: React Router DOM +- **Build**: Vite (otimizado para produção) + +### 📁 Estrutura do Projeto + +``` +iasis-website/ +├── src/ +│ ├── components/ +│ │ ├── ui/ # Componentes base (Shadcn/UI) +│ │ ├── Header.jsx # Cabeçalho e navegação +│ │ ├── Footer.jsx # RodapĂ© +│ │ ├── Home.jsx # PĂĄgina inicial +│ │ ├── About.jsx # PĂĄgina sobre +│ │ ├── Platform.jsx # PĂĄgina da plataforma +│ │ ├── Modules.jsx # PĂĄgina de mĂłdulos +│ │ ├── Technology.jsx # PĂĄgina de tecnologia +│ │ ├── Impact.jsx # PĂĄgina de impacto +│ │ ├── ForWho.jsx # PĂĄgina para quem +│ │ └── Contact.jsx # PĂĄgina de contato +│ ├── assets/ # Imagens e recursos +│ ├── lib/ # UtilitĂĄrios +│ ├── hooks/ # Hooks customizados +│ ├── App.jsx # Componente principal +│ ├── App.css # Estilos globais +│ └── main.jsx # Ponto de entrada +├── public/ # Arquivos pĂșblicos +├── dist/ # Build de produção +└── package.json # DependĂȘncias e scripts +``` + +## 🚀 Como Executar + +### PrĂ©-requisitos +- Node.js 18+ +- npm ou yarn + +### Instalação +```bash +# Instalar dependĂȘncias +npm install + +# Executar em desenvolvimento +npm run dev + +# Build para produção +npm run build + +# Preview do build +npm run preview +``` + +### URLs de Desenvolvimento +- **Local**: http://localhost:5173 +- **Network**: http://169.254.0.21:5173 + +## 📊 Performance + +### Build de Produção +- **CSS**: 95.06 kB (15.46 kB gzipped) +- **JavaScript**: 356.47 kB (102.21 kB gzipped) +- **Imagens**: Otimizadas e comprimidas +- **Total**: ~2.1 MB (incluindo assets) + +### OtimizaçÔes Implementadas +- ✅ Code splitting automĂĄtico +- ✅ Lazy loading de componentes +- ✅ CompressĂŁo de imagens +- ✅ Minificação de CSS/JS +- ✅ Tree shaking +- ✅ Gzip compression + +## 🎹 Design System + +### Cores Principais +```css +--primary: #3B82F6 (Azul IAsis) +--secondary: #10B981 (Verde) +--accent: #8B5CF6 (Roxo) +--background: #FFFFFF +--foreground: #1F2937 +``` + +### Componentes ReutilizĂĄveis +- Cards com efeitos hover +- BotĂ”es com variaçÔes +- Badges e tags +- FormulĂĄrios estilizados +- Layout responsivo + +## đŸ“± Responsividade + +### Breakpoints +- **Mobile**: < 768px +- **Tablet**: 768px - 1024px +- **Desktop**: > 1024px + +### Funcionalidades Mobile +- Menu hambĂșrguer +- Touch-friendly buttons +- Otimização de imagens +- Layout adaptativo + +## 🔧 Funcionalidades + +### Navegação +- ✅ Roteamento SPA +- ✅ Menu responsivo +- ✅ Links ativos +- ✅ Scroll suave + +### FormulĂĄrios +- ✅ Validação de campos +- ✅ Estados de loading +- ✅ Feedback visual +- ✅ Acessibilidade + +### Interatividade +- ✅ Efeitos hover +- ✅ AnimaçÔes CSS +- ✅ Componentes expandĂ­veis +- ✅ Filtros dinĂąmicos + +## 🚀 Deploy + +### OpçÔes de Deploy +1. **Vercel** (Recomendado) +2. **Netlify** +3. **GitHub Pages** +4. **Servidor prĂłprio** + +### Comandos de Deploy +```bash +# Build de produção +npm run build + +# Os arquivos estarĂŁo em /dist +``` + +## 📞 Suporte + +Para dĂșvidas ou suporte tĂ©cnico: +- **Email**: contato@iasis.com.br +- **Telefone**: +55 (11) 9999-9999 + +--- + +**Desenvolvido com ❀ para a IAsis** + diff --git a/default.conf b/default.conf new file mode 100644 index 0000000..869d7b1 --- /dev/null +++ b/default.conf @@ -0,0 +1,14 @@ +server { + listen 80; + server_name _; + + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri $uri/ /index.html; + } + + access_log off; + error_log /var/log/nginx/error.log warn; +} diff --git a/deploy.config.js b/deploy.config.js new file mode 100644 index 0000000..de15b2b --- /dev/null +++ b/deploy.config.js @@ -0,0 +1,65 @@ +/** + * Configuração de Deploy para Coolify + * IAsis Website + */ + +export const deployConfig = { + // ConfiguraçÔes da aplicação + app: { + name: 'iasis-website', + version: '1.0.0', + port: 80, + environment: 'production' + }, + + // ConfiguraçÔes do Docker + docker: { + image: 'iasis-website', + platform: 'linux/amd64', + buildArgs: { + NODE_ENV: 'production' + } + }, + + // ConfiguraçÔes do Nginx + nginx: { + port: 80, + healthCheck: '/health', + compression: true, + cacheHeaders: true + }, + + // ConfiguraçÔes de build + build: { + command: 'npm run build', + outputDir: 'dist', + nodeVersion: '18', + packageManager: 'npm' + }, + + // VariĂĄveis de ambiente para produção + env: { + NODE_ENV: 'production', + VITE_APP_NAME: 'IAsis', + VITE_APP_VERSION: '1.0.0' + }, + + // ConfiguraçÔes especĂ­ficas do Coolify + coolify: { + // Porta que o Coolify deve usar + port: 80, + // Health check endpoint + healthCheck: '/health', + // Comando de build + buildCommand: 'npm install --legacy-peer-deps && npm run build', + // DiretĂłrio de saĂ­da + publishDirectory: 'dist', + // ConfiguraçÔes de recursos + resources: { + memory: '512Mi', + cpu: '250m' + } + } +}; + +export default deployConfig; \ No newline at end of file diff --git a/dist/assets/digital_twin_saude_1-3Fbdyu_X.png b/dist/assets/digital_twin_saude_1-3Fbdyu_X.png new file mode 100644 index 0000000000000000000000000000000000000000..069e8581aa9169a0cfb7ae3b4a1ba05812ae7b65 GIT binary patch literal 381321 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

YJ{VGo1tV*vrU^5x-HyGo^{q7033pL)4Z*RN3 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