STUN konfigurieren, damit Browser ICE bidirektional abschließen kann
Zwei-Parteien-Browser-zu-Browser-Anrufe an der SIP-Schicht verbunden, hatte aber keine Audio entweder Richtung. Voicemail (One-way Asterisk - Browser) funktioni...
Host Browser SIP WSS auf intern.kamocrm.com (echte Zertifikate)
Browser verweigerten die WebSocket-Verbindung zu ************ mit dem Code 1006, weil Traefik seine selbstsignierte Standard-Zertigung servierte für diesen Host...
Machen WebRTC config überleben pod Neustart
Der vorherige Ansatz (http_custom.conf mit [allgemeinem] Override) nicht tatsächlich wirksam, weil Asterisk INI Parser nicht ehre mehrere [allgemeine] Abschnitt...
Asterisk integrierten HTTP-Server auf :8089 für WebRTC /ws
Ein chan_pjsip-Transport fährt auf res_http_websocket, die wiederum benötigt, dass der eingebaute HTTP-Server von Asterisk läuft. Die Standard FreePBX 17 instal...
Port 8088 direkt auf ClusterIP-Dienst auszusetzen
Service hatte nur Port 80 bis 8088 Mapping. Interne Dienstleistungen in Anspruch nehmen ************ (z.B. VOIPService API Token Anfragen) waren Timing aus, wei...
Vermisste fail2ban-config ConfigMap für k1m1 hinzufügen
Einsatzreferenzen fail2ban-config ConfigMap (jail.local + asterisk-security.conf) aber es existierte nicht, blockiert die Hülse an MountVolume.SetUp und das Ver...
Lassen /domain/ Pfad-Präfix auf Thema IngressRoute für CORS
Das Thema Konfiguration unter theme.kamocrm.com/domain/... wurde nicht von der bestehende Streckenregeln (nur / öffentlich/ und /intern/ erlaubt), also Traefik ...
Coqui TTS mit Piper TTS (en_US-norman-medium) ersetzen
Coqui VCTK-Modell hat keine benannten Lautsprecher - ersetzen mit Piper TTS, die die genaue norman[medium] Stimme. Piper-Binär (ca. 3 MB) und Modell (ca. 60 MB)...
local_net für split-DNS / LAN Client RTP fix hinzufügen
Telefone im selben LAN wie k1m1 über split DNS verbinden (domain löst auf 192.168.4.22 intern). Ohne local_net wirbt Asterisk immer noch für die externe Domain ...
Bestehender Zauberkontakt=Speicher fix und blockiert SIP-Scanner im Start.sh
- Injizieren [res_pjsip] contact=Speicher in sorcery.conf bevor Asterisk beginnt; das Standard-Wrerei-astdb SQLite Backend lässt lautlos alle REGISTER-Kontakt...
Verschieben Sie hostPath von MinIO (rclone FUSE) nach lokal /var/lib/pbx
MinIO via rclone FUSE unterstützt POSIX chmod oder symlink() nicht benötigt durch das Modulsystem von FreePBX. Alle FreePBX und MariaDB geändert hostPath-Volume...
Wrap fwconsole/amportal via php für MinIO FUSE hostPath
/var/lib/asterisk wird von MinIO über rclone FUSE unterstützt, das nicht unterstützt POSIX chmod, so dass fwconsole-Skripte auf diesem Volume nicht ausführbar s...
PreStop-Haken und Kündigung hinzufügenGracePeriodSeconds
Container wurden in Terminierung stecken, weil Hintergrund Asterisk Prozesse weitergelaufen, nachdem apache2ctl (PID 1) beendet wurde. preStop Hook sendet SIGTE...
Bootstrap.php hinzufügen, um /etc/freepbx.conf zu regenerieren
Der Installer schreibt freepbx.conf mit datasource=' und a require_once für bootstrap.php, von welcher config.php abhängt, um die FreePBX-Klasse zu laden. Unser...
Regenerieren /etc/freepbx.conf beim Neustart
/etc ist ephemeral (kein hostPath), also /etc/freepbx.conf geschrieben Installer geht bei jedem Pod-Restart verloren. Zusätzliche Zweige zu regenerieren es von ...
Bypass start_asterisk, warten Sie stattdessen auf Steuerbuchse
start_asterisk verwendet "pidof asterisk", das ein falsches Positives auf pod zurückgibt Startt wieder, wodurch die Warte-für-Sternchen-Schleife hängt. Jetzt st...
Starten Sie Asterisk im Hintergrund, warten Sie darauf, dann installieren Sie Installer
Der Entrypoint.sh führt nicht mit dem FreePBX Installer . es startet nur Dienstleistungen. startup.sh repliziert jetzt die Eingabepunkt-Setup-Schritte, beginnt ...
Lassen Sie entrypoint handle install, not startup.sh
FreePBX Installer (php install -n) erfordert Asterisk bereits Laufen. Unser Startup.sh rief es an, bevor Asterisk begann, was "Fehler kommunizieren mit Asterisk...
Mount /etc/asterisk only, not /etc, um PHP simplexml Fehler zu beheben
Das Montieren der vollen /etc als HostPath-Volumen beschädigt PHP-Erweiterung Laden auch nach Aussaat aus dem Bild - simplexml_load_file undefiniert bei der Ins...
Reduzierung der CPU-Grenzen auf 2:1 Verhältnis, um Überbindungen zu beseitigen
Docs 4 x 1 Kern, jibri 4x2 Kern, libretranslate 2 x 1 Kern, bergamot 2 x 1 Kern, Coturn 1 x 0,5 Kern. Speichert 7,5 Kerne von Knotengrenzen.
Wechsel zu escomputern/freepbx:17 mit der richtigen Architektur
tiredofit/freepbx hat kein FreePBX 17 Bild (seit 2022 aufgegeben). escomputer/freepbx:17 (aktualisiert Apr 2026, Asterisk 21 + FreePBX 17) benötigt eine separat...
Tls Import Namensgebung, Export fqdn Pfad; Mail-Route verwendet Standard TLSStore
Ein Zertifikat/Geheimnis pro FQDN, also Blatt CN entspricht SNI (Safari)
Entfernen Sie nicht vorhandenes Postfix-lmdb-Paket, installieren lmdb Bibliothek statt
postfix-lmdb ist kein gültiges Alpenpaket; lmdb Unterstützung ist eingebaut das Basis-Postfix-Paket. Die Hülse war CrashLoopBackOff wegen apk Ausfall.
Docs Bildregistrierung beheben, Strategie hinzufügen, um coturn/postfix zu erstellen, qdrant Speicher zu erhöhen
- Docs: falsche Bildregistraturen beheben (redis.kamo.svc... ************ fügen Rekrekieren Strategie - Coturn: Rek erstellen Strategie hinzufügen, um rollende ...
Wechsel Postfix sasl_passwd von hash zu lmdb format
Alpine postfix bauen beinhaltet keine hash Unterstützung . Postmap und smtp_sasl_password_maps scheiterten still und verfehlten jedes Outbound Relais-Versuch du...
Set Traefik externalTrafficPolicy=Local, um Client IP zu erhalten
Mit der Standard-"Cluster"-Politik, kube-proxy SNATs externen Datenverkehr auf den Knoten IP vor der Zuordnung an Traefik. Das brachte Traefik zu sehen der Knot...
Bereinigen Legacy Analytics Einsatz auf jedem CI-Lauf
Löschen Sie alte Analytik Bereitstellung, Service und Ingressroute, dass Konflikt mit dem Kamo-Analyse-Einsatz, der von einer eigenen CI/CD-Pipeline verwaltet w...
Strip X-Frame-Options Header in iframe-kompatibler Middleware
Setzen Sie X-Frame-Optionen auf Leerkette, um den SAMEORIGIN-Wert zu entfernen das wurde vererbt, so dass CSP-Rahmen-Ahnen zu kontrollieren iframe Einbettung st...
Reset document.title in rebrand() wenn React es überschreibt
React setzt RSC-Nützlast nach Hydratation erneut ein, um "Analytik". Fügen Sie einen Titel-Check innerhalb der MutationObserver Callback, so dass es wird jedes ...
Ersetzen Sie "analytische" Textknoten mit "Kamo Analytics" statt Clearing
Verwenden Sie TreeWalker, um alle "analytics" Textknoten von gerenderten DOM zu entfernen
Der Workspace-Nist "analytics" stammt von JS-Bundles, die nach auth, geladen werden. als Textknoten neben dem Logo SVG dargestellt. Nutzt TreeWalker zu finden u...
Fügen Sie vorsichtigen MutationObserver für Client-seitiges gerenderte Logo/Text hinzu
Login-Seite und Dashboard-Content wird von Next.js JS-Bundles gegeredet, nicht im HTML-Körper, so dass Sub_filter es nicht erreichen kann. Fügt ein Skript mit e...
Redirect favicons auf nginx Ebene, beheben RSC Nutzlast entweicht
- Servieren Sie favicon via nginx 302 umleiten statt zu versuchen, neu zu schreiben HTML/RSC-Nutzlast href strings (Reiniger, immer funktioniert) - RSC-Titele...
Verwenden Sie reinen Sub_filter-Ersatz statt MutationObserver
MutationObserver verursachte Endlosschleife (DOM-Veränderung --Beobachter-Feuer -- DOM ändern). Wechseln Sie zu direktem nginx sub_filter String-Ersatz sowohl s...
Umfassende Analytik Rebranding für Login-Seite und Dashboard
- Titel dynamisch ersetzen (handhabt "Login | Analytics", "Dashboard | Analytics" etc.) - Ersetzen Sie "analytisch" h2-Text auf Login-Seite mit Kamo Logo Bild -...
Verwenden Sie MutationObserver, um analytics client-side gerendered UI umzubenennen
Analytics ist eine Next.js App, die Titel/Logo über JavaScript nach der Anfangsphase setzt HTML-Last. Ersetzt statischen Sub_filter-Ansatz mit injiziertem Skrip...
Erhöhung LibreTranslate Speicherlimit auf 12Gi (war OOMKilled bei 6Gi)
Unvollständige Modellverzeichnisse in Init-Container säubern
Der Dienst stürzt beim Start ab, wenn er ein Verzeichnis in /models findet, das fehlende oder teilweise Modelldateien. Fügen Sie einen Sweep bei init Start, der...
Entfernen Sie GitHub LFS Downloads, verwenden Sie nur data.statmt.org Modelle
GitHub rohe URLs geben LFS-Zeiger-Dateien zurück, nicht tatsächliche Binärdateien. Drop enru/enar Downloads vollständig - LibreTranslate behandelt diese Locales...
Scale bergamot auf 0, aktualisieren Bild zu mozilla/Translation-Service
Das Google Cloud Storage Modell Download Eimer (bergamot-models-sandbox) 404 für alle Dateien und die firefox-translations-Modelle repo wurde archiviert Dezembe...
Scale bergamot zurück zu 1 Replik - Übersetzungsfehler durch fehlende pod verursacht
Bergamot war bei 0 Repliken mit seinem Service noch registriert. Der ProviderRouter in TranslateService hatte keinen Leistungsschalter, so dass jede Anfrage für...
Entfernen --load-only Beschränkung von LibreTranslate
Alle benötigten Sprachpakete sind auf dem HostPath-Volume vorinstalliert. --load-only verhinderte das Beladen einiger Pakete. Ohne Flagge, LibreTranslate lädt a...
Verwenden Sie StartProbe für LibreTranslate, um lange Modell-Downloads zu handhaben
startupProbe mit 60 Versuchen x 30s = 30min Startfenster für erste Modell-Downloads. Nach dem Start abgeschlossen, normale Lebensfähigkeit und Bereitschaftssond...
LibreTranslate auf nur unterstützte Sprachmodelle einbeschränken
Verwenden --load-only mit den 22 unterstützten Sprachcodes statt Herunterladen aller verfügbaren Modelle (Hunderte von GB). Entfernt --Update-Modelle Flagge, di...
Entleerende --load-awesome-ai-Modelle Flagge von LibreTranslate entfernen
Flag existiert nicht in aktuellen libretranslate Bild. Ersetzen mit --Update-Modelle, um sicherzustellen, dass Sprachpakete beim Start heruntergeladen werden.
LibreTranslate-Berechtigung init Container hinzufügen, maßstab Bergamot auf 0
LibreTranslate stürzte mit PermissionError auf Pakete Unterdimmen. Hinzugefügt busybox init Container zu mkdir + chmod 777 die montiert hostPath bevor der Haupt...
Update LoadBalancer externe IP für k1m1 LAN bewegen sich auf 192.168.4.22
JVB_ADVERTISE_IPS muss öffentliche IP sein, nicht Wireguard IP
War 10.8.1.1 (Wireguard privat) - die Browser der Gäste können dies nicht erreichen. Geändert auf 75.83.113.11 (öffentliche IP). Das ist der Grund, warum die Gä...
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.