Commit Graph

183 Commits

Author SHA1 Message Date
kappa
2356b86d36 obsidian: 정본 문서에서 히스토리/인시던트 분리 완료
15개 정본 문서에서 날짜별 변경이력, 인시던트 기록, 폐기된 구현 상세를
history/ 디렉토리로 분리. 정본은 현재 상태만 기술하는 백서 형태로 정리.
각 정본에 history 위키링크 추가.

분리된 history 파일 12건:
- apisix git push 500, k3s postgresql migration, apisix→traefik 전환
- netbis DDoS 공격, gitea 이전/분리, usb 2.5g hang + NFS hard mount
- supabase→patroni, apisix etcd 통합/분리, anomaly-detect 재설계
- patroni failover incident, zlambda nixos migration, ops-agents setup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 12:09:21 +09:00
kappa
72750cfc9d obsidian: 정본에서 변경 이력 분리, history/ 도입
- history/README.md: 변경 이력/인시던트 기록 규약
- history/2026-04-10-edge-cleanup.md: 오늘의 엣지 정리·인시던트·복구 전체 연대기
- infra/cloudflare.md: 연대기 주석/strikethrough/인시던트 서사 제거, 현재 사실만
- infra/crowdsec-safeline.md: 인시던트 bullet 제거, 과거 이력은 history/ 참조
- services/bunnycdn-security.md: sitekey 이력표 제거, 현재 위젯 정보만
- infra/nas-storage.md: reverse proxy 섹션의 날짜 주석 제거
2026-04-10 11:38:36 +09:00
kappa
d16090a33d edge: iron-kr IgnoreQueryStrings true→false (iron-jp 와 통일)
- 실측 cache hit rate 0.23% 로 변경 영향 무시 수준
- privilege 교차 / 배포 cache-bust 버그 방지
2026-04-10 11:24:06 +09:00
kappa
8fc6a34cc8 edge: cf-zone-sync cron 영구 제거 (cleanup-2 인시던트 근본 원인)
- /etc/cron.d/cf-zone-sync 파일 삭제
- /usr/local/bin/auto-add-cf-zones.sh → .disabled.20260410-incident archive (chmod 600)
- 신규 zone 추가는 cfb-manager POST /domains 또는 수동 yaml edit
- bouncer 정상 running 확인 (PID 371770 uptime 1h28min)
2026-04-10 11:21:00 +09:00
kappa
7a8230dbf6 edge: cf-audit-cleanup-2 3차 인시던트 (cron-induced crashloop) + kappa 직접 복구 반영 2026-04-10 10:24:21 +09:00
Syn
218c323f3f edge: cf-audit-cleanup-2 + recovery 정본 반영
- infra/cloudflare.md: Worker 라우트 / Turnstile 위젯 표를 cleanup-2 후 상태로 갱신. inouter/anvil 라우트 + 6개 옛 bouncer-managed widget sitekey 폐기 표시. 신규 inouter-bunny-middleware (0x4AAAAAAC3otPWhldI96Aks) 추가, freeze 보장 근거 명시. Turnstile 토큰 권한 사실 (Vault api_token read-only vs bouncer 토큰 read+write). 인시던트 이력 섹션 추가 + 인시던트 doc 8f5c43f8 링크.
- infra/crowdsec-safeline.md: cs-cf-worker-bouncer 보호 zone 4개로 갱신, 제거된 zone 와 freeze widget 명시.
- services/bunnycdn-security.md: 미들웨어 64811 Turnstile sitekey 변경 이력표 (옛/삭제/신규 3행). sitekey gap 항목을 신규 위젯 기준으로 갱신, nas.inouter.com 정리 완료 표시.

