erp.crowny.org 표준 병합 + leum 테넌트 재구성
개요
독립 구축한 leum(이음미디어) ERP의 "기대 못한 좋은 요소"를 분석해
erp.crowny.org 멀티테넌트 표준 코어에 병합(v2.0.0), 티옴타음 사고방식으로 일관화. 그 표준 위에서
leum을 erp 테넌트로 재구성 → erp 향상 시 동의기반 자동전파, 트러블 최소.
장단점 분석 (병합 근거)
- erp(멀티서버 7개·13포트): + 멀티테넌트 거버넌스·동의업그레이드·RBAC매트릭스·기능격리. − 무겁고 장애면적 큼·GUI결합.
- leum(단일 통합서버 1000줄·1포트): + 린·스왑가능GUI·매트릭스·현장알림·셀코어색인. − 단일점·셀코어 경량.
- 결론: leum의 린서버+신규기능을 erp 표준으로 흡수, erp의 거버넌스/테넌트격리는 유지.
무엇을 했나
erp 코어 표준화 (v1.0.0 → 2.0.0)
core/servers/통합서버.한선 신설 — leum 통합서버를 테넌트인식형으로 일반화. ERP_TENANT=instances/<id> → 설정로드(tenant.json) → salt/경로/포트/브랜드 주입. 데이터 전량 instances/<id>/data/ 격리.
- 신규 표준 기능: 크라우니매트릭스(프로젝트×6단계×티옴타음 4상), 현장알림(이슈/지연/마감임박), 셀코어 파일색인+검색, 등급기반 RBAC, 견적·채팅·근태·주간보고·비번변경.
- 스왑가능 GUI:
core/public/앱.html(공유) + GET /api/tenant/config(동적 브랜딩 — 회사명·슬로건·로고·색을 tenant.json에서). 한 GUI, 다 테넌트.
- 티옴타음 일관화: 매트릭스 상태·알림 심각도·업그레이드 거버넌스 모두 4상.
- 런처
bin/erp-run.sh <id>(통합서버+사이드카), 자가치유 scripts/erp-tenant-watchdog.sh, 사이드카 core/업로드사이드카.js(ERP_DATA_ROOT 파라미터화).
- CHANGELOG 2.0.0
tags: major schema port → 테넌트 업그레이드 시 동의엔진 음(오너 명시동의) 판정.
leum 테넌트 재구성
instances/eum → instances/leum 리네임. tenant.json: id leum, leum.crowny.org, salt leum, ports.portal=9940(기존 게이트웨이/cert 재사용), upload=9941.
- 독립 leum 데이터(조직도 8명·프로젝트 10·채팅·견적·색인·cells·members) →
instances/leum/data/ 이관.
- registry: leum|이음미디어|leum.crowny.org|9940|2.0.0|active.
.pinned-version=2.0.0.
- 린모드 구동:
ERP_TENANT=instances/leum ERP_PORT=9940 통합서버.toau + 사이드카 9941. 공개 HTTPS 전부 검증(브랜드 동적=이음미디어, 매트릭스·알림·견적·RBAC).
검증 (공개 HTTPS PASS)
health=erp-unified/tenant:leum/2.0.0, /api/tenant/config=이음미디어 동적, 매트릭스 10건, 알림 이슈1·임박4, 견적 승인, RBAC 파트너2=담당 2건. 게이트웨이=한선씨 gwlive, 워치독 gwhealth+leum테넌트 ON.
함정/교훈
- 전역 503 wedge = gwhealth 워치독 재기동 fight: 백엔드 재기동 churn 후 gwlive가 헬스사이클(업스트림 Ti 마킹) 완료 전 워치독이 ~20s마다 재기동 → 영구 503. 복구: 워치독 일시 unload → gwlive 단독 클린기동 → 5s 내 안정 → 워치독 재load(건강하면 fight 없음). kickstart만으론 fight 지속.
- 9940 전환 시 스탠드얼론 워치독(com.crowny.leum) 먼저 unload 후 erp로 넘겨야 충돌 없음.
관련 파일
- /Users/ef/crowny-erp/core/servers/통합서버.한선 (표준 메인)
- /Users/ef/crowny-erp/core/public/앱.html (동적브랜딩 공유 GUI)
- /Users/ef/crowny-erp/core/업로드사이드카.js, bin/erp-run.sh, scripts/erp-tenant-watchdog.sh
- /Users/ef/crowny-erp/instances/leum/ (tenant.json + data)
- /Users/ef/crowny-erp/{VERSION,CHANGELOG.md,tenants/registry.psv}
- (백업) /Users/ef/crowny-leum (독립 원본 보존)
잔여
- aimed 테넌트도 린 통합서버로 점진 이전(현재 헤비 7서버 유지).
- 셀코어를 진짜 통합DB.한선으로 승격(현 경량 색인).
- leum 무거운 워크플로(제안/사양/계약)는 필요시 보조서버 활성(tenant.json ports 예약됨).