크라우니 서비스공장 — 원격 에이전트가 kpsmacs를 서버로 신규 서비스 생성
개요
원격 에이전트(kpswin/kpsmaci/kps)가 자기 위치에서
이 컴퓨터(kpsmacs)를 서버로
신규 서비스를 만들고 게이트웨이에 서빙하고 수정한다. 빌드 불필요(curl만), make.crowny.org.
위치:
/Users/ef/crowny-서비스공장/.
구성
- 정적서버.한선 — 제네릭 정적 파일 서버(DIR+PORT env, 커스텀 콘텐츠 그대로 서빙). 함정: 파일존재는 없으면 거짓(-1)/소켓족 fd엔 파일소켓전송 0바이트→읽기+소켓보내기.
- 공장.sh — 엔진. create(정적)/chat(채팅창=msg.crowny.org/chat iframe)/update(무중단)/list/status/delete/publish/heal. 포트 9960~ 자동할당, 자체 public·공장대장.psv, 게이트웨이 FQDN 라우트 직접 기입.
- 공장서버.한선(:9947, make.crowny.org) — 원격 제어 API. 발신=4자검증, name/room 영숫자검증(셸 인젝션 차단), HTML은 파일기록. 스풀 큐 방식(체계로 백그라운드 crownyc 스폰 시 장수서버 사망→큐 파일만 기록).
- 공장데몬.sh(loop) — 큐 처리 + heal 자가치유. LaunchAgent org.crowny.factorydaemon.
- 대시보드.html — make.crowny.org 웹 제어판(생성폼+목록+publish).
- 공장원격.sh — 원격 curl 헬퍼(SELF=kpswin 공장원격.sh chat myroom myroom).
게이트웨이 현실
- 라이브 게이트웨이는 새 라우트를 kickstart 없이 핫리로드 안 함(메모리 낙관 정정). 그래서 create는 로컬 즉시 서빙, publish가 1회 gw reload+워밍으로 공개(전역 503 wedge 잠깐→warm 복구). factory.crowny.org는 crowny-fab(:8300) 점유 → make.crowny.org 사용.
검증
- kpsmaci/kpswin/kps가 API로 정적·채팅 서비스 생성→데몬 처리→로컬 서빙→publish→공개(labnote/winchat.crowny.org 200). 무중단 update. 셸 인젝션(bad;rm)·비참여자 차단. 게이트웨이 경유 POST 생성 성공. LaunchAgent 서버+데몬 영속, heal 자가치유 확인.
원격 사용 (kpswin/kpsmaci)
SELF=kpswin 공장원격.sh chat myroom myroom # 내 채팅창 서비스 → https://myroom.crowny.org
SELF=kpswin 공장원격.sh create mynote note.html
SELF=kps 공장원격.sh publish # 공개
잔여
- 공개엔 publish(gw reload) 필요 — 빈번하면 일괄 후 1회. 와일드카드/풀 라우팅 도입 시 무reload 가능(미구현).
- 삭제 서비스 라우트는 publish 시 정리.