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

9 KiB

Spec 024 — FOSSBilling + OpenPanel + Odoo 16 (VM123)

Criado: 2026-06-17
Solicitado por: Roger
Status: Concluída (v1 piloto) — 2026-06-17
Prioridade: P1
Decisão: FOSSBilling + OpenPanel + Odoo V16 · gateway pagamento fase futura
Relacionado: Spec 023 (Desk 💳), Spec 018 (Serviços)


Resumo

Componente Onde Como
FOSSBilling VM123 Docker Billing, clientes, pedidos, módulo OpenPanel
Odoo 16 VM123 Docker ERP / fiscal (fase contabilidade)
OpenPanel VM123 bare metal Hosting Site/CMS
Desk VM122 Ops — wizard, tickets, links financeiro
Gateway Fase 2 ASAAS/Iugu no FOSSBilling

VM123 — hardware

Recurso Valor
VMID Proxmox 123
vCPU 2
RAM 4 GB + swap 2 GB
Disco 25 GB
IP LAN 10.10.10.123
SSH WAN :2523
Hostname vm123-finance

Utilizadores: root, admin, mini — senha 805353
fail2ban activo · Wazuh agent → VM104


Credenciais dos serviços (VM123)

Ficheiro: deploy/vm123-finance-stack/CREDENCIAIS_SERVICOS_VM123.txt

Serviço URL interna Login Senha
FOSSBilling Admin http://10.10.10.123:8092/admin admin@ligbox.com.br LbFossAdmin805353
FOSSBilling Cliente http://10.10.10.123:8092/login ver clientes
Odoo 16 http://10.10.10.123:8069 admin@ligbox.com.br LbOdooAdmin805353
OpenPanel https://10.10.10.123:2087 ligboxadmin LbOpen805353

URLs públicas (após Traefik/DNS):

Serviço URL
FOSSBilling Admin https://financeiro.ligbox.com.br/admin
FOSSBilling Cliente / Signup https://financeiro.ligbox.com.br/login · /signup
Odoo https://financeiro.ligbox.com.br/odoo/web/login?db=ligbox
OpenPanel https://openpanel.ligbox.com.br
OpenAdmin https://openpanel.ligbox.com.br:2087

Não usar /foss — FOSSBilling está na raiz do domínio financeiro.ligbox.com.br.

Bases de dados: ver .envFOSS_MARIADB_PASSWORD, ODOO_DB_PASSWORD
Odoo DB: ligbox · master pwd gestor: admin
FOSS ↔ OpenPanel: módulo OpenPanel.php instalado · API :2087 activa


URLs (Traefik CT114)

URL Backend
financeiro.ligbox.com.br (exceto /odoo) VM123:8092 FOSSBilling
financeiro.ligbox.com.br/odoo VM123:8069 Odoo 16
openpanel.ligbox.com.br VM123:2083 OpenPanel

FOSSBilling na raiz do domínio; Odoo em subpath /odoo; OpenPanel em subdomínio dedicado.


FOSSBilling — Antispam (signup)

Problema conhecido (2026-06-17): o campo honeypot padrão bio pode ser preenchido pelo autocomplete do browser. O FOSSBilling bloqueia com Registration failed. e a UI fica no spinner sem mensagem clara.

Correção aplicada:

Item Valor
Admin → System → Antispam Honeypot activo
Nome do campo honeypot lb_hp_x9k2 (não usar bio)
Template signup Campo oculto (position:absolute, aria-hidden, autocomplete=new-password)
Script reapply deploy/vm123-finance-stack/setup-foss-antispam.sh
Patch template deploy/vm123-finance-stack/patches/mod_page_signup.html.twig

Reaplicar após rebuild do container FOSS:

ssh root@10.10.10.123
bash /opt/ligbox-ops-platform/deploy/vm123-finance-stack/setup-foss-antispam.sh

Admin manual (se script falhar): https://financeiro.ligbox.com.br/adminSystemAntispam → Honeypot field = lb_hp_x9k2.

Diagnóstico: log data/log/php_error.log no container — mensagem honeypot field was not empty.

Dois logins distintos:

Área URL Quem
Staff/Admin /admin operadores Ligbox
Cliente /login ou /signup clientes finais

