obsidian-vault/ligbox-ops-platform/specs/024-openpanel-fossbilling/PROVISIONING_CLIENT_CARD.md
2026-06-19 17:26:42 +00:00

95 lines
3.1 KiB
Markdown

# Spec 024 — Card cliente → FOSS → OpenPanel (provisionamento)
**Roger · 2026-06-17**
## O teu raciocínio está correto
1. **Card do cliente (Desk / portal)** — recolhe dados mínimos do comprador.
2. **FOSSBilling** — cria cliente + pedido + activa produto hosting.
3. **OpenPanel** — recebe API call do FOSS (`createAccount`) e cria user hosting.
4. **pfSense****não** cria conta; só encaminha tráfego WAN → Traefik → VM123.
```
Internet → 95.216.14.146 (pfSense WAN)
→ NAT :80/:443 → 10.10.10.114 (Traefik)
→ financeiro.ligbox.com.br/foss|/odoo → 10.10.10.123
→ openpanel.ligbox.com.br → 10.10.10.123:2083
```
**NAT pfSense já existente (não precisa duplicar):**
| Regra | WAN | Destino |
|-------|-----|---------|
| Traefik HTTP | 80 | 10.10.10.114 |
| Traefik HTTPS | 443 | 10.10.10.114 |
Novos hostnames só precisam de **DNS Cloudflare** → mesmo IP público.
---
## Campos obrigatórios no card (→ FOSS → OpenPanel)
| Campo no card | Vai para FOSSBilling | Vai para OpenPanel API | Notas |
|---------------|----------------------|------------------------|-------|
| **email** | Cliente `email` | `email` | Login/recuperação |
| **nome / empresa** | Cliente `first_name` / company | — | Facturação |
| **domínio** | Opcional no produto | gera `username` (7 chars + dígito) | ex: `cliente1.com` → user `cliente1x` |
| **senha painel** | Order / hosting password | `password` | Senha OpenPanel user |
| **plano** | Product / `plan_name` | `plan_name` | **Deve coincidir** com plano OpenPanel |
| **CPF/CNPJ** | Cliente custom field | — | Fiscal (Odoo fase 2) |
| **telefone** | Cliente `phone` | — | Suporte |
### Plano OpenPanel criado (VM123)
| name | id | Uso |
|------|-----|-----|
| `ligbox-site-cms` | 3 | Site/CMS Spec 018 |
| `Standard plan` | 1 | Testes |
| `Developer Plus` | 2 | Maior |
**FOSS product** deve usar `plan_name` = `ligbox-site-cms` (exacto).
---
## Config FOSSBilling → Server OpenPanel
Admin FOSS → **System → Hosting plans → New server**
| Campo | Valor |
|-------|-------|
| Manager | OpenPanel |
| Hostname | `10.10.10.123` |
| Port | **`18087`** (bridge Community) — não usar 2087 na Community |
| Secure | **No** (HTTP bridge interno) |
| Username | `ligboxadmin` |
| Password | `LbOpen805353` |
> Community: instalar bridge com `install-openpanel-community-bridge.sh`. Enterprise: port `2087` SSL Yes.
Test connection → depois associar produto hosting ao server + plano `ligbox-site-cms`.
---
## Fluxo automático (pedido pago)
```
Card cliente (email, domínio, plano, senha)
→ FOSSBilling: create client + order
→ FOSSBilling: activate hosting
→ OpenPanel.php: POST /api/users
{ email, username, password, plan_name }
→ OpenPanel: conta hosting criada
→ Email cliente com URL openpanel.ligbox.com.br
```
---
## O que o Desk precisa (Spec 023 fase 2)
No card **Serviços / Site CMS**:
- `client_email` *
- `client_name` *
- `domain` * (para username OpenPanel)
- `hosting_plan` * (dropdown: ligbox-site-cms)
- `panel_password` * (ou gerar)
- `foss_client_id` (após sync)
- `openpanel_username` (read-only após provision)