95 lines
3.1 KiB
Markdown
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)
|