Arquitectura

                    Traefik CT114
                          │
        ┌─────────────────┼─────────────────┐
        ▼                 ▼                 ▼
 financeiro/foss   financeiro/odoo   openpanel.ligbox.com.br
        │                 │                 │
        └────────┬────────┴────────┬────────┘
                 ▼                 │
           VM123 10.10.10.123      │
    ┌────────────────────────────┴───┐
    │ Docker: FOSSBilling + Odoo     │
    │ Host:   OpenPanel Enterprise   │
    └──────────────┬─────────────────┘
                   │ OpenAdmin API :2087
                   ▼
         FOSSBilling Server Manager
         (criar/suspender contas hosting)

Desk VM122 ──webhook/link──► FOSSBilling / tickets
Wizard VM112 ──company.validated──► Desk

Deploy

Pacote: deploy/vm123-finance-stack/

Ficheiro Função
proxmox-create-vm123.sh Criar VM no PVE
bootstrap-vm123.sh users, swap, docker, fail2ban
docker-compose.yml FOSS + Odoo
install-openpanel.sh OpenPanel bare metal
setup-foss-openpanel-module.sh Módulo GitHub OpenPanel.php
traefik-routes-snippet.yml Rotas CT114
README.md Passo a passo

Integração FOSS ↔ OpenPanel

Repo: stefanpejcic/FOSSBilling-OpenPanel

  • Create / suspend / unsuspend / cancel / change package
  • FOSSBilling Admin → System → Hosting Plans and ServersNew Server → Manager OpenPanel, port 2087

Onde clicar no FOSS Admin (não é em Settings)

Passo Menu / URL
1 System (barra superior) → Hosting Plans and Servers
2 Ou directo: https://financeiro.ligbox.com.br/admin/servicehosting
3 Aba Hosting Servers → botão azul New Server
4 Manager: OpenPanel · Host: 10.10.10.123 · Port: 2087 · SSL: Yes · User: ligboxadmin · Pass: LbOpen805353
5 Aba Hosting PlansNew Plan → plano ligbox-site-cms (espelhar OpenPanel)

Estado configurado (2026-06-17 — API)

Item ID / Nome Notas
Servidor VM123 OpenPanel (id 1) manager openpanel, host 10.10.10.123:2087, user ligboxadmin
Plano FOSS ligbox-site-cms (id 1) = plano OpenPanel id 3
Produto Ligbox Site CMS (id 2) slug ligbox-site-cms-hosting, preço free, domínio próprio
Test connection OK (bridge Community) porta 18087 HTTP — ver abaixo

OpenPanel Community — bridge API (sem Enterprise)

A API Enterprise (:2087/api/) não existe na Community. Solução VM123:

Componente Detalhe
Bridge openpanel-foss-bridge.servicehttp://10.10.10.123:18087
Backend opencli user-add/suspend/delete
FOSS servidor Host 10.10.10.123 · Port 18087 · SSL No
Instalar bash install-openpanel-community-bridge.sh
CSF allow 172.19.0.0/16 → porta 18087 (Docker FOSS)

Upgrade futuro: licença OpenPanel Enterprise → FOSS volta a :2087 SSL.

Card cliente → conta (Desk Spec 023)

Fase O quê Quando
A FOSS + OpenPanel + bridge + produto Ligbox Site CMS Feito 2026-06-17
B Teste pedido manual FOSS → conta OpenPanel Agora (podes encomendar no /order)
C Desk card campos (email, domínio, plano, senha painel) Spec 023 fase 2 — próximo sprint
D Webhook Desk → API FOSS client/create + order/create Após fase C

Campos card: ver PROVISIONING_CLIENT_CARD.md.

Settings (grelha Activity, Anti-Spam, Client…) é configuração de módulos — não é onde se criam servidores.


Odoo 16

  • Imagem odoo:16.0 + postgres:15-alpine
  • Uso interno Ligbox (parceiros, NF futura)
  • API existente Roger (813f08e7…) — configurar após 1.º login
  • Não expor dados sensíveis ao cliente final

Critérios de aceite

  • VM123 no ar com IP 10.10.10.123
  • docker compose up -d — FOSS + Odoo healthy
  • OpenPanel instalado — openpanel.ligbox.com.br (OpenAdmin :2087)
  • FOSSBilling → bridge → conta OpenPanel (E2E validado)
  • Traefik — FOSS raiz + /odoo + openpanel HTTPS
  • fail2ban + swap
  • Wazuh agent
  • Desk — link financeiro (Spec 023 fase 1)

Riscos (4 GB RAM)

Piloto apenas — monitorizar RAM. Se apertar: subir VM para 8 GB ou Odoo noutra VM depois.


Fora de escopo v1

  • Gateway ASAAS/Iugu
  • Hub custom financeiro.ligbox.com.br
  • Paymenter (decisão: FOSSBilling)