- Add docs/README.md as index - Consolidate ops in docs/operations.md; mark legacy runbooks as archive - Create docs/desktop/ and docs/admin/ structure and move relevant docs - Update root README to link docs index - Keep historical and planning notes under docs/archive/
52 lines
2 KiB
Markdown
52 lines
2 KiB
Markdown
# Build do App Desktop (Tauri)
|
||
|
||
Guia rápido para gerar instaladores do app desktop em cada sistema operacional.
|
||
|
||
## Pré‑requisitos
|
||
- Node.js 20+ e pnpm (Corepack habilitado):
|
||
- `corepack enable && corepack prepare pnpm@9 --activate`
|
||
- Rust toolchain (stable) instalado.
|
||
- Dependências nativas por SO:
|
||
- Linux (Debian/Ubuntu):
|
||
```bash
|
||
sudo apt update && sudo apt install -y \
|
||
libwebkit2gtk-4.1-dev build-essential curl wget file \
|
||
libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev
|
||
```
|
||
- Windows: Visual Studio Build Tools + WebView2 Runtime.
|
||
- macOS: Xcode Command Line Tools.
|
||
|
||
## Configuração de URLs
|
||
- Produção: por padrão o app usa `https://tickets.esdrasrenan.com.br`.
|
||
- Desenvolvimento: crie `apps/desktop/.env` a partir de `apps/desktop/.env.example` e ajuste:
|
||
```
|
||
VITE_APP_URL=http://localhost:3000
|
||
VITE_API_BASE_URL=
|
||
```
|
||
|
||
## Comandos de build
|
||
- Linux/macOS/Windows (rodar no próprio sistema):
|
||
```bash
|
||
pnpm -C apps/desktop tauri build
|
||
```
|
||
- Apenas frontend (Vite):
|
||
```bash
|
||
pnpm -C apps/desktop build
|
||
```
|
||
|
||
Saída de artefatos: `apps/desktop/src-tauri/target/release/bundle/`.
|
||
|
||
## Dicas
|
||
- Primeira compilação do Rust pode demorar (download de crates e linkedição).
|
||
- Se o link‑editor for lento no Linux, considere instalar `lld` e usar:
|
||
```bash
|
||
RUSTFLAGS="-Clink-arg=-fuse-ld=lld" pnpm -C apps/desktop tauri build
|
||
```
|
||
- Para logs detalhados em dev, rode `pnpm -C apps/desktop tauri dev`.
|
||
|
||
## Diagnóstico de sessão (Desktop → Portal)
|
||
- Durante testes, navegue até `/portal/debug` (o desktop pode redirecionar automaticamente) para ver:
|
||
- `/api/auth/get-session` — pode ser `null` na WebView; não é bloqueante.
|
||
- `/api/machines/session` — precisa retornar `200` com `assignedUserId/email`.
|
||
- Produção: as rotas de sessão/handshake enviam `Access-Control-Allow-Credentials: true` e aplicam cookies com `NextResponse.cookies.set(...)` para confiabilidade em navegadores/embeds.
|
||
- O desktop mantém a navegação top‑level via `/machines/handshake` para maximizar a aceitação de cookies.
|