docs(projetos): plano de deploy do client.exe (rx) — delta electron/auto-update
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# rx.scoreodonto.com-client — Plano de deploy (delta do client.exe)
|
||||
|
||||
> Delta específico deste projeto. O modelo universal está em `../../deploy/`. Aqui só o que **difere**: é um **app desktop Electron** (não um serviço web), distribuído por **auto-update (electron-updater)**.
|
||||
|
||||
## O que torna este projeto diferente
|
||||
- **Electron + electron-builder** (target NSIS, Windows x64), **cross-compile no Linux** (VPS4).
|
||||
- **Auto-update** via `electron-updater` (provider `generic`) → o `.exe` instalado puxa de `https://rx.scoreodonto.com/updates/latest.yml`. **Esse mecanismo é mantido** (clients em campo dependem dele).
|
||||
- Não é "imagem Docker promovida" como os serviços web — o artefato é o **`.exe` + `latest.yml`** publicados em `dental-server/updates/`.
|
||||
|
||||
## Estado atual (analisado em 17/jun/2026)
|
||||
- Versão vem do **`package.json`** (manual; hoje `1.3.8`).
|
||||
- Build/publish via **`deploy-client.sh`**, disparado pelo **webhook porta 9004** no push (push → build + publica em produção) ou manual: `electron-builder --win --x64 --publish never` → `rsync` do `.exe`+`latest.yml` para a VPS1 `updates/`.
|
||||
- **Sem CI**, sem build-once/promote, sem rastreabilidade commit→artefato.
|
||||
|
||||
## Plano (Build Once → Promote → Deploy, adaptado)
|
||||
| Fase | O que | Status |
|
||||
|---|---|---|
|
||||
| 1 | **Versão pela tag** + exibir a versão na UI | 🧪 em andamento (dev) |
|
||||
| 2 | **CI build por commit** (`.gitea/workflows`): builda o `.exe` e guarda como artefato; não publica em prod | 🎯 |
|
||||
| 3 | **Promote por tag**: pega o `.exe` do commit, gera `latest.yml` com a versão da tag e publica em prod `updates/` | 🎯 |
|
||||
| 4 | **Corte**: desligar `webhook-rx-client.service` (9004) e validar o auto-update dos clients em campo | 🎯 |
|
||||
| 5 | Manter este documento atualizado | — |
|
||||
|
||||
## Riscos a tratar
|
||||
- **Cross-compile Windows no Linux** (electron-builder/wine) no CI.
|
||||
- **Code signing** do `.exe` (SmartScreen) — pendência antiga do RX.
|
||||
- **NÃO quebrar o `latest.yml`** dos clients instalados nas clínicas — um arquivo errado afeta o update de todos. Testar antes do corte.
|
||||
- O `electron-updater`/`latest.yml` **não muda** — só a *origem da versão* (tag) e o *pipeline*.
|
||||
Reference in New Issue
Block a user