cf-audit-cleanup-2 인시던트 + 복구 상세는 Outline doc 8f5c43f8 의 "## 복구 완료" 섹션 참조.
2026-04-10 09:44:20 +09:00
heimdall
9d71167772 infra: nas.inouter.com Traefik 리버스 프록시 (LAN-only) 복원
- lan-proxies ns 신설, selector-less Service + EndpointSlice → 192.168.9.100:5000
- IngressRoute web→websecure redirect + websecure tls (wildcard-inouter-tls)
- 2026-04-10 cf-audit-cleanup-1 의 nas.inouter.com 삭제 후 LAN-only 복원
- ExternalName 은 IP 미지원이라 동등 K8s-native 패턴(EndpointSlice) 사용

검증: curl --resolve nas.inouter.com:443:192.168.9.53 → 200 DSM 로그인
2026-04-10 09:11:22 +09:00
Syn
f5264bb4ae edge: CF inouter.com zone 정리 1차 (cf-audit-cleanup-1)
3건 DNS 레코드 삭제 (CF API 200, kappa 승인):
- nas.inouter.com CNAME actions.b-cdn.net (dead 풀존 참조, Synology LAN 전용)
- ironclad.jp.inouter.com A 10.19.228.193 (사설 IP 공개 노출)
- k8s.jp.inouter.com A 10.253.103.124 (사설 IP 공개 노출)

infra/cloudflare.md 의 inouter.com DNS 표에서 해당 행 제거.
특이사항 섹션의 dead reference / 사설 IP 노출 항목을 정리 이력으로 변경.
servidor.it.com zone 은 'death 도메인 아님' 판정으로 유지.
2026-04-10 08:17:24 +09:00
Syn
639c9b5a0d edge: 2026-04-10 BunnyCDN+CF 전수 감사 결과 정본 반영
- infra/cloudflare.md 전면 재작성: zone 6개(actions/anvil/inouter/ironclad/keepanker/servidor) 전수, DNS 레코드 zone별 핵심, Workers 9개 + 라우트, Turnstile 위젯 8개. dead reference (nas.inouter.com / *.actions.it.com → actions.b-cdn.net), servidor.it.com orphan zone, 사설 IP 노출, CF proxy on/off 함의 등 특이사항 정리. 옛 jarvis/n8n/vault → actions.b-cdn.net 기록 폐기.
- services/bunnycdn-security.md: 5개 풀존 전수표, 17개 호스트네임 인벤토리, 미들웨어 64811 attach 매트릭스, bouncer.py 동기화 흐름. cfb-manager 가 BunnyCDN 미들웨어를 갱신한다는 옛 오기록 정정 (cfb-manager 는 CF Worker bouncer 전용).
- 두 문서 모두 Outline 감사 doc 51b963c3 링크.
2026-04-10 08:10:06 +09:00
kappa
fb5a34ebcc edge gateway: "APISIX = SafeLine WAF 전용" 표현 정정
kappa 피드백 + kubectl 실측 기반 정정. 이전 기록의 "SafeLine WAF 전용 리버스
프록시" 또는 "SafeLine WAF 전용" 표현은 오해의 소지가 있음.

실측 사실 (2026-04-10 kubectl get svc + ApisixRoute + HTTPRoute):
- APISIX (svc apisix-gateway): MetalLB VIP 192.168.9.50, gateway 80/443 +
  admin 9180. 독립 LoadBalancer. Deployment replica 2.
  ApisixRoute 1건: juiceshop/juiceshop → juiceshop.keepanker.cv → juiceshop
  svc (chaitin-waf plugin 으로 SafeLine 통합 테스트)
- Traefik (svc traefik): MetalLB VIP 192.168.9.53, 80/443.
  HTTPRoute 14건 (argocd/gitea/grafana/n8n/nocodb/sftpgo/openmemory/searxng/
  kroki/safeline-mgt/vault-ui + api/namecheap + api/vultr + bunnycdn-mcp)
  + 5 legacy IngressRoute (vlogs/outline/vault-mcp/vault-mcp-http/bunnycdn-mcp)

