# Inventário Ligbox — Todas as VMs do Projecto

**Hub:** CT130 · `https://spec.ligbox.com.br`  
**Git:** `https://git.spec.ligbox.com.br/ligbox/ligbox-ops-platform`

> As specs **não vivem só na VM122** — descrevem o **ecossistema completo**. O código de cada VM está em `deploy/vm*` e é sincronizado via Git Forgejo.


## Estrutura do monorepo

```
ligbox-ops-platform/
├── specs/              # Spec Kit — cruzam VMs
├── contracts/          # API/eventos partilhados
├── projects/
│   ├── wizard/         # VM112
│   ├── ops-desk/       # VM122
│   ├── finance/        # VM123
│   └── integrations/   # VM104 Wazuh
├── deploy/manifest.yaml
└── docs/vms/
```

## Mapa rápido

| VM/CT | IP | SSH WAN | Papel | Deploy no repo |
|-------|-----|---------|-------|----------------|
| **112** | 10.10.10.112 | :2512 | Wizard onboard + Carbonio mail | `projects/wizard/` |
| **122** | 10.10.10.122 | :2522 | Ops Desk API + worker + UI MVP | `projects/ops-desk/` |
| **123** | 10.10.10.123 | :2523 | FOSSBilling + Odoo + OpenPanel + Console UI | `projects/finance/` |
| **104** | 10.10.10.104 | :2504 | Wazuh SIEM | integração Spec 002, 019 |
| **114** | 10.10.10.114 | — | Traefik (CT) | `docs/network/TRAEFIK_*` |
| **116** | 10.10.10.116 | :2516 | RustDesk relay + portal remoto | — |
| **124** | 10.10.10.124 | :2524 | **Nextcloud Hub** — storage mail (Spec 034) | `deploy/vm116-nextcloud/` |
| **130** | 10.10.10.130 | :2530 | **Spec Hub** Git + Obsidian + Portal | CT130 local |

---

## Specs por VM

### VM112 — Onboard / Mail
| Spec | Nome |
|------|------|
| 001 | webhook-vm112-integration |
| 017 | vm112-domain-orchestration |
| 022 | carbonio-account-exists-release |
| 025 | wizard-onboarding-continuity |
| 026 | purge-traefik-validation |
| 034 | nextcloud-carbonio-vm112-integration |
| 010 | desk-assist-takeover (fases VM112) |

→ [Ficha VM112](VM112.md)

### VM122 — Ops Desk (motor)
| Spec | Nome |
|------|------|
| 035 | ligbox-watchman (vigilância + alertas) |
| 003 | desk-auth-rbac |
| 004 | desk-account-management |
| 009 | ops-audit-overview |
| 010 | desk-assist-takeover |
| 012 | abandoned-onboarding-lead |
| 015 | desk-module-registry |
| 027 | desk-rbac-function-matrix |
| 029 | agentic ops |

→ [Ficha VM122](VM122.md)

### VM123 — Finance + Console
| Spec | Nome |
|------|------|
| 019 | ops-console-active-operations |
| 023 | billing-recurrence-desk-visibility |
| 024 | openpanel-fossbilling |
| 027 | desk-rbac (matriz VM123) |

→ [Ficha VM123](VM123.md)

### VM104 — Wazuh / SOC
| Spec | Nome |
|------|------|
| 002 | wazuh-integration |
| 019 | ops-console (deep-link SIEM) |

→ [Ficha VM104](VM104.md)

### CT130 — Spec Hub
| Spec | Nome |
|------|------|
| 031 | spec-hub-portal |

→ [Ficha CT130](CT130.md)

---

## Porque parecia «só VM122»?

1. **Sync inicial** veio de `/opt/ligbox-ops-platform` na VM122 (monorepo central)
2. **Código VM112/123** está em `deploy/vm112-*` e `deploy/vm123-*` **dentro do mesmo repo** — não numa VM separada no vault
3. **Portal** listava specs flat — sem secção «Por VM»
4. **VM104** não tem pasta deploy no repo (integração via API/deep-link)
5. **CT130** foi criada depois — Spec 031 adicionada agora

**Próximo passo:** cada VM faz `git pull` do Forgejo — nunca editar disco solto.
