← 목록
기타 2026-06-22 3KB 읽기 3분

tiomta.com — keepalive 영속화 + IG/Threads 단건 임베드

개요

잔여 미완 2건을 완성: ① tiomta 플랫폼 keepalive를 LaunchAgent로 영속화(자가복원), ② IG/Threads(+X/YouTube) 단건 게시물 키리스 임베드. 둘 다 E2E 검증.

① keepalive LaunchAgent 영속화

  • 기존 tiomta-keepalive.sh(12서버 15초 감시 루프)를 ~/Library/LaunchAgents/com.crowny.tiomta-keepalive.plist로 영속화.
  • RunAtLoad + KeepAlive + ThrottleInterval 15, CROWNY_STD/PATH env 주입(한선씨 노드 컴파일용).
  • launchctl load -w로 로드. 자가복원 검증: 데몬 SIGKILL → launchd가 PID 27027→35793 자동 재기동, tiomta 200 유지.
  • 감시 노드 10개(.한선) 전부 존재 확인 — 부팅 후 클로드 없이 플랫폼 자동 복구.

② 단건 게시물 키리스 임베드

가능/불가 경계(정직): 단건 게시물은 토큰 없이 공식 위젯으로 렌더 가능, 채널 전체 피드는 Graph API 토큰 필요 → 단건만 지원.

  • 백엔드(server.js resolveMeta): embeddablePost(provider,u) 추가 — IG /p|reel|tv/, Threads /@u/post|t|post/, X /status/숫자, YouTube watch/youtu.be/shorts 만 embed:{provider,url} 반환. 채널/프로필 URL은 embed:null. OG 스크랩 실패(로그인월)해도 embed 표식 유지.
  • 프론트(나.html): embedInfo()(클라이언트 재판정 — 기존 저장 링크도 동작), 카드에 "▼ 펼치기" 토글 → injectEmbed()가 공식 blockquote+embed.js 주입. IG=instgrm.Embeds.process(), X=twttr.widgets.load(), Threads=새 스크립트 스캔, YouTube=직접 iframe. 실패 시 "원문 열기" 폴백.
  • CSP(/나 alias): 임베드 도메인만 범위 확장 — script/frame/connect/style-src에 instagram.com·threads.net·platform.twitter.com·youtube.com·syndication.twitter.com·cdn.syndication.twimg.com 추가.

E2E (헤드리스 Chrome + 순수 CDP)

링크 추가→펼치기→임베드 확인: 카드1·펼치기버튼1·embedbox1·YouTube iframe youtube.com/embed/dQw4w9WgXcQ·X blockquote DOM 생성. 단건만 버튼 노출(채널 URL은 embed=null로 제외) 확인.

관련 파일

  • server.js (embeddablePost+resolveMeta embed, CSP 2459), public/나.html(embedInfo/injectEmbed/renderLinks/CSS)
  • com.crowny.tiomta-keepalive.plist, tiomta-keepalive.sh(기존)
  • 동반: 임베드판별.한선, 토큰검증.한선(앞 세션) — 컴파일·실행 검증
  • E2E 드라이버: /tmp/na_embed_e2e.js(RawWS CDP 재사용)

잔여 이슈

  • 채널 전체 피드 임베드는 여전히 토큰 필요(IG/Threads Graph API) — 단건만 키리스.
  • Threads 동적 재처리는 매번 새 스크립트 스캔(공식 reprocess API 부재) — 실패 시 원문열기 폴백.
  • keepalive는 tiomta 플랫폼 12서버 전체 감시(의도). gateway.yaml SSOT supervisor와는 별개 레이어.