docs: reorganize and simplify

- 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/
This commit is contained in:
codex-bot 2025-10-20 16:24:16 -03:00
parent 0dd0e67458
commit f5b3abd277
15 changed files with 190 additions and 11 deletions

View file

@ -1,52 +0,0 @@
# 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 linkeditor 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 toplevel via `/machines/handshake` para maximizar a aceitação de cookies.