52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
# Build do App Desktop (Tauri)
|
||
|
||
Guia rápido para gerar instaladores do app desktop em cada sistema operacional.
|
||
|
||
## Pré‑requisitos
|
||
- Bun >= 1.3 instalado e disponível no `PATH`.
|
||
- Node.js 20+ (recomendado) caso precise executar scripts auxiliares em Node.
|
||
- 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
|
||
bun run --cwd apps/desktop tauri build
|
||
```
|
||
- Apenas frontend (Vite):
|
||
```bash
|
||
bun run --cwd 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" bun run --cwd apps/desktop tauri build
|
||
```
|
||
- Para logs detalhados em dev, rode `bun run --cwd 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.
|