クラッシュループを引き起こしている未認識の -- ワーカー ラグをドロップ
Libretranslate CLI は --workers を受け入れません。 内側に加工します。 それを渡すと、Podがargparseに失敗する boot と CrashLoopBackOff (1384 は k1m1) で 5d で再起動します。 イメージ すでにデフォルトで4つの同期ワーカーに、リサイクルなし...
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...
ブラウザ ICE が双方向に完了できるように STUN の設定
SIP 層で接続された 2 パーティ ブラウザーにブラウザー コールを呼び出しますが、 いいえ 可聴周波方向。 ボイスメール(片道Asterisk→ブラウザ)機能 Asteriskのsymmetric-RTPフォールバックがブラウザを学習できるため 任意のインバウンドパケットからアドレス。 両サイドの2つのパーティーブ...
ホストブラウザ内部.kamocrm.com上のSIP WSS (実際の証明書)
ブラウザは、WebSocket接続を拒否しました。 Traefikが自己署名されたデフォルト証明書を提供していたため、コード1006を閉じる そのホスト名(Let's Encrypt の cert によってカバーされていない) 他のkamocrm.comエンドポイント)。 curl はテストしたからのみ機能していた -...
WebRTC 設定を有効化 pod の再起動
前のアプローチ (http custom.conf と [general] オーバーライド) はなかった AsteriskのINIパーサーが複数の名誉を認めないため、実際に効果を取る [general] セクションには、 docs が暗黙的に: enabled=no を含ま http additional.conf は...
Asterisk 組み込み HTTP サーバを有効にします。 :8089 WebRTC /ws
Res http websocket の上に chan pjsip の `protocol=ws` のトランスポートに乗る、 つまり、Asterisk の組み込み HTTP サーバを稼働させる必要があります。 ザ・オブ・ザ・ デフォルト FreePBX 17 は、そのサーバーが無効にされているので、SIP-over-W...
ClusterIPサービスで直接露出ポート8088
ポート 80→8088 マッピングのみをサービスにしました。 内部サービスの利用 メニュー (例:VOIPService APIトークン リクエスト) ポート8088がリスナーがなかったため、タイミングアウト クラスタIP.
K1m1 の ConfigMap の 行方不明の追加
デプロイメントの参照は2ban-config ConfigMap (jail.local + asterisk-security.conf は存在せず、Podをブロックする マウントボリューム。 FreePBXの起動と防止.
/domain/ パスプレフィックスを CORS のテーマ IngressRoute で許可する
Theme.kamocrm.com/domain/ で設定したテーマは、 既存のルートルール(/public///internal/のみ)で、Trefik CORSヘッダなしで503を返し、ブラウザがフェッチを拒否する。 HTTP と HTTPS IngressRoute ルールの両方に PathPrefix('/do...
Coqui TTSをPiper TTS(en US-norman-medium)に置き換える
Coqui VCTKモデルには、スピーカーの名前が付けられていないため、Piper TTSに置き換えられます。 正確にノーマン[中] 声。 パイパーバイナリ(〜3 MB)とモデル(〜60 MB) 最初に実行してキャッシュされた init コンテナによってダウンロードされます。 /var/lib/piper/{bin,m...
Split-DNS/LANクライアント RTP 修正用に local net を追加
K1m1と同じLAN上の電話は、分割されたDNSを介して接続します(ドメインが解決する) 192.168.4.22 内部で。 local net がなければ、Asterisk はまだ広告しています SDP の外部ドメインを LAN クライアントにルーティングし、パブリック IP 経由で RTP をルーティングします。 ...
Persist の sorcery contact=memory の苦境およびブロック SIP の走査器 の start.sh
- Asteriskが始まる前に、 [res pjsip] contact=memory を sorcery.conf に注入します。 デフォルト sorcery-astdb SQLite バックエンドは、すべての REGISTER コンタクトを静かにドロップします。 - 既知のSIPスキャナー87.246.54.22...
MinIO (rclone FUSE) からローカル /var/lib/pbx に移動する
Rclone FUSE による MinIO は POSIX chmod や symlink() をサポートしていません。 FreePBXのモジュールシステムが必要です。 すべてのFreePBXとMariaDBを変更 hostPath は /mnt/shared-files/pbx/ から /var/lib/pbx/ ま...
MinIO FUSE hostPath 用の PHP 経由で fwconsole/amportal をラップ
/var/lib/asterisk は、サポートしていない rclone FUSE 経由で MinIO がバックアップされます。 POSIX chmod なので fwconsole スクリプトは、そのボリュームで実行可能にすることはできません。 boot.sh は ephemeral /usr/local/bin で ...
プレストップホックと終了GracePeriodSecondsを追加
コンテナは、バックグラウンドAsteriskのために用語集に立ち往生していた apache2ctl (PID 1) が終了した後に実行されるプロセス。 preStopのホックは送ります Kubernetesが容器を殺す前にAsteriskにSIGTERMはきれいにすることを可能にします ポートのリリースと、次のPodが...
Boottrap.php を追加して /etc/freepbx.conf を再生成する必要があります
インストーラは、datasource='' と require once で freepbx.conf を記述します。 boottrap.php では、config.php は FreePBX のクラスを読み込みます。 「Class FreePBXが見つからなかった」という2つのバージョンがリリースされました。 すべて...
再起動時に /etc/freepbx.conf を再生する
/etc は ephemeral ( hostPath ではなく) なので /etc/freepbx.conf は インストーラは、すべてのPodの再起動で失われます。 再生するブランチを追加 boottrap.php が既に存在しているときに env vars から、admin UI は 続いているすべてのブーツでM...
Start asterisk をバイパスし、代わりに制御ソケットを待ちます
start asterisk は `pidof asterisk` を使って、 Pod で false 正を返します。 再起動すると、待ち合わせループが掛かるようになります。 スタートアップ.shが始まります Safe asterisk 経由で直接アスタリスク(階段ソケット/ピッドファイルをクリアした後) 制御ソケット...
バックグラウンドでAsteriskを起動し、それを待って、インストーラを実行します
Entrypoint.sh は FreePBX インストーラーを実行していません。 サービス。 boot.sh は、エントリーポイントのセットアップ手順を再現しました。 バックグラウンドでAsterisk、そのソケットが準備されるのを待ってから、実行します php は最初の起動時にインストールします。その後、Apach...
エントリーポイント ハンドル インストール, 起動しません.sh
FreePBX インストーラー (php install -n) は、Asterisk が必要です。 ランニング。 スタートアップ.sh は、Asterisk が起動する前に呼び出されました。 「Asteriskで通信するエラー」クラッシュ。 スタートアップ.sh は待ち合わせのみ MariaDB と Apache の...
/etc/asterisk を /etc だけマウントし、PHP の単純なxml エラーを修正
HostPath のボリュームとして /etc をマウントすると、PHP の拡張子が破損していた 画像から参照した後でも読み込み — easyxml load file undefined インストール時間 今だけ/etc/asteriskは主張されます;/etcはから来ます PHP の config の intact...
CPUの限界を2:1の比率に減らして下さい過コミットを除去して下さい
Docs 4→1 コア、ジブリ 4→2 コア、libretranslate 2→1 コア、 ベルガモット2→1コア、コターン1→0.5コア。 ノードの制限を離れた~7.5コアを保存します.
正しいアーキテクチャでescomputers/freepbx:17に切り替える
疲労/freepbx に FreePBX 17 イメージがありません(2022 年以来の放棄)。 escomputers/freepbx:17 (updated Apr 2026, Asterisk 21 + FreePBX 17) 必要 別の MariaDB pod と 1 回 php のインストール手順。 変更点...
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...
スケールベルガモットを0にし、mozilla/translation-serviceにイメージを更新して下さい
Googleクラウドストレージモデルのダウンロードバケット(ベルガモットモデルサンドボックス) すべてのファイルとfirefox-translations-modelsリポジトリの404を返す 必要な言語ペアなしで12月2025をアーカイブしました。 ベルガモットはできない 作業モデルのソースが見つかるまで起動します。...
スケールベルガモット バック 1 レプリカ — 欠落したポッドによって引き起こされる翻訳失敗
ベルガモットは、サービスがまだ登録されて0のレプリカでした。 プロバイダーロイター TranslateService では、回路ブレーカがなかったため、es/fr/de/pt/it/ のすべてのリクエスト pl/ru/uk/tr/ro/id/vi/ar は繰り返された関係との死んだ ClusterIP を槌で打ちました...
LibreTranslate から --load-only 制限を解除
HostPath のボリュームに、必要な言語パッケージはすべてプリインストールされます。 --load-only は、パッケージの読み込みを防止していました。 フラグなしで、 LibreTranslate は、インストールしたすべてのパッケージをスタートアップにロードします.
長いモデルのダウンロードを処理するためにLibreTranslate用のStartupProbeを使用する
スタートアップProbe は 60 回 x 30s = 30 分起動ウィンドウを試みます。 初期モデルのダウンロード スタートアップが完了したら、通常のライブネス そして、準備の調査は人工的な長い遅れなしで取ります.
LibreTranslate を制限し、サポートされている言語モデルのみを読み込む
--load-only を 22 のサポートされている言語コードではなく使用 利用可能なすべてのモデルをダウンロードします。 (GB の~ハンター). 削除 --update-models フラグは、すべてをダウンロードします.
LibreTranslate から無効 --load-awesome-ai-models フラグを削除
フラグは現在の libretranslate イメージに存在しません。 交換する --update-models は起動時に言語パックがダウンロードされるようにします.