O que a Komexi suporta
Plataformas, formatos, limites e integrações documentados no código.
Visão geral
Esta página lista o que o monorepo Komexi implementa hoje. Use o painel para configurar telas e conteúdo.
Players e plataformas
| Plataforma | App no repositório | Instalação típica | Player web |
|---|---|---|---|
| Navegador / PWA | apps/player | URL player.komexi.com.br | Sim |
| Fire TV / Fire Stick (Android) | apps/player-firestick | APK sideload via ADB | WebView carrega o PWA |
| Samsung Tizen TV | apps/player-tizen | .wgt no modo desenvolvedor | Pacote local ou URL hospedada |
| LG webOS | apps/player-webos | .ipk (ares-install) | Idem |
| Windows 10/11 | apps/player-windows | Instalador NSIS/MSI (Tauri) | WebView2 |
Android TV genérico não tem app dedicado no repositório; use o APK Fire TV em sideload ou o player no navegador.
Navegadores no player web
O player é pensado para Chrome / Chromium (desktop, TV e WebView). Em Tizen ≤ 5 e webOS antigos o service worker pode ser desativado; o sync roda na thread principal.
Idioma da interface
| Área | Idioma |
|---|---|
| Painel CMS | Português (BR) |
| Player | Português (BR) |
| App Gestão | Português (BR) |
| Documentação | Português (BR) |
Tipos de conteúdo na playlist
Cada tipo corresponde a um app em Playlists → editor (registry CMS_APP_DEFINITIONS):
| Nome no painel | Uso |
|---|---|
| Imagem | Foto estática |
| Documento com páginas | |
| Vídeo | Arquivo de vídeo enviado |
| YouTube | Vídeo do YouTube |
| Página web | URL HTTPS |
| Anúncio | Texto de aviso |
| Relógio | Hora local |
| Clima | Previsão (configuração obrigatória) |
| Contagem regressiva | Campanha com data fim |
| Notícias | Feed de notícias |
| Loterias | Resultados |
| Cotações | Painel financeiro BRL |
| Aniversariantes | Lista de nomes |
| Cardápio / Menu | Itens e preços na cena |
| Oferta (cartaz) | Cartaz de promoção |
| Marquee | Texto rolante |
| QR Code | Código para leitura |
| Quiz | Perguntas na tela |
| Frase do dia | Citação |
| Boas-vindas | Mensagem de entrada |
Detalhe de cada tipo: seção Tipos de conteúdo.
Mídia: formatos e tamanhos máximos
Valores padrão em apps/cms/.env.example (podem ser sobrescritos no deploy):
| Tipo | Variável | Padrão |
|---|---|---|
| Imagem | MEDIA_IMAGE_MAX_BYTES | 25 MiB (26 214 400 bytes) |
| Vídeo | MEDIA_VIDEO_MAX_BYTES | 120 MiB (125 829 120 bytes) |
MEDIA_PDF_MAX_BYTES | 50 MiB (52 428 800 bytes) | |
| Quota da organização | STORAGE_ORG_QUOTA_BYTES | 1 GiB |
Imagens de integração/ERP devem ser HTTPS (validação em packages/contracts).
Preços e ofertas
| Regra | Valor |
|---|---|
| Valores monetários | Centavos inteiros (priceCents, offerPriceCents) |
| SKU na API ERP | 1–120 caracteres |
| Push ERP por requisição | até 1000 itens |
| Texto alternativo de preço | até 80 caracteres |
Presença, offline e alertas
| Conceito | Valor no código |
|---|---|
| Tela online | Último heartbeat há ≤ 120 segundos (SCREEN_ONLINE_THRESHOLD_MS) |
| Bundle offline no player | Válido 72 horas (PLAYER_OFFLINE_BUNDLE_VALIDITY_MS) |
| Poll da playlist (padrão) | 60 s |
| Alerta offline (padrão) | Tela ausente ≥ 2 min (SCREEN_OFFLINE_ALERT_MINUTES) |
| Cooldown do mesmo alerta | 30 min (SCREEN_PRESENCE_ALERT_COOLDOWN_MINUTES) |
Cobrança (Stripe)
Com BILLING_ENABLED=false (padrão no .env.example), o produto roda em modo gratuito sem limite de telas imposto pelo código de billing. Com billing ativo, planos e checkout usam Stripe. Veja Assinatura.
Integrações
| Canal | Escopos de token |
|---|---|
| ERP (preços) | prices:write |
| MCP (assistentes) | mcp:read, mcp:write |
Tokens usam prefixo kmx_live_…, criados em Configuração → Integrações.
App Gestão (celular)
| Hoje | Em breve |
|---|---|
| Lista de telas, filtros, alertas offline, push | Abas Preços e Oferta (placeholder). Veja Em breve |
Instalação: App Gestão.