feature/hal-bootstrap-tls-v0.4.1
- hal/tls.mjs: 공개 주소 TLS 신뢰 확인(시스템 CA → 실패면 체인·공개키 핀), 신뢰 앵커(체인 자체 서명 / <data>/tls/hal-ca.pem), 10분 캐시, 핀 설치 명령(curl -k --pinnedpubkey … --hal-pin). 공개 경로 GET /agent/v1/hal-ca.pem · /agent/v1/tls, CLI tls-probe
- deploy/agent-install.sh: --hal-pin(핀으로 CA 받기)·--ca·--insecure, curl --cacert / Node NODE_EXTRA_CA_CERTS / register --ca / 유닛 Environment, 연결 실패 원인·조치 한 줄, 이미 등록된 서버 안내
- agent/halca.mjs + agent/index.mjs·config.mjs: caFile 런타임 적용(tls.setDefaultCACertificates), fetch 실패를 읽을 수 있는 한 줄로(종료 1), 이미 등록(종료 2, --force), HAL 거부(종료 3), heartbeat observability → hawkeye
- core.registerAgent: 같은 서버의 두 번째 토큰 409 server_already_registered / 쓴 토큰 409 token_used("이미 등록된 서버"), 거부 토큰 미소비, 재등록 허용(replace: 기존 Agent 해지, 감사 agent.replace), 마이그레이션 hal_0011_token_replace, API/CLI --replace --json(재인증), ops.js 재등록 확인·핀 안내
- deploy/hal-host-agent.sh(server-create --profile hal → server-token --json → agent-install loopback → server-approve), bootstrap-hal.sh 6/7 단계(--no-agent), CLI server-create·server-approve, SERVER_PROFILES.hal
- core.deploymentStatus/selfHealth.deployment, 배너 "부트스트랩 완료 · 기능 단위 서버 배포 대기: …" / "진행 중", 배포 릴리스 화면 문구, heartbeat canonicalModuleName(0.3.17 잔여 결함)
- 개발 지시 v0.4.1(Oz)·VERSION_HISTORY 0.4.1·README·docs/HAL-AGENT §6·RUNBOOK §11·AI 스킬, 도입 모듈 변경 없음(Webmaker 1.9.0·AriMail 1.1.0)
- test/hal-041.test.mjs RED → GREEN 7/7(실제 자체 서명 TLS 픽스처·별도 프로세스 CLI), 기존 배너·프로필·버전 테스트 갱신, 전체 32파일 통과, 로컬 E2E 보고서 2026-11-06
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Ariweb Suite
고객이 회원가입·로그인 → 상품 선택 → 사이트 제작(Webmaker) → 배포 → 도메인·HTTPS → 메일(AriMail) → 백업 → 운영(재배포·복원·이전·소유권·해지)까지 하나의 연결된 서비스로 이용하는 통합 플랫폼이다.
운영자는 HAL(hal.ariweb.net)에서 릴리스·서버·모듈·작업·장애·복구를 관리하고, HAL 이 Node Agent 를 통해 나머지 모든 모듈을 배포·갱신·되돌리기·복구한다.
- 버전: 0.4.1 — 변경 이력은 VERSION_HISTORY.md
- 0.4.1: 사설 CA·자체 서명 HAL 주소의 서버 등록(핀 설치 명령·
/agent/v1/hal-ca.pem), "이미 등록된 서버" 안내, HAL 배포가 HAL 서버의 Node Agent·HawkEye 를 함께 설치해 부트스트랩을 닫음(deploy/hal-host-agent.sh): docs/HAL-AGENT.md §6 - HAL AI 채팅룸(연결·방·도구·MCP, 0.3.0): docs/HAL-AI.md
- 설계·개발 규약: docs/ARCHITECTURE.md · 포털↔HAL 작업 계약: docs/HAL-JOBS.md · HAL↔Agent 프로토콜: docs/HAL-AGENT.md
- HAL 통합 설정 관제(0.4.0 — Webmaker·AriMail·Agent 서버 단위 설정을 HAL 이 관리): docs/HAL-SETTINGS.md
- 도입 소스(Webmaker 1.9.0 · AriMail 1.1.0, 모두 HAL 0.4.0 대응): IMPORTED_SOURCES.md —
node scripts/import-sources.mjs로 갱신(참조 저장소와 나란히 개발 중이면--allow-dirty) - 개발 지시 원문:
Ariweb-Suitle_Dev-Order_v0.1.1.md(기준) ·Ariweb-Suitle_Dev-Order_v0.1.4.md·Ariweb-Suitle_Dev-Order_v0.2.0.md(Webmaker 직접 편집) ·Ariweb-Suitle_Dev-Order_v0.2.1.md(HAL 고위험 재인증 안내 위치) ·Ariweb-Suitle_Dev-Order_v0.3.0.md(HAL AI 채팅룸, Oz) ·Ariweb-Suitle_Dev-Order_v0.3.1.md(서버 설치 CLI 자동 탐색, Oz) ·Ariweb-Suitle_Dev-Order_v0.3.2.md(AI 연동 편의성·도구 기본 설정·승인 요청, Oz) ·Ariweb-Suitle_Dev-Order_v0.3.9.md(로그인 터미널·텍스트 셸·모델 선택·슬래시 명령, Oz) ·Ariweb-Suitle_Dev-Order_v0.3.10.md(텍스트 셸 복사·주소 추출, Oz) ·Ariweb-Suitle_Dev-Order_v0.3.17.md(HawkEye·역할별 통합 배포·릴리스 화면·작업 진행 창·서버 선택, Oz) ·Ariweb-Suitle_Dev-Order_v0.4.0.md(통합 설정 관제)
구성
| 프로세스 | 진입점 | 포트 | 공개 주소 |
|---|---|---|---|
| HAL(제어 평면·운영자 콘솔·공개 상태) | hal/index.mjs |
127.0.0.1:8900 | https://hal.ariweb.net |
| 고객 포털 | portal/index.mjs |
127.0.0.1:8910 | https://my.ariweb.net |
| Node Agent | agent/index.mjs |
— | 각 관리 서버 |
| Webmaker(도입) | modules/webmaker/server.js |
127.0.0.1:3080 | https://webmaker.ariweb.net |
| AriMail(도입) | modules/arimail/server/index.mjs |
127.0.0.1:8790 + 메일 포트 | https://webmail.ariweb.net |
외부 npm 의존성 없음. Node 22.13 이상(node:sqlite).
개발
node test/run.mjs # 전체 회귀 테스트 (test/*.test.mjs)
node test/run.mjs lib # 이름에 lib 가 들어간 테스트만
node scripts/import-sources.mjs # 참조 저장소 고정 커밋에서 모듈 소스 갱신 + manifest
node scripts/release.mjs # 릴리스 artifact(dist/<version>/) 생성·검사
ARIWEB_PORTAL_DATA=./data/portal node portal/index.mjs
ARIWEB_HAL_DATA=./data/hal node hal/index.mjs
배포 순서(§32)
main에 병합된 승인 릴리스에서node scripts/release.mjs로 artifact 생성- 최초 설치에서만
deploy/bootstrap-hal.sh로 HAL 설치(HAL 자체 건강·실행 버전 확인, 첫 Node Agent 등록) - 이후 모든 모듈(포털·Webmaker·AriMail·Agent·백업·관측)은 HAL 운영자 콘솔의 모듈 배포 작업으로만 설치·갱신·되돌리기
Languages
JavaScript
91.8%
HTML
3.5%
Shell
2.8%
CSS
1.4%
Python
0.3%
Other
0.2%