Thêm phương tiện trực tuyến WSS cho điện thoại mềm của trình duyệt
Astesk'schan pjsip bây giờ kết nối một đơn vị truyền tải đồng bằng WebSocket trên 0.0.0:8089 và Traefik sẽ chấm dứt TLS tại * CLPES (cơ sở 443) Vì vậy kamo-i nộ...
Mở cổng 8088 trực tiếp trên dịch vụ ClusterIP
Dịch vụ chỉ có bản đồ của cảng 80-8088. Dịch vụ nội bộ dùng (TIẾNG CÒI) (e.g. VOIPSERvice API preign yêu cầu) đã được tính giờ bởi vì cổng 8088 không có người n...
Thêm thất bại 2ban-config cấu hìnhMap cho k1m1
Việc triển khai tham chiếu thất bại 2ban-config cấu hìnhMap (jail.local + cảnh báo.conf) nhưng nó không tồn tại, chặn tàu lại MountVolume. Cài đặt và ngăn FreeP...
Cho phép/ gọi tiền tố đường dẫn về sắc thái InpagRoute cho CORS
Name Các quy tắc đường xá hiện có (chỉ / công chúng/ và / / / / / / / / / nội bộ/ đã được chấp nhận), vì vậy Traefik trả lại 503 mà không có tiêu đề CORS, làm c...
Sản xuất thất bại 2ban với nhà tù PJSIP và trạng thái kiên trì
- Thêm thất bại 2ban-configmap.yaml với [có nhiều rủi ro] và nhà tù freepx-web], Lệnh cấm leo thang gia tăng (1h24h30d trần nhà), LAN phớt lờ, và a Tự chọn - Lắ...
Thay thế coqui TTS với Piper TTS (en US-norman-medium)
Mô hình Coqui VCTK không có loa tên — thay thế bằng Piper TTS chính xác là giọng Norman [mium]. nhị phân Piper (~3 MB) và mô hình (~60 MB) được tải về bởi một c...
Integrate Coqui TTS with norman voice (VCTK p267)
- Deploy coqui-tts server (VCTK VITS model, CPU-only) as ClusterIP service on port 5002 with model cache at /var/lib/coqui-tts on k1m1 - Inject coqui_tts.agi ...
Add LAN DNS pod for split-DNS on k1m1
Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...
Thêm net cục bộ cho sửa chữa máy khách RPPS / LAN
Điện thoại cùng lúc với LAN với kết nối k1m1 bằng kết nối bị chia cắt DNS (sự giải quyết tạm cho 192.168.4.22 trong nội bộ). Nếu không có mạng cục bộ, Astesk vẫ...
Liên lạc ma thuật bền bỉ = thư mục sửa chữa và chặn máy quét SIP khi khởi động
- Inject [re pjsip] liên lạc = memory vào ma thuật.conf trước khi Astesk bắt đầu; hậu phương dạng ảo thuật mặc định thả xuống âm thầm tất cả các liên lạc reGIST...
Di chuyển máy Path từ MinIO (rcone Foulo) sang địa phương /var/libx/pbx
MinIO thông qua Rccone qua từ điển không hỗ trợ PSIX chmod hoặc smlink () — cả hai Cần thiết bởi hệ thống mô- đun của FreePBX. Name máy chủ nút là đĩa địa phươn...
Gói fwconsole/amportal thông qua php cho máy đọc sách MinIO
Comment PSIX chmd, do đó các tập lệnh fwconsole không thể thực hiện được trên âm lượng đó. Chạy.sh bây giờ tạo tập lệnh bọc trong ephemeral /usr/local/bin rằng ...
Thêm móc trước và tắtGracePerodSecond
Những người ngăn chặn bị mắc kẹt trong sự kết hợp bởi vì nền tảng của loài khỉ Quá trình tiếp tục chạy sau khi apache2ctl (PID 1) thoát. móc trước khi dừng gửi ...
Thêm khởi động.phap yêu cầu tái tạo /etc/ Freepbx.conf
Trình cài đặt viết freepbx.conf với tài nguyên=' và một yêu cầu once để khởi động.php, mà cobig.p phụ thuộc vào nạp lớp FreePBX. Phiên bản tái tạo của chúng tôi...
Tái tạo /etc/ freepbx.conf khi khởi chạy lại
/etc là ephemeral (không phải là một máy path), do đó, /etc/ freepbx.conf viết bởi Bộ cài đặt bị mất khi mỗi tàu khởi động lại. Thêm chi nhánh để tái tạo Nó xuấ...
Bypass khởi động chearch, wait for Control socket place
khởi chạy cảm biến sử dụng 'pidof astesk` mà trả về một dương dương dương dương dương dương dương trên kén Khởi động lại, gây ra vòng lặp chờ rủi ro. Bây giờ b...
Khởi động Astesk trong nền, đợi nó, rồi chạy bộ cài đặt
Điểm nhập.sh không chạy bộ cài đặt FreePBX — nó chỉ khởi động phục vụ. Chạy.sh bây giờ sao chép các bước thiết lập điểm nhập, bắt đầu Theo dõi phía sau, chờ ổ c...
Hãy để điều khiển mục cài đặt, không phải khởi chạy.sh
Trình cài đặt FreePBX (php install -n) yêu cầu A phân cách sẵn sàng đang chạy. Sự khởi đầu của chúng ta. "Error liên lạc với Astesk". Bây giờ khởi động.sh chỉ c...
Chỉ lắp /etc/chearch, không phải /etc, để sửa lỗi PHP đơn giảnxml
Lắp kết tập tin toàn bộ /etc như một máyPath là làm hỏng phần mở rộng PHP tải ngay cả sau khi gieo từ ảnh — đơn giảnxl load file không xác định lúc cài đặt. Bâ...
Giảm giới hạn CPU xuống 2:1 tỷ lệ để loại bỏ quá cam kết
Trung tâm Doc 4.Jribri 4 lõi 2. Bergamot 2 vội 1 lõi, đồng bộ 1, 0.5 lõi. Lưu ~7. 5 lõi ngoài giới hạn nút.
Chuyển tới ese máy tính/ Freepbx:17 với kiến trúc đúng
không có hình ảnh FreePBX 17 (bị từ bỏ từ năm 2022). Máy tính/ freepbx:17 (đã nâng cấp Apriated 2026, Asteppy 21 + FreePBX 17) yêu cầu Một kén giữ chân MariaDB ...
Name
Quản lý UI bây giờ chỉ có nội bộ trên LAN/Wre Guard trên cổng 8088 ( FreePBX's nginx được kết nối trực tiếp trên hostNetwork). Không có đường Traefik, không đượ...
Triển khai cầu FreePBX 17 + Jigasi trên k1m1 và k2m1
FreePBX (tiredofit/ freepbx:17-latest) chạy với máyNetwork do đó SIP/RP Bảo tồn IP thực sự của khách hàng, mắc kẹt một nút bằng nút. SIP on 5060 UDP/TCP (5061 T...
Tls nhập tên, xuất khẩu đường dẫn fqdn; đường dẫn thư sử dụng giá trị mặc định USDStore
Một chứng nhận/bảo mật cho mỗi FQDN vì vậy lá CN trùng với SN (Safari)
Sử dụng ECDSA P-256 cho các thông số đại diện cert-manger và di chuyển RSA
Ghi chú danh sách các nhà sản xuất không sử dụng; nhà SANs đến từ nhật ký Traefik
Đồng bộ hoá SebDOMAINS với bí danh DNS sản phẩm (thường là ứng dụng, dấu; loại bỏ phương tiện)
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.
Add weekly image prune and journal vacuum CronJob for k1m1
CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI...
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 ...
Add geo-database-url to analytics-secret for CockroachDB geolite lookup
Kamo Analytics uses this URL to look up visitor IP→country/region/city from the **************** tables. Uses kamo user with password auth and sslmode=require (...
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.
Add iframe-compatible middleware chain for kamo-analytics
Add security-headers-allow-iframe (no X-Frame-Options) and kamo-middlewares-allow-iframe chain so analytics can be embedded in iframes from internal.kamocrm.com...
Move kamo-analytics to own repo, keep only postgres in KlusterServices
- Remove analytics deployment, service, and nginx-configmap (now owned by kamo-analytics project with its own CI/CD pipeline) - Remove analytics-ingressroute ...
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...
Như những gì anh thấy vận chuyển?
Mỗi một bản cập nhật này đều được tự động cập nhật trong không gian làm việc của bạn. Bắt đầu tự do và xem nó lớn lên tuần này qua tuần khác.