# 🚀 Deploy do ScoreOdonto Dental Client (Windows) Este documento detalha o processo de compilação e distribuição de novas atualizações do programa desktop (Windows) que fica nas máquinas das clínicas, diretamente pelo nosso servidor Linux (VPS 4). ## 🛠 Como funciona a Arquitetura O nosso cliente é construído usando **Electron**. A compilação cruzada (Cross-compile) acontece de forma automatizada: nossa máquina Linux (VPS 4) empacota o código-fonte em um instalador Windows `.exe`. Após a compilação, o script joga os binários automaticamente para a pasta de produção na **VPS 1**, e o sistema de Auto-Update avisa as clínicas. --- ## 📦 Passo a Passo para Lançar uma Nova Versão Sempre que você fizer alterações no código do cliente (ex: `index.js`, `client-monitor.js`, etc) e quiser mandar para os clientes, siga esta receita: ### Passo 1: Atualizar a Versão Abra o arquivo `package.json` localizado na pasta do cliente (`rx.scoreodonto.com-client/`). Altere o número da versão na linha `"version"`. *Dica: Sempre suba a versão para que o Auto-Update do Windows reconheça a novidade (Ex: de `"1.2.7"` para `"1.2.8"`).* ### Passo 2: Executar o Script de Deploy Pelo terminal, dentro da pasta do cliente na **VPS 4**, execute o script mágico: ```bash cd /home/deploy/stack/rx.scoreodonto.com-client ./deploy-client.sh ``` ### Passo 3: Acompanhar o Terminal O script fará o seguinte trabalho sozinho: 1. Rodar um `npm install` garantindo os pacotes. 2. Iniciar o `electron-builder` criando a versão `.exe` para o Windows (`--win --x64`). 3. Validar se os artefatos (`.exe`, `latest.yml`, `.blockmap`) foram criados na pasta `/dist`. 4. Conectar na **VPS 1** e transferir (via `rsync`) os arquivos para a pasta pública: `/home/deploy/stack/rx.scoreodonto.com/dental-server/updates`. Você verá a mensagem: `✅ Build e distribuição do client concluídos com sucesso!` ### Passo 4: Auto-Update nas Clínicas A partir do momento em que a VPS 1 receber o arquivo `latest.yml` e o novo `.exe`, o sistema já está no ar. Nas clínicas: - Na próxima vez que o programa cliente for iniciado (ou após o intervalo padrão do `electron-updater`), ele baixará o `.exe` silenciosamente. - Ele pedirá ao usuário para reiniciar e aplicar o update. - Nenhuma intervenção manual é necessária! --- ## ⚠️ Solução de Problemas - **Erro de conexão ao enviar para a VPS 1:** Verifique se as chaves SSH do usuário `deploy` na VPS 4 têm permissão irrestrita na VPS 1 (`10.99.0.1`). - **O instalador falha no Windows:** Se você instalou pacotes nativos (C++) pesados, a compilação cruzada no Linux pode quebrar. Evite bibliotecas nativas pesadas no lado do cliente. - **O Auto-Update não detecta a versão:** Confirme se a URL em `"publish"` dentro do `package.json` (`https://rx.scoreodonto.com/updates/`) está acessível pelo navegador e mostra a pasta de arquivos.