→ **두 gateway 는 동등한 병렬 독립 LoadBalancer**. APISIX 는 Traefik 뒤의
리버스 프록시가 아니라 자체 MetalLB VIP 를 가진 별개 외부 인입 채널.
"SafeLine WAF 전용" 이 아니라, 2026-03-25 메인 라우팅이 Traefik 으로 이전된
이후 현재 APISIX route 가 SafeLine 테스트용 1건만 남은 상태일 뿐 — 범용
gateway 로 언제든 새 route 추가 가능.

정정 대상:
- infra/apisix.md — 서울 섹션 헤더/용도/축소 문구
- infra/infra-hosts.md — 게이트웨이 한 줄 요약
- infra/k3s-migration.md — 게이트웨이 열 + Phase 0 + Namespace 표
- infra/gateway-api.md — 전환 이력 2026-03-25 줄
- infra/crowdsec-safeline.md — waf-kr BunnyCDN Pull Zone 섹션 머리말

부수적으로 2026-04-10 에 발견된 heimdall kubectl 부재 문제 해결
(kubectl + helm + kubeconfig 복원) + tofu cloud-init 자동화 추가 —
commit bd5e4cb (ops-agents-tofu).
2026-04-10 00:36:29 +09:00
Syn
ae696f3e33 edge: 풀존 매핑 정합성 (2026-04-09 API 실측 반영)
- iron-kr 호스트 7개 (사용자 6 + 시스템 1) 명시. gitea.inouter.com 제거 (iron-git 분리됨), outline.inouter.com 추가
- iron-jp 호스트 5개 정정 (anvil.it.com 계열, 옛 inouter.com 표기 제거)
- 옛 풀존 ID 5316471/5330178/5554681 → iron-kr/iron-jp/iron-kr-waf 통합 메모
- Edge Script 64811 attach: iron-kr + iron-jp 두 풀존 모두 (단일 아님)
- iron-kr-waf 섹션을 waf-kr 에서 재명명, 새 경로 표기
2026-04-09 21:05:34 +09:00
kappa
fa174b75ab ops-agents: workspace bootstrap 자동화 + 시크릿 env 패턴 문서화 2026-04-09 17:32:01 +09:00
kappa
66fa3ec2ae ops-agents: heimdall 워크스페이스 레벨 정렬 반영 + 공통 레이아웃 문서화 2026-04-09 17:20:04 +09:00
kappa
974aa33124 ops-agents: SSH identity 섹션 추가 (공유 ops-agents 키) 2026-04-09 16:57:37 +09:00
kappa
749f8ed8eb ops-agents: heimdall tofu 재생성 반영 (kr1 ops/kaffa/10.100.3.108) 2026-04-09 15:49:09 +09:00
kappa
49ea3a5f80 ops-agents: Vault 게이트웨이 프로토콜 섹션 추가 (Syn/Heimdall 양쪽 e2e 검증 완료) 2026-04-09 15:25:20 +09:00
kappa
4bd868e219 ops-agents: Heimdall/Syn 내부 운영 에이전트 체계 문서화, Syn hp2 이주 기록 2026-04-09 14:51:31 +09:00
kappa
b391b947ce crowdsec: Turnstile sitekey 교체 기록 (inouter.com managed widget) 2026-04-09 12:40:29 +09:00
kappa
24e04d6029 crowdsec: cs-cf-worker-bouncer YAML + cfb-ssh-key 시크릿 복구 인시던트 기록 2026-04-09 12:03:56 +09:00
kappa
4aeea65c8c crowdsec: bunny 엣지 스크립트 64811 verify POST dead-end 버그 수정 기록 2026-04-09 12:00:17 +09:00
kappa
cf076b944a crowdsec: apisix-high-rate-per-ip 완화 (200→1000, 300ms→100ms), 2026-04-09 오탐 인시던트 기록 2026-04-09 11:51:15 +09:00
heimdall
192a677285 infra-hosts: 2026-04-09 정합성 점검 — Incus 3호스트 전수 갱신
- Helm 릴리스 9개 → 18개로 확장 (apisix-ingress, metallb, n8n, nfs-provisioner, sftpgo, sshpiper, synology-iscsi, traefik, vector, vlogs, vm-stack 추가). nfs-provisioner status=failed 명시
- ArgoCD Applications 10개 → 5개로 정정 (anvil/ironclad/n8n/nocodb/pgcat/cloud-api-emulator 제거, smtp-relay 추가). 정확한 ns/repo 반영
- Vault 위치 정정: K3s vault ns → jp1 incus default 컨테이너 vault (10.253.101.58)
- Incus 컨테이너 전수 갱신:
  * jp1 default: etcd/socks5-proxy/netbis-cf-bouncer/vault 신규 추가, baserow/iac-route STOPPED, vaultwarden 제거 확인
  * kr1 default: etcd 제거, postgres-2 추가
  * kr2 default: etcd 제거, cloudflared가 inbest로 이동, postgres-3 추가
  * hp2 default: etcd 제거, anomaly-detect 추가
  * hp2 inbest: 빈 프로젝트로 잔존 명시
