Não reconhecido -- workers arg causando crashloop
O libretranslate CLI não aceita -- trabalhadores, apenas o gunicorn processo dentro dele faz. Passando- o fez com que a cápsula falhasse em argparse boot e Cras...
Probe timeout 10s and 2 gunicorn workers
LibreTranslate's /languages probe blocks on the gunicorn worker event loop. With a single worker translating a long chat message, the probe times out at the def...
Rewrite /etc/odbc.ini to point at $MARIADB_HOST on every boot
The escomputers/freepbx:17 image bakes /etc/odbc.ini with Server=db (the docker-compose link target). On this Kubernetes deployment MariaDB lives at \$MARIADB_H...
Configurar STUN para que o navegador ICE possa completar bidirecionalmente
Chamadas de navegador para navegador bipartidário conectadas na camada SIP, mas não tinham áudio em qualquer direcção. Correio de voz (Asterisco de via única → ...
Navegador de máquinas SIP WSS em internal.kamocrm.com (certe)
Os navegadores recusaram a ligação WebSocket para o... com código próximo 1006 porque Traefik estava servindo seu certificado padrão auto-assinado para esse nom...
Fazer com que a configuração WebRTC sobreviva ao reinício do pod
A abordagem anterior (http custom.conf com sobreposição [general]) não realmente fazer efeito porque o analisador INI do Asterisco não honra múltiplos [general]...
Activar o servidor HTTP incorporado do Asterisco em : 8089 para WebRTC /ws
Um chan pjsip `protocol=ws` transporte passeios em cima de res http websocket, que por sua vez requer que o servidor HTTP integrado do Asterisk esteja em execuç...
Expor a porta 8088 diretamente no serviço ClusterIP
O serviço tinha apenas o mapeamento da porta 80→8088. Serviços internos que utilizam **************************** (por exemplo, token de API VOIPService requisi...
Adicionar o Mapa de Configuração da Configuração de 2ban em falta para o k1m1
Referências de implantação falham2ban-config ConfigMap (jail.local + asterisco-security.conf) mas não existia, bloqueando o pod em MountVolume. Configurar e imp...
Permitir o prefixo de / domínio/ caminho no tema IngressRoute for CORS
A configuração do tema no theme.kamocrm.com/domain/... não foi regras de rota existentes (apenas /public/ e /internal/ foram permitidas), então Traefik retornou...
Substituir o Coqui TTS por Piper TTS (en US-norman-medium)
O modelo Coqui VCTK não tem colunas nomeadas — substitua Piper TTS que tem a voz exacta do Norman. Binário Piper (~3 MB) e modelo (~60 MB) são baixados por um r...
Adicione rede local para correção RTP cliente split-DNS / LAN
Telefones na mesma LAN que o k1m1 ligam- se através de DNS dividido (o domínio resolve- se para 192.168.4.22 internamente). Sem local net, Asterisco ainda anunc...
Persista em contato de feitiçaria=memória corrigir e bloquear scanner SIP em startup.sh
- Injectar [res pjsip] contact=memory em feitiçaria.conf antes de iniciar o Asterisco; a infra- estrutura SQLite da feitiçaria-astdb deixa cair silenciosamente ...
Mover o caminho da máquina do MinIO (rclone FUSE) para o /var/lib/pbx local
MinIO via rclone FUSE não suporta POSIX chmod ou symlink() — ambos requerido pelo sistema de módulos do FreePBX. Mudou todos os FreePBX e MariaDB hostPath volum...
Quebrar fwconsole/amportal via php para a máquina MinIO FUSEPath
/var/lib/asterisco é suportado por MinIO via rclone FUSE que não suporta POSIX chmod, então scripts fwconsole não podem ser tornados executáveis nesse volume. s...
Adicionar gancho e terminação preStopGracePeriodSeconds
Containers estavam ficando presos em Terminando porque fundo Asterisco os processos continuaram em execução após a saída do apache2ctl (PID 1). envia o gancho p...
Adicione bootstrap.php para regenerar /etc/freepbx.conf
O instalador escreve freepbx.conf com datasource='' e um require once para bootstrap.php, que config.php depende para carregar a classe FreePBX. Nossa versão re...
Regenerar /etc/freepbx.conf ao reiniciar
/etc é efêmero (não um hostPath), então /etc/freepbx.conf escrito pelo o instalador é perdido em cada reinicialização da cápsula. Adicionado outro ramo para reg...
Bypass start asterisco, aguarde pelo socket de controle
start asterisco usa `pidof asterisco` que retorna um falso positivo no pod reinicia, fazendo com que o laço espera-para-Asterisco pendure. Agora inicia o startu...
Iniciar o Asterisco em segundo plano, esperar e depois executar o instalador
O ponto de entrada.sh não executa o instalador FreePBX — ele só começa serviços. startup.sh agora replica as etapas de configuração do ponto de entrada, inicia ...
Deixar o identificador do ponto de entrada instalar, não iniciar. sh
O instalador do FreePBX (php install -n) requer que o Asterisco já seja Correndo. Nosso startup.sh estava chamando-o antes do Asterisco começar, causando Erro d...
Montar /etc/asterisco apenas, não /etc, para corrigir erro PHP simplexml
Montar o /etc completo como um volume hostPath estava corrompendo a extensão PHP carregando mesmo após semeamento da imagem — simplexml load file indefinido no ...
Reduza os limites de CPU para 2:1 para eliminar o excesso de comprometimento
Docs 4→1 core, jibri 4→2 cores, libretranslate 2→1 core, Bergamot 2→1 core, coturn 1→0.5 core. Salva ~7,5 núcleos fora dos limites dos nós.
Mudar para escomputers/freepbx:17 com arquitetura correta
candyofit/freepbx não tem imagem do FreePBX 17 (abandonado desde 2022). escomputadores/freepbx:17 (atualizado em Abr 2026, Asterisco 21 + FreePBX 17) requer um ...
Tls importar nome, exportar fqdn caminho; rota de e- mail usa TLSStore padrão
Um certificado/secreto por FQDN então folha CN corresponde SNI (Safari)
Remove nonexistent postfix-lmdb package, install lmdb library instead
postfix-lmdb is not a valid Alpine package; lmdb support is built into the base postfix package. The pod was CrashLoopBackOff due to apk failure.
Fix Docs image registry, add Recreate strategy to coturn/postfix, increase qdrant memory
- Docs: fix wrong image registry (redis.kamo.svc... → **************** add Recreate strategy - coturn: add Recreate strategy to prevent rolling update port conf...
Switch Postfix sasl_passwd from hash to lmdb format
Alpine postfix build does not include hash support — postmap and smtp_sasl_password_maps were silently failing, deferring every outbound relay attempt through s...
Set Traefik externalTrafficPolicy=Local to preserve client IP
With the default "Cluster" policy, kube-proxy SNATs external traffic to the node IP before forwarding to Traefik. That caused Traefik to see the node IP as the ...
Clean up legacy analytics deployment on each CI run
Delete old analytics deployment, service, and ingressroute that conflict with the kamo-analytics deployment managed by its own CI/CD pipeline.
Strip X-Frame-Options header in iframe-compatible middleware
Set X-Frame-Options to empty string to remove the SAMEORIGIN value that was being inherited, allowing CSP frame-ancestors to control iframe embedding instead.
Reset document.title in rebrand() when React overwrites it
React re-applies RSC payload after hydration, resetting the title to "analytics". Add a title check inside the MutationObserver callback so it gets corrected ev...
Replace "analytics" text nodes with "Kamo Analytics" instead of clearing
Use TreeWalker to remove all "analytics" text nodes from rendered DOM
The workspace nav title "analytics" comes from JS bundles loaded after auth, rendered as a text node next to the logo SVG. Uses TreeWalker to find and clear all...
Add guarded MutationObserver for client-side rendered logo/text
Login page and dashboard content is rendered by Next.js JS bundles, not in the HTML body, so sub_filter can't reach it. Adds a script with a busy-flag-guarded M...
Redirect favicons at nginx level, fix RSC payload escaping
- Serve favicon via nginx 302 redirect instead of trying to rewrite HTML/RSC payload href strings (cleaner, always works) - Fix RSC title replacement with pro...
Use pure sub_filter replacements instead of MutationObserver
MutationObserver caused infinite loop (DOM change -> observer fires -> DOM change). Switch to direct nginx sub_filter string replacements targeting both static ...
Comprehensive analytics rebranding for login page and dashboard
- Replace title dynamically (handles "Login | analytics", "Dashboard | analytics" etc.) - Replace "analytics" h2 text on login page with Kamo logo image - Repla...
Use MutationObserver to rebrand analytics client-side rendered UI
analytics is a Next.js app that sets title/logo via JavaScript after initial HTML load. Replaces static sub_filter approach with injected script that uses Mutat...
Purge incomplete model directories in init container
The service crashes on startup if it finds a directory in /models that has missing or partial model files. Add a sweep at init start that removes any directory ...
Remove GitHub LFS downloads, use only data.statmt.org models
GitHub raw URLs return LFS pointer files, not actual binaries. Drop enru/enar downloads entirely — LibreTranslate handles those locales. Only download the 4 pai...
Escala de bergamota para 0, atualizar imagem para mozilla/translation-service
O balde de download do modelo Google Cloud Storage (bergamot-models-sandbox) retorna 404 para todos os arquivos e o firefox-translations-models Arquivado Dez 20...
Escala de bergamota de volta para 1 réplica — falhas de tradução causadas pela vagem em falta
Bergamot estava em 0 réplicas com seu serviço ainda registrado. O Router do Provedor em TranslateService não tinha disjuntor, então cada pedido de es/fr/de/pt/i...
Remover a restrição -- load- only da LibreTranslate
Todos os pacotes de linguagem necessários são pré-instalados no volume hostPath. --load-somente estava impedindo alguns pacotes de carregar. Sem a bandeira, Lib...
Use startupProbe for LibreTranslate para lidar com downloads de modelos longos
startupProbe com 60 tentativas x 30s = janela de inicialização de 30min para downloads do modelo inicial. Após a inicialização completa, vida normal e sondas de...
Restrinja LibreTraduzir apenas para carregar modelos de linguagem suportados
Use --load- only com os 22 códigos de idioma suportados em vez de baixando todos os modelos disponíveis (~centenas de GB). Remove --update-modelos bandeira que ...
Remove invalid --load-awesome-ai-models flag from LibreTranslate
Flag does not exist in current libretranslate image. Replace with --update-models to ensure language packs are downloaded on startup.
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.