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íniofinanceiro.ligbox.com.br.
Bases de dados: ver .env — FOSS_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/admin → System → Antispam → 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 Servers → New 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 Plans → New 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.service → http://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)