- 호스트 자원/스토리지 풀 표 추가 (jp1 btrfs, kr1/kr2 dir, hp2 btrfs+pve-root)
- PgCat ns: tools → db
- BunnyCDN MCP ns: tools → mcp, namecheap-api/vultr-api ns: tools → api, smtp-relay ns: mail
- 주요 네임스페이스 라이브 기준 갱신 (anvil/ironclad/system-upgrade 삭제, 신규 ns 다수 추가)
2026-04-09 02:18:26 +00:00
Heimdall
bcd7b80bfb outline: Discord 통지 파이프라인 (n8n outline-to-discord) 추가
agent-qna 컬렉션의 documents.create 이벤트가 n8n webhook을 거쳐
heimdall Discord 채널에 embed 알림으로 전달되도록 구축.

- Outline webhook subscription: ede9327f-b09e-4f7e-ab56-c507d3d1b3a6
- n8n workflow id: 8P714i5oBs9HkZPK
- 컬렉션 필터 + Discord embed 빌드는 n8n Code 노드 안에 하드코딩
- secret/apps/discord 신설 (bot_token, channel/guild id)
- secret/apps/n8n 의 email/api_key 갱신 (kappa@inouter.com)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 23:22:01 +00:00
Heimdall
c36dfceadd docs: tailnet audit — add workstations, fix drift (openwrt-gw, sandbox-tokyo, zlambda 등) 2026-04-08 22:18:59 +00:00
Heimdall
f595889e9e outline: fix DATABASE_URL pointing at Patroni replica, document MCP setup
- Patch DATABASE_URL to OpenWrt HAProxy (192.168.9.1:5432) so Outline
  follows Patroni leader automatically
- Record 2026-04-08 incident: postgres-1 demoted to replica caused all
  write queries (incl. apiKeys.lastActiveAt) to fail with 500
- Document heimdall outline MCP setup and new agent-qna collection
2026-04-08 21:48:18 +00:00
381aa161e0 anomaly-detect: 비용 로깅 추가 (48eb489) 및 집계 명령 문서화
- cycle usage 로그 형식과 집계 명령어
- OpenRouter /activity API 지연 caveat
- management key Vault 위치
- 월 비용 예상 추가
2026-04-09 06:12:29 +09:00
7856791eae smtp-relay: K3s 내부 SMTP 릴레이 (postfix → Mailgun) 신규 문서
- 아키텍처, ConfigMap/Secret 구성, 사용법, 검증 절차
- 2026-04-08 초기 배포 검증 기록 (queue 6895722DB89, 250 Great success)
2026-04-09 00:50:21 +09:00
97ac0c44bc anomaly-detect: 스케일 업 반영 (2000 IP/cycle, chunk POST) 2026-04-09 00:38:46 +09:00
a6aac74520 anomaly-detect: E2E 검증 완료 + DRY_RUN=0 활성화 기록
- 코드 커밋 해시 3개(a702870/af2873d/d7789ad) 기록
- simulate.py 5/5 PASS 결과
- vlogs 주입 270 rows → 31 IP 정확 탐지
- LAPI POST 201 Created, cscli cleanup 정상
- 운영 중 주의사항 (injected 로그 잔재, 재테스트 시 cleanup 절차)
2026-04-09 00:28:32 +09:00
c1eb9b9375 anomaly-detect: 3차 agentic 재설계 (OpenRouter + Grok-4-fast)
- 전환 이유와 OpenRouter 모델 벤치마크 결과 기록
- 새 아키텍처 + 서버측 guardrail 설명
- 폐기된 ollama/cohort 섹션 strikethrough 처리
- 환경변수, Vault 위치 문서화

코드 커밋 해시는 병렬 작업 완료 후 별도 추가
2026-04-09 00:05:58 +09:00
6abdb41d0e anomaly-detect: 2차 리뷰 수정 반영 (b0e3c68)
H1/H2/H4/H5/M1/M2/M3/M4/M7 완료.
남은 H3(분산 봇넷 탐지)는 설계 작업으로 별도 진행.
2026-04-08 23:12:40 +09:00
efa4eae782 anomaly-detect: Gitea 저장소 연결 + 초기 리뷰 수정 기록 2026-04-08 22:47:32 +09:00
kappa
4eba970ea8 anomaly-detect: 신규 컴포넌트 (VictoriaLogs + ollama gemma4 + CrowdSec)
- incus-hp2의 anomaly-detect 컨테이너에 5분 주기 systemd timer로 가동
- 흐름: vlogs LogsQL → 통계 게이트 → ollama gemma4:e4b (kaffa-macmini) → CrowdSec LAPI alert POST → profiles.yaml 자동 ban
- ddos-detect 폐기 후속작 (60s 폴링 + Claude CLI 동기 호출 → 5분 + 로컬 LLM 게이트로 개선)
- LAPI machine 등록 시 cscli machines add --auto가 local_api_credentials.yaml 덮어쓰는 함정 기록
- end-to-end smoke test 검증 완료 (alert POST 201 + decision 등록 + cleanup)
2026-04-08 22:21:36 +09:00
kappa
fca2a53cb9 CrowdSec: APISIX 시나리오 4종 추가 + 출처/limit-req 발견 사항
- custom/apisix-{high-rate-per-ip,499-burst,single-path-flood,5xx-burst} 4종 추가 (ddos-detect AI 폐기 후 deterministic 패턴 매칭으로 대체)
- 모두 leaky bucket, ban 4h, K3s 서울 APISIX 트래픽만 대상
- APISIX → CrowdSec http-logger 송신처가 K3s 서울 단독임을 명확화 (osaka는 crowdsec-bouncer로 결정 소비만)
- K3s APISIX 글로벌 limit-req(20 req/s, burst 10) 발견 사항 기록 — CrowdSec 시나리오는 이 1차 차단을 통과한 트래픽만 보는 2차 layer라는 점 포함
2026-04-08 22:02:59 +09:00
kappa
5f368c8bcf ddos-detect AI 분석기 폐기 기록 (2026-04-08)
- ddos-detect.service systemd unit 정지/disable/삭제
- /var/lib/log-collector/ddos-detect/ 디렉토리 제거 (Go 바이너리 + 소스)
- ddos-detect.sh, extract_behavior.py, ddos-logs/ 정리
- requests.db는 log-collector(PID 176)가 사용 중이라 보존
- Gitea repo kaffa/ddos-detect는 코드 reference로 보존
- 새 AI 분석 아키텍처는 VictoriaLogs 기반으로 재설계 예정
2026-04-08 21:50:52 +09:00
kappa
b5e22c2081 APISIX real_ip patch + Vector parse_apisix 정규식 업데이트 기록
- apisix.md: real_ip_from 0.0.0.0/0, real_ip_header X-Forwarded-For, access_log_format에 xff/xrip 추가. helm values 미반영, cm 직접 patch 패턴
- victorialogs.md: 진짜 IP 기반 LogsQL 예시, parse_apisix 정규식과 APISIX log format이 짝이라는 주의
2026-04-08 21:02:02 +09:00
kappa
5b595967eb victorialogs: Grafana 통합 완료 기록
- vm-stack helm values에 victoriametrics-logs-datasource plugin 추가
- ConfigMap sidecar 패턴으로 datasource 등록 (helm additionalDataSources는 vm-stack 구조상 미적용)
- Grafana PVC RWO Multi-Attach 주의사항 기록
2026-04-08 20:49:17 +09:00
kappa
ec9df443eb VictoriaLogs 신규 도입 (K3s logging ns)
- victoria-logs-single 0.11.31 helm chart 설치 (단일 노드, longhorn 50GiB, 14d retention)
- vl.inouter.com Cloudflare CNAME → k3s.inouter.com (LAN 직접, BunnyCDN 우회)
- Traefik IngressRoute (logging ns, wildcard-inouter-tls)
- Vector daemonset에 APISIX log source 추가, parse_apisix transform, vlogs elasticsearch sink
- 1800+ APISIX access log row 수집 동작 확인
2026-04-08 20:39:27 +09:00
kappa
f5bf93f167 etcd-hp2 → etcd-mbp 교체 (Patroni DCS 멤버 변경)
- etcd 클러스터 멤버 변경: etcd-hp2(10.100.2.214) 제거, etcd-mbp(100.115.154.78) 추가
- mbp는 kaffa-macbookpro에 colima docker로 운영, socat으로 Tailscale 노출
- Patroni 3노드 patroni.yml의 etcd3.hosts 업데이트
- incus-hp2 etcd 컨테이너 삭제됨
- Patroni rolling 재시작 완료, 새 leader: postgres-3 (TL 5)
2026-04-08 19:47:49 +09:00
kappa
c3fee12412 zlambda/netbis: agenix로 APISIX admin key 암호화
- apisix.nix가 템플릿 + 런타임 sed 치환 구조로 변경됨
- admin key는 agenix로 암호화되어 git에 평문 없음
- /run/apisix/config.yaml(tmpfs)에 렌더링 후 컨테이너 마운트
- 회전 절차 문서화
2026-04-08 19:18:00 +09:00
kappa
b3a5e58b10 zlambda: APISIX NixOS oci-containers로 재가동
- apisix + etcd 컨테이너 기동 완료 (라우트/SSL 빈 상태)
- NixOS 모듈 apisix.nix로 선언형 관리
- netbis.md에 부트스트랩 체크리스트 추가
2026-04-08 19:04:39 +09:00
Heimdall
eadd6ab991 infra/apisix: K3s 내부 etcd 복귀 + destructive sync 가이드 + CRD 전환 기록
apisix.md:
- 서울 APISIX etcd: 외부 통합 → K3s 내부 apisix-etcd StatefulSet (2026-04-08)
- routes/ssls는 ApisixRoute/ApisixTls CRD로 전환 (etcd 직접 PUT 금지)
- destructive sync 동작과 객체별 관리 방법 정리
- helm values nesting 버그 회귀 방지 노트
- plugin_metadata, global_rules는 GatewayProxy CR로 관리
- ApisixRoute 예시 추가

postgresql-ha.md:
- APISIX 서울이 외부 통합 etcd 사용 안 함을 반영
- 통합 etcd는 Patroni DCS + osaka APISIX 전용
- /apisix/seoul stale prefix 삭제 절차 추가
2026-04-08 09:25:24 +00:00
Heimdall
ac81018695 infra: APISIX ingress controller 복구 및 PostgreSQL HA 구조 명확화
- apisix.md: ingress controller 2026-04-08 복구, GatewayProxy + ApisixRoute CRD 호환 검증, 옛 helm values 문제 정정, ApisixRoute 예시 추가
- apisix.md: 외부 통합 etcd 클러스터 사용 명시 (K3s 내부 StatefulSet 아님), global_rules는 chaitin-waf 미포함 (라우트별 적용)
- postgresql-ha.md: pgcat가 HAProxy 단일 백엔드 경유로 변경 (2026-04-08 사고 기록), Patroni 노드 IP 직접 박지 말 것 경고
- gitea.md: 컨테이너 레지스트리 섹션 추가, gitea-registry secret 네임스페이스별 수동 복사 필요 명시
2026-04-08 08:34:07 +00:00
kappa
ddf403ef99 sandbox-tokyo → zlambda 통일
호스트네임/Tailscale 노드 이름/git 레포 모두 zlambda로 통일하면서 obsidian 정리.

변경:
- infra/sandbox-tokyo-nixos.md → infra/zlambda.md (git mv, alias frontmatter 추가)
- zlambda.md 내용 갱신: 접속 명령, configuration 위치, 커널/sysctl 튜닝, 후속 변경 메모
- infra/infra-hosts.md 표: sandbox-tokyo 행을 zlambda로 갱신, 위키링크 [[zlambda]]
- infra/vault.md SSH CA 등록 호스트 목록: [[zlambda]] 위키링크
- services/netbis.md: title/aliases/호스트명/SSH 명령 갱신
- dev/nixos-manual/_index.md: 관련 문서 링크 [[zlambda]]로 갱신

postgresql-ha.md, crowdsec-safeline.md, services/searxng.md의 sandbox-tokyo 언급은
역사적 기록(과거 운영 상태)이라 그대로 유지.
2026-04-08 16:45:53 +09:00
kappa
fedade9b41 sandbox-tokyo-nixos: Gitea kaffa/nixos-infra 푸시 반영
- 로컬 디렉토리 ~/nixos-zlambda → ~/nixos-infra 로 이름 변경
- gitea private repo 생성 후 push
- kaffa-macmini, sandbox-tokyo 양쪽에 clone 완료
- 재배포 절차를 "호스트에서 직접 git pull + nixos-rebuild" 흐름으로 갱신
- macOS cross-build 권장하지 않음 안내
- 후속 작업 체크박스 갱신 (Gitea 푸시 완료 표시)
2026-04-08 16:33:55 +09:00
kappa
370c7da4a9 dev: NixOS 25.11 매뉴얼 로컬 사본 추가
nixpkgs nixos-25.11 브랜치의 nixos/doc/manual/ 디렉토리를 sparse clone으로
가져와 ~/obsidian/dev/nixos-manual/에 복사. _index.md에 구조/갱신 방법 정리.

오프라인 참조 + AI 에이전트 컨텍스트용. sandbox-tokyo 같은 NixOS 노드 운영 시
빠른 참조로 사용.
2026-04-08 16:15:46 +09:00
kaffa
862ca9bae8 sandbox-tokyo: Debian → NixOS 25.05 전환 (Linode zlambda)
- 새 노트 infra/sandbox-tokyo-nixos.md 작성 (설치 과정, configuration, 후속 작업)
- infra-hosts: 호스트 항목 NixOS 베이스로 갱신, Tailscale IP 100.79.87.48 → 100.78.51.18, vault-prod/wg-easy 항목 제거
- netbis: NixOS 전환으로 APISIX/etcd 컨테이너 모두 제거된 상태 표기, DR 미가동
- searxng: tlsproxy/microsocks 중단, 새 IP 반영
- vault: SSH CA에서 sandbox-tokyo 재등록 필요 표기
- postgresql-ha: /apisix/tokyo prefix 미사용 표기
2026-04-08 14:27:03 +09:00
kaffa
9ed8a72ccf infra-hosts: 2.5G LAN 4노드 완성 (kr1/kr2/hp2/NAS), MTU 9000, kr2 IP .201→.135 2026-04-08 13:32:13 +09:00
kaffa
4e4f7e50d3 infra-hosts: hp2 control-plane → worker (k3s-agent) 2026-04-08 12:36:13 +09:00
kaffa
51759cffac K3s 백업 파이프라인 문서 추가 (NFS→NAS→R2) 2026-04-08 11:38:07 +09:00