auto-cert : junk-cert cleanup이 실제로 junk를보고
cleanup orphan certificates()는 '-l auto-cert.kamo/fqdn'으로 나열되어 있습니다. 이름 * 상표는 스캐너 certs 보다는 더 새로운 기능 존재합니다 제거, 그래서 selector 예외적으로 의도한 대상과 삭제하지 않았다 아무것도 : baidu....
auto-cert: 배치로 org의 인증서를 발행하고, 90 초마다
새로운 조직은 호스트의 모든 eleven에 대한 인증서를 필요로하고, 각 하나는 별도의 cert-manager 인증서입니다. 반복은 각각 기다립니다 다음 spec을 적용하기 전에 준비된 호스트, 재건축 TLSStore는 모든 것 후, 호스트는 약 105 초 떨어져왔다 -- 끝까지 대략 ...
테마 호스트에 Prefer brotli, 이전 합리적 수정
두 가지, 그들 중 하나는이 앞에 커밋에 대한 보정. 이전 커밋은 `encodings: [br, gzip]` 프로브 api.kamocrm.com에 대하여. 그 프로브가 잘못되었습니다. APIService 세트 `server.compression.enabled: true` in its ...
Prefer brotli, 이미 압축 된 것을 중지
Shared `compress` middleware was `compress: {}`, 이는 3 별도의 기본과 아무도 우리가 원하는 것입니다. 클라이언트가 모두에서 제공 할 때마다 Traefik Picks gzip 고객이 요청한 순서. api.kamocrm.com에 대한 측정, 이는 ...
명시된 열 목록으로 로드 -- 위치 COPY 손상 조용히
COPY t from STDIN with no column list maps CSV 필드에 테이블의 화학 열 순서. CSV는 CockroachDB 및 Hibernate에 COPY (SELECT *)에서 옵니다. 다른 순서에 YugabyteDB 테이블을 완전히 생성합니다 -- esign ...
명시된 열 목록으로 로드 -- 위치 COPY 손상 조용히
COPY t from STDIN with no column list maps CSV 필드에 테이블의 화학 열 순서. CSV는 CockroachDB 및 Hibernate에 COPY (SELECT *)에서 옵니다. 다른 순서에 YugabyteDB 테이블을 완전히 생성합니다 -- esign ...
CockroachDB -- 714 테이블, 8706 열을 가진 슈마 패리티
Drift diff는 그것의 장소를 얻었습니다. KamoInitializerService는 스키마를 구축합니다. JPA entities 및 생산 599 테이블; 생산은 714를 운반합니다. 115명 차이는 삭제되었지만 그 테이블은 결코 -- 버려진 pos /hte /ht schemas...
CockroachDB -- 714 테이블, 8706 열을 가진 슈마 패리티
Drift diff는 그것의 장소를 얻었습니다. KamoInitializerService는 스키마를 구축합니다. JPA entities 및 생산 599 테이블; 생산은 714를 운반합니다. 115명 차이는 삭제되었지만 그 테이블은 결코 -- 버려진 pos /hte /ht schemas...
전체 CockroachDB->우주 마이그레이션을위한 YSQL 번역기
이제 모든 15 마이그레이션은 YugabyteDB에 깨끗하게 적용됩니다 : 111 테이블, 매칭 CockroachDB 정확히. 8가지의 CockroachDB-only 생성물은 처리, 실패까지 migrator를 실행하여 한 번 발견: STRING/BYTES 유형, USING HASH B...
전체 CockroachDB->우주 마이그레이션을위한 YSQL 번역기
이제 모든 15 마이그레이션은 YugabyteDB에 깨끗하게 적용됩니다 : 111 테이블, 매칭 CockroachDB 정확히. 8가지의 CockroachDB-only 생성물은 처리, 실패까지 migrator를 실행하여 한 번 발견: STRING/BYTES 유형, USING HASH B...
COPY를 통해 CSV 내보내기, CSV 인식기
운송은 COPY ... (FORMAT CSV)로 STDOUT에, 아니 'cockroach sql --format=csv`. 후자는 리터 문자열 "NULL"로 SQL NULL을 렌더링합니다. 실제 값에서 indistinguishable, 침묵으로 변환 할 것 모든 NULL 에 데이터베이스...
COPY를 통해 CSV 내보내기, CSV 인식기
운송은 COPY ... (FORMAT CSV)로 STDOUT에, 아니 'cockroach sql --format=csv`. 후자는 리터 문자열 "NULL"로 SQL NULL을 렌더링합니다. 실제 값에서 indistinguishable, 침묵으로 변환 할 것 모든 NULL 에 데이터베이스...
모든 청소 schema-aware를 만드십시오; kamo에는 714 테이블이 없습니다, 680
Table schema='public'에 대한 Cross-checking SHOW BACKUP (714 객체) 재고 (680) 노출 34 테이블 생활 5 다른 스키마: 이메일 metadata, email provider, email campaign, kamotokens, meet pro...
모든 청소 schema-aware를 만드십시오; kamo에는 714 테이블이 없습니다, 680
Table schema='public'에 대한 Cross-checking SHOW BACKUP (714 객체) 재고 (680) 노출 34 테이블 생활 5 다른 스키마: 이메일 metadata, email provider, email campaign, kamotokens, meet pro...
CockroachDB에 대한 기본 캡처 YugabyteDB parity 검사
2개의 통행: 싼 배치된 조사 (*), 그 후에 순서 독립 checksum. checksum의 합계 per-row md5 hashes as integers 오히려 명백한 md5(string agg(h ORDER by h). 둘 다 순서 의존합니다, 그러나 string agg geoli...
CockroachDB에 대한 기본 캡처 YugabyteDB parity 검사
2개의 통행: 싼 배치된 조사 (*), 그 후에 순서 독립 checksum. checksum의 합계 per-row md5 hashes as integers 오히려 명백한 md5(string agg(h ORDER by h). 둘 다 순서 의존합니다, 그러나 string agg geoli...
대회 - secrets **************** 지브리 레코딩 ingest
Jibri finalize.sh는 MediaService에 기록 업로드를 인증; 일치 cluster *** value MediaService가 유효하다.
Provision R1 MEDIA JetStream 스트림 via idempotent 부츠 스트랩 작업
Media/lead-feed 이벤트 (media.feed.*, media.post.*)는 JetStream이 없었다 스트림, 그래서 게시는 '503 요청시 사용할 수있는 응답자 없음' (chat.>는 CHAT MESSAGES에 의해 덮여있다; 미디어.> 아무것도 덮었다). NATS는 ...
노드 구성(k1m1-runner): 레코드 data.forgejo.org IPv4 핀 + Capacity=6
문서의 살아있는 on-node 변경: 자료. forgejo.org는 IPv6 전용이며 k1m1은 없습니다. IPv6 경로, 그래서 작업 컨테이너 hung ~133s 및 작업 / 체크 아웃 실패. 그것의 IPv4 핀 (188.40.16.47) --add-host, 일치 /etc/forge...
Klusterservices를 단일 k1m1+k3m1 클러스터에 통합
- NATS: 독립 단일 팟 핀 k1m1 (drop k2m1 + 일반적인 클러스터 변형) - CockroachDB : 핀 k1m1, 단일 노드 --join - MySQL: 단일 인스턴스는 ratetack (cluster-services ns, k1m1)에 hostPath로 이동했습니다....
업그레이드 v3.0 -> v3.3 (fix 간헐적인 WebSocket 차단)
v3.0.0 intermittently는 WS 101 업그레이드를 완료하여 소켓을 닫습니다. Frame Flows - 우주 게임 클라이언트의 로드에 'disconnect를 반복 (reproduced) headless: 페이지 짐의 첫번째/찬 WS는 101 후에 ~200ms, 클라이언트 ...
노드 구성: 문서 k1m1 forgejo-runner config (--add-host for submodule DNS)
K1m1의 작업 컨테이너는 공공 DNS로 돌아갑니다, 그래서 함대-swept http://k1m1:3000 .gitmodules URL은 클론에 실패합니다. 작업에 핀 k1m1 container.options를 통해 컨테이너 --add-host (암호 서비스 CI 2026-06-12).
노드 구성: 문서 k1m1 도커 데몬 insecure-registries
K1m1 forgejo-runner의 빌드는 HTTP Forgejo 레지스트리로 밀어; the daemon.json만 배송 :5000 항목, 그래서 모든 빌드 작업 착륙 k1m1에서 HTTPS-to-HTTP 오류 (2026-06-12)로 도커 로그인이 실패했습니다. Desired 상태는...
LAN을 통해 k3m1과 공유된 두 노드 클러스터에 가입하십시오. 계정 고립
LAN 노선에 대한 전체 WireGuard 경로 (10.8.x.x) (192.168.4.22 <-> 192.168.4.36 : 6222) 경로 URL에 내장 된 주름. 클러스터를 kamo-ratestack-nats (Pricetack/k3m1)와 공유. 다중 계정 고립: kamo 고객 ...
노드 구성 : k1m1 kubelet 최대 파드 110 -> 200
Default RKE2 max-pods=110는 kamolos Rolling-update를 차단하고 있습니다. 배치 (maxSurge:1,maxUnavailable:0는 새로운 포드를 창조하기 위하여 구멍을 필요로 합니다 오래된 죽이기; 모자에 deadlocked. k1m1에는 48의...
Update Traefik routes: themes.* assets now only load from k1m1 minio instead of balancing across k0m1, k1m1, and k2m1
Use VPN addresses for k0m1/k2m1 minio-public backends
- Endpoints: k0m1 10.8.0.1, k2m1 10.8.2.1 (VPN); k1m1 stays local - IngressRoute host match: 100.64.x.x -> 10.8.0.1, 10.8.1.1, 10.8.2.1
MinIO secret creation from workflow (MinIO is managed manually)
Update IP addresses from Tailscale (100.64.x.x) to WireGuard VPN (10.8.x.x) for NATS, CockroachDB, and CI/CD workflows
Kamo 로고에 대한 CSS 전용 접근
CSS 배경 이미지를 사용하여 깨진 SVG 파일 마운트 제거 #logo 엘리먼트에서 외부 로고를 직접 로드
외부 Kamo 로고 URL을 참조하는 Logo.svg 수정
SVG 이미지 요소를 사용하여 외부 로고를 대신 embed 부서지는 변형의 복잡한 경로
Kamo 로고 SVG를 가진 Roundcube 로고.svg를 대체하십시오
마운트 사용자 정의 로고.svg에 **************** Roundcube 워터 마크 / 배경 로고 교체
사용자 정의 CSS 파일을 override Roundcube 워터 마크 로고에 추가
- watermark override로 custom.css 생성 - /var/www/html/custom.css에 CSS 파일을 마운트 - Extra stylesheets를 로드하는 Roundcube 구성
Watermark를 포함한 Kamo 로고로 모든 Roundcube 로고를 교체하십시오
덮개에 배열 체재에 update skin logo config: - 주요 헤더 로고 - 작은 붕괴 헤더 로고 - Inbox 워터 마크 / 배경 로고
Auto-cert SUBDOMAINS 목록에 메일 하위 도메인 추가
Mail.kamocrm.com에 대한 자동 SSL 인증서 생성 가능
인바운드 메일을 위한 hostPort를 통해 포스트픽스 포트 25 및 587 노출
K1M1에 외부 SMTP 연결을 받기를 위해 요구되는
Mailgun SMTP를 직접 사용하는 Roundcube 구성
아웃고 메일을 위한 로컬 Postfix를 우회, 직접 연결 smtp.mailgun.org 포트 587에 TLS
Postfix를 Alpine 기반 배포로 MySQL 지원
Postfix-mysql 패키지와 함께 Alpine 3.18을 사용하여 Dovecot와 유사한 신뢰할 수있는 MySQL 가상지도 지원을위한 실행 시간에 설치
Fix postfix command to use apt-get instead of apk
boky/postfix is Debian-based, not Alpine
Add postfix-mysql support for MySQL virtual maps
Installed postfix-mysql package at container startup to enable MySQL dictionary lookups for virtual domains/users/aliases
Add auth debugging and ensure MySQL driver packages for Dovecot
- Enable auth_debug, auth_debug_passwords, auth_verbose - Add dovecot-mysql package for proper SQL support - Add mariadb-connector-c for MySQL protocol compatib...
Add MySQL auth fix job for MariaDB client compatibility
Changes kamo user from caching_sha2_password to mysql_native_password Required for Dovecot (Alpine/MariaDB) to connect to MySQL 8
Replace Roundcube logo with Kamo logo
Added skin_logo config pointing to **************** Updated deployment annotation to trigger pod restart
Fix MySQL auth: change kamo user to mysql_native_password
Alpine's MariaDB client doesn't support caching_sha2_password plugin This prevents Dovecot from connecting to MySQL for authentication
Force Roundcube pod restart to pick up ConfigMap change
Added annotation to trigger pod recreation since ConfigMap with subPath doesn't auto-update in running pods
Fix Roundcube redirect loop - disable force_https
Traefik handles TLS termination, so internal traffic is HTTP Setting force_https=true caused Roundcube to redirect to HTTPS internally creating an infinite redi...
Reference kamocrm.com wildcard cert in mail IngressRoute
The certificate secret is in kamo namespace, copied to mail namespace tls.secretName explicitly references wildcard-kamocrm-com
Fix mail IngressRoute to use auto-cert service
Changed tls from certResolver: letsencrypt to tls: {} This allows the auto-cert service to automatically generate certs when mail.kamocrm.com is accessed
Fix Roundcube readiness probe - use TCP socket instead of HTTP
Roundcube redirects / to login page (302), failing HTTP readiness probe TCP socket check on port 80 works correctly