บันทึกการเปลี่ยนแปลงชีวิต

ดูว่าเราจะสร้างอะไรในเรียลไทม์ ทุก ๆ ลักษณะ, การ ซ่อม, และ การ ปรับ ปรุง ต่าง ๆ จะ ถูก ส่ง ข้าม เวที.

17,918
เปลี่ยนแปลงทั้งหมด
4,606
คุณสมบัติต่าง ๆ
4,537
แก้ไข
32
โครงการ
กรองโดยโครงการ
ทุกโครงการ17,918AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService372InitializerService300KBService74KlusterServices545MCPGatewayService43MediaService461RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,573kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,321kamo-signer-monorepo50kamolos102
กรองตามประเภท
ทุกประเภทBuild24CI523Chore670Docs226Feature4,606Fix4,537Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
April 26, 2026
FeatureKlusterServices

เพิ่มการขนส่งหน้าเว็บ WSS สําหรับเบราว์เซอร์ Softphones

Astefick's Chann pjsip ตอนนี้ได้เชื่อมการคมนาคมบนเว็บธรรมดาเมื่อ 0.0.0.0:8089 และ Trafik ยุติการทํางานของ TLS ที่ ~ (พอร์ต 443) ดังนั้น kamo-internal สามารถลงทะ...

Kamo·4mo ago
FixKlusterServices

Exposition พอร์ต 8088 โดยตรงบนบริการ PussterIP

บริการมีเพียงพอร์ต 80-8088 แผนที่ บริการภายในใช้ ~ประกาศออกไป~ (e.g. VOPSERprice API) ร้องขอ) ได้รับการจับเวลาเพราะพอร์ต 8088 ไม่มีผู้ฟัง คลัสเตอร์ลิป.

Kamo·4mo ago
FixKlusterServices

เพิ่มรายการที่ล้มเหลว

การอ้างอิงแบบถอดเสียบล้มเหลว antefirew-ความปลอดภัย. conf) แต่มันไม่มีอยู่ ปิดกั้นฝักยานเมื่อ เมาท์วูลูเม ตั้งและป้องกัน FreePBX จากการเริ่มต้น.

Kamo·4mo ago
April 25, 2026
FixKlusterServices

อนุญาตให้/ ส่วนนําหน้า/ พาธบนชุดตกแต่ง

การปรับแต่งชุดตกแต่งที่ชุดตกแต่ง. kkamocrm.com/september/... ไม่ตรงกันกับ กฎเส้นทางที่มีอยู่ (เฉพาะ / การเปิดเผย/ และ / internal / ได้รับอนุญาต) ดังนั้น Trafik ...

Kamo·4mo ago
FeatureKlusterServices

การผลิตล้มเหลว 2ban กับคุก PJSIP และสภาพถาวร

- เพิ่มความล้มเหลว 2ban-configmap.yaml กับ [เสี่ยง] และ [ฟรีพส-เว็บ] คุก การสั่งห้ามเพิ่มขึ้น (1/24/30), LANDODip, และ ตัวกรองการรักษาความปลอดภัยที่กําหนดเอง 25...

Kamo·4mo ago
FixKlusterServices

แทนที่ Coqui TTTTS ด้วย Pier TTTS (en US-Norman-medium)

รุ่น โค คี วี CTK ไม่ มี การ ตั้ง ชื่อ ผู้ พูด — แทน ที่ จะ ใช้ คํา ที่ เรียก ว่า ไพ โอ เนียร์ ที ที ที เอส เสียงของนอร์แมน [เมเดียม] ที่แน่นอน ไพเพอร์ไบนารี (~...

Kamo·4mo ago
FeatureKlusterServices

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 ...

Kamo·4mo ago
FeatureKlusterServices

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...

Kamo·4mo ago
FixKlusterServices

Add local_net for split-DNS / LAN client RTP fix

Phones on the same LAN as k1m1 connect via split DNS (domain resolves to 192.168.4.22 internally). Without local_net, Asterisk still advertises the external dom...

Kamo·4mo ago
FixKlusterServices

Persist sorcery contact=memory fix and block SIP scanner in startup.sh

- Inject [res_pjsip] contact=memory into sorcery.conf before Asterisk starts; the default sorcery-astdb SQLite backend silently drops all REGISTER contacts - ...

Kamo·4mo ago
April 24, 2026
FixKlusterServices

Move hostPath from MinIO (rclone FUSE) to local /var/lib/pbx

MinIO via rclone FUSE does not support POSIX chmod or symlink() — both required by FreePBX's module system. Changed all FreePBX and MariaDB hostPath volumes fro...

Kamo·4mo ago
FixKlusterServices

Wrap fwconsole/amportal via php for MinIO FUSE hostPath

/var/lib/asterisk is backed by MinIO via rclone FUSE which doesn't support POSIX chmod, so fwconsole scripts can't be made executable on that volume. startup.sh...

Kamo·4mo ago
FixKlusterServices

Add preStop hook and terminationGracePeriodSeconds

Containers were getting stuck in Terminating because background Asterisk processes kept running after apache2ctl (PID 1) exited. preStop hook sends SIGTERM to A...

Kamo·4mo ago
FixKlusterServices

Add bootstrap.php require to regenerated /etc/freepbx.conf

The installer writes freepbx.conf with datasource='' and a require_once for bootstrap.php, which config.php depends on to load the FreePBX class. Our regenerate...

Kamo·4mo ago
FixKlusterServices

Regenerate /etc/freepbx.conf on restart

/etc is ephemeral (not a hostPath), so /etc/freepbx.conf written by the installer is lost on every pod restart. Added else branch to regenerate it from env vars...

Kamo·4mo ago
FixKlusterServices

Bypass start_asterisk, wait for control socket instead

start_asterisk uses `pidof asterisk` which returns a false positive on pod restarts, causing the wait-for-Asterisk loop to hang. Now startup.sh starts Asterisk ...

Kamo·4mo ago
FixKlusterServices

Start Asterisk in background, wait for it, then run installer

The entrypoint.sh does not run the FreePBX installer — it only starts services. startup.sh now replicates the entrypoint setup steps, starts Asterisk in backgro...

Kamo·4mo ago
FixKlusterServices

Let entrypoint handle install, not startup.sh

FreePBX installer (php install -n) requires Asterisk to already be running. Our startup.sh was calling it before Asterisk started, causing "Error communicating ...

Kamo·4mo ago
FixKlusterServices

Mount /etc/asterisk only, not /etc, to fix PHP simplexml error

Mounting the full /etc as a hostPath volume was corrupting PHP extension loading even after seeding from the image — simplexml_load_file undefined at install ti...

Kamo·4mo ago
FixKlusterServices

Reduce CPU limits to 2:1 ratio to eliminate overcommitment

Docs 4→1 core, jibri 4→2 cores, libretranslate 2→1 core, bergamot 2→1 core, coturn 1→0.5 core. Saves ~7.5 cores off node limits.

Kamo·4mo ago
FixKlusterServices

สลับไปยังเครื่องคอมพิวเตอร์/ ฟรีพไบซ์: 17 ด้วยสถาปัตยกรรมที่ถูกต้อง

footofit/freepbx ไม่มีอิมเมจ FreePBX 17 (ถูกเปิดใช้ตั้งแต่ 2022). escodes/ freepbx: 17 (เพิ่ม Appr 2026, Astevice 21 + FreePBX 17) ต้องการ กระสวย MariaDB และขั้...

Kamo·4mo ago
ChoreKlusterServices

Drop public admin ingress; access via http://k[12]m1:8088

Admin UI is now internal-only over LAN/WireGuard on port 8088 (FreePBX's nginx bound directly on hostNetwork). No Traefik route, no Let's Encrypt cert, no publi...

Kamo·4mo ago
FeatureKlusterServices

Deppling FreePBX 17 + Jigasi SIP สะพานที่ k1m1 และ k2m1

FreePBX (Treedofit/freepbx: 17- latest) เรียกใช้ด้วยเครื่องโฮสต์ Network ดังนั้น SIP/RP รักษา IP ของลูกค้าตัวจริง ติดอยู่ 1-per-node ผ่าน โหนดเอสอีเตอร์ SIP บน ...

Kamo·4mo ago
April 23, 2026
April 21, 2026
April 20, 2026
April 19, 2026
April 18, 2026
FixKlusterServices

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.

Kamo·4mo ago
FeatureKlusterServices

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...

Kamo·4mo ago
FeatureKlusterServices

Add Docs deploy step to workflow

Kamo·4mo ago
FixKlusterServices

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...

Kamo·4mo ago
FixKlusterServices

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...

Kamo·4mo ago
FixKlusterServices

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 ...

Kamo·4mo ago
April 17, 2026
FeatureKlusterServices

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 (...

Kamo·4mo ago
FixKlusterServices

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.

Kamo·4mo ago
FixKlusterServices

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.

Kamo·4mo ago
FeatureKlusterServices

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...

Kamo·4mo ago
FeatureKlusterServices

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 ...

Kamo·4mo ago
FixKlusterServices

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...

Kamo·4mo ago
FixKlusterServices

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...

Kamo·4mo ago
FixKlusterServices

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...

Kamo·4mo ago
FixKlusterServices

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...

Kamo·4mo ago
FixKlusterServices

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 ...

Kamo·4mo ago
FixKlusterServices

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...

Kamo·4mo ago
FixKlusterServices

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...

Kamo·4mo ago

เหมือนที่คุณเห็นการขนส่ง?

ทุก คน ที่ ได้ รับ การ ปรับ ปรุง เหล่า นี้ จะ ลง ไป ใน ที่ ทํา งาน ของ คุณ โดย อัตโนมัติ. เริ่มให้อิสระและดูมันเติบโตสัปดาห์แล้วสัปดาห์เล่า.

เริ่ม เป็น อิสระ ตลอด ไปแสดงพริ้นซ์