응용 프로그램 DNS 별명
auto-cert의 SUBDOMAINS 목록, 가용성 건강 검사 URL 및 middleware comment now match the apps -> 하위 도메인 이름을 적용 kamo 내부 및 보안 서비스.
우주 백업 : quay.io, docker.io/minio/mc에서 mc를 끌어 당깁니다 [skip ci]
MinIO withdrew 그 Docker Hub 이미지, 그래서 백업의 업로드 컨테이너 sat 2026-09-12에서 ImagePullBackOff. concurrencyPolicy Forbid 으로 한 갇혀 또한 매일 밤마다 차단: 4 일 동안 kamouniverse 백업 없음. 핀...
node-config: 레지스트리 프리네는 쓰레기통을 하지 않아야 합니다. --delete-un tags [skip ci]
K1m1에 박 prune은 호스트에서만 살았습니다. 그것의 쓰레기 수집 ran --delete-un 태그, 이는 per-platform가 OCI 이미지 인덱스를 나타낸다 참고 (they는 태그가 없습니다). 17 의 57 배치 된 이미지는 태그를 보관하지만 amd64 표시를 잃어버리면 ...
자동 계산: www.stack.loans 제공 중지
비율은 2026-08-04 이후 0으로 확장되어 있으므로 답변이 없습니다. stack.loans에 대한 HTTP-01. 그것의 증명서는 2026-08-02에 만료되고 그들의 순서 re-created 각 반복; 정적 항목 (그리고 apex 수당 그것은 보조금) 그들이 돌아온 것을 지켜라....
Node-exporter의 xfs 수집가 사용 [skip ci]
이 커널의 /proc/fs/xfs/stat ("xpc")를 파싱할 수 없으며 오류가 발생했습니다. 각 스크랩, 노드당 ~240/h. Filesystem 사용은 unaffected (filesystem) 수집가) 도표의 2개의 과태 extraArgs는 목록 때문에 반복됩니다 그(것)들을 ...
Kamo app은 ocr * 테이블을 소유합니다 [skip ci]
OCRService (웹 및 작업자)는 시작 및 거부의 자체 ocr * 테이블을 변경 소유권 없이 시작; kamo app에 스위치 후에 노동자 충돌 반복 테이블 ocr document progress의 소유자가됩니다. 손 그 4 테이블에 kamo app 다른 runtime-DDL 테이블...
모든 애플리케이션 워크로드에 대한 비 슈퍼 유저 kamo app 역할 [skip ci]
Superuser kamo로 연결된 서비스. idempotent 스크립트 추가 kamo app (수퍼 사용자 없음, kamo의 구성원이 아닌 그래서 SET ROLE 다시)와 각 schema/table/sequence에 부여하고 기본 특전 및 소유권 런타임에서 테이블 서비스 변경; kam...
Scrape YugabyteDB tserver/YSQL 및 SecurityService 풀 미터 [skip ci]
연결 sizing는 뒤에 자료가 없었습니다: 데이터베이스나 Hikari 수영장. curated server-level tserver 작업 추가 (전체 엔드포인트는 ~3.25M 라인은 태블릿 당 반복), YSQL/connection-manager endpoint 및 SecurityServ...
노드 구성(k3m1-ext): DHCP에서 k3m1-ext로 eno1, 자체 주소에서 트래픽으로만 사용
k3m1의 3개의 케이블은 공유한 대량 릴레이 (postfix-orgs, 47.181.8.86)를 통해서 보냅니다. DHCP는 주소와 아무것도 다른 것을, 그래서 주요 테이블은 비접촉되지 않습니다; 규칙 1860는 단지 보냅니다 해당 주소에서 테이블 186 (eno1의 라우터, 무제한 ...
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
