Entrypoint 핸들 설치, start.sh가 아닌
FreePBX installer (php install -n)는 이미 Asterisk가 필요합니다. 실행. 우리의 Startup.sh는 Asterisk가 시작되기 전에 호출되었습니다. "Asterisk와 함께 시작" 추락. 이제 start.sh 만 기다립니다 MariaDB 및 패치 Ap...
마운트 /etc/asterisk 만, /etc, PHP 간단한 XML 오류 수정
HostPath 볼륨으로 전체 /etc 설치는 PHP 확장을 손상 이미지에서 파종 후도 로딩 — simplexml load file undefined 설치 시간. 지금만 /etc/asterisk는 persisted입니다; /etc는에서 옵니다 이미지 및 PHP 설정 intact 유지. ...
과량 제거를 위해 2:1 비율에 CPU 한계를 감소시키십시오
Docs 4→1 핵심, 지브리 4→2 핵심, libretranslate 2→1 핵심, bergamot 2→1 핵심, coturn 1→0.5 핵심. 저장 ~7.5 노드 제한을 코어.
Escomputers/freepbx:17에 스위치 정확한 건축
피곤 / freepbx는 FreePBX 17 이미지가 없습니다 (2022). escomputers/freepbx:17 (4월 2026일 새롭게 한, Asterisk 21 + FreePBX 17)는 요구합니다 별도의 MariaDB 팟과 한 번 PHP 설치 단계. 변경 사항: - Free...
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...
Scale bergamot 0, mozilla/translation-service 이미지 업데이트
Google Cloud Storage 모델 다운로드 버킷 (bergamot-models-sandbox) 모든 파일과 firefox-translations-models repo에 대한 404을 반환 필요한 언어 쌍없이 12 월 2025 아카이브. Bergamot는 할 수 없습니다 작업 모...
Scale bergamot back to 1 replica - 누락된 팟에 의한 번역 실패
Bergamot는 여전히 서비스로 0개의 복제본에 등록되었습니다. 공급자Router 번역 서비스에는 회로 차단기가 없었다, 그래서 es/fr/de/pt/it/를 위한 각 요구 pl/ru/uk/tr/ro/id/vi/ar는 반복된 연결을 가진 죽은 ClusterIP를 망치로 렸습니다 시도,...
LibreTranslate에서 --load-only 제한 제거
필요한 모든 언어 패키지는 hostPath 볼륨에 미리 설치됩니다. --load-only는 적재에서 몇몇 포장을 막고 있었습니다. 깃발 없이, LibreTranslate는 시작에 모든 설치된 패키지를로드합니다.
StartProbe for LibreTranslate를 사용하여 긴 모델 다운로드를 처리하십시오
60개의 시도 x 30s = 30min 시작 창을 가진 startProbe 초기 모델 다운로드. 시작 완료 후, 정상 수명 and readiness probes take over with no 인공적으로 긴 지연.
Restrict LibreTranslate는 지원되는 언어 모형만 적재합니다
사용 --load-only 와 22 지원 언어 코드 대신 모든 유효한 모델 다운로드 (~GB의 Chundreds). 기타 제품 --update-models 플래그는 모든 것을 다운로드합니다.
LibreTranslate에서 잘못된 --load-awesome-ai-models 플래그 제거
Flag는 현재 libretranslate 이미지에 존재하지 않습니다. 관련 제품 --update-models to keep language packs are 다운로드 에 시작.
Add LibreTranslate permission init container, scale Bergamot to 0
LibreTranslate was crashing with PermissionError on packages subdir. Added busybox init container to mkdir + chmod 777 the mounted hostPath before the main cont...
JVB_ADVERTISE_IPS must be public IP, not Wireguard IP
Was 10.8.1.1 (Wireguard private) — guests' browsers can't reach this. Changed to 75.83.113.11 (public IP). This is why guests kept getting ICE restarts every ~1...
Disable mod_token_verification via custom plugin override to stop guest kicks
The MUC token_verification module re-validates tokens and demotes guests from PARTICIPANT to VISITOR after ~60 seconds, causing Jicofo to kick them. The module ...
Add guest domain to token_verification_allowlist, increase smacks timeout
Guests authenticate via Meet-anonymous on guest.meet.Meet but the MUC token_verification module was re-checking them and demoting their role from PARTICIPANT to...
Disable Jicofo auth module to prevent 1-minute participant kick
Jicofo's AbstractAuthAuthority has a hardcoded 1-minute auth session lifetime that ignores the config file setting. After 60 seconds, Prosody demotes participan...
Use room names (not full JIDs) for all brewery MUC configs
Both Jicofo and JVB Docker images append @XMPP_INTERNAL_MUC_DOMAIN to the brewery room name automatically. Using full JIDs like **************** caused double-d...
Use TCP probe on port 9090 for JVB health checks instead of HTTP on 8080
JVB's REST API port 8080 conflicts with CockroachDB's admin UI on the same hostNetwork. The JVB_OHTTP_SERVER_PORT env var is not recognized by this JVB image ve...
Resolve JVB crash loop — wrong MUC JID + port 8080 conflict
Two issues causing JVB to crash in a loop for 43+ hours: 1. JVB_BREWERY_MUC was **************** (full JID) but JVB appends XMPP_INTERNAL_MUC_DOMAIN automat...
JVB_BREWERY_MUC should be room name only, not full JID
Was **************** which caused JVB to construct a double-domain JID **************** with an @ in the domain part — crashing JVB with XmppStringprepException...
Add dnsPolicy ClusterFirstWithHostNet to JVB StatefulSets so hostNetwork pods can resolve cluster DNS
Reference *** instead of non-existent turn-secret in Prosody deployment
Enable auto-truncate on embedding model to prevent 413 errors
Add --auto-truncate flag so inputs exceeding the 256 token limit are silently truncated instead of rejected with a validation error.
Load embedding model from local hostPath to prevent HuggingFace download failures
The embedding-model pod was in CrashLoopBackOff because it couldn't download the model from HuggingFace on startup (network/DNS issue). Mount the model from a h...
Auto-cert service not renewing expired SSL certificates
The auto-cert service was importing expired certs from shared storage and skipping Certificate CR creation, so cert-manager couldn't manage renewals. Also fixed...
Fix kubectl not found in pod, add docs alias, proactive SUBDOMAINS
- Mount /usr/local/bin/kubectl from host via hostPath instead of failing apt-get install (kubectl not in default Debian repos) - Add "docs" to SUBDOMAINS list...
Remove forced WebSocket headers from media middleware
Traefik v3 handles WebSocket Upgrade/Connection headers natively. Remove forced headers that broke non-WebSocket API requests.
Add system account to all NATS configs
Add $SYS account with admin credentials to k0m1, k1m1, and k2m1 NATS configs. Enables nats CLI cluster management operations (peer removal, step-down, etc.) for...
