- hostinger webmaker.ariweb.net 실데이터 결과: 프로젝트 10(연결 일치 3·고유 7), 회원 12(SSO 3·고유 9), Gitea refs 13, HAL 모듈 0.1.1 ok — 충돌 0·누락 0, 적용 변경 없음(교체 불필요) - 사전 스냅샷·복원 검증·되돌리기 절차·사후 readback 은 docs/verification/webmaker-hal-link-2026-10-27.md (비밀값 없음) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
8.5 KiB
webmaker.ariweb.net ↔ HAL 연동 점검·dry-run 기록 (2026-10-27)
작업 승인: 오즈. 실행: Claude Fable 5.1(세션 ariweb-suite-8a). 저장소 기준 main ac072e6 에서 도구 추가(scripts/webmaker-inventory.mjs, test/webmaker-inventory.test.mjs). 비밀값(해시·토큰·키·세션)은 어디에도 출력·기록하지 않았다.
1. 실제 호스트 (DNS·운영 위치, 개발 저장소로 추정하지 않음)
| 항목 | 실제 값 |
|---|---|
webmaker.ariweb.net A |
187.53.133.173 = hostinger(srv1953374, Ubuntu 24.04.4, Node v22.23.2, nginx 1.24.0) |
| 서비스 | systemd webmaker.service(User master, ExecStart node server.js, 127.0.0.1:3080) + webmaker-setup.service |
| 코드 | /srv/webmaker/current → /srv/webmaker/releases/0.1.1(프로세스 cwd 동일), REVISION.json = 모듈 0.1.1 / 상류 1.7.3, HAL 작업으로 2026-10-26 14:00:21Z 설치 — 즉 이미 Ariweb Suite Webmaker(도입 모듈) 이며 교체 대상이 아니다 |
| 데이터 | DATA_ROOT=/data/webmaker(0700, 691M) · DATA_DIR=/data/webmaker/sites · SITES_ROOT=/var/www/webmaker-sites(969M) · STATS_LOG=/var/log/nginx/webmaker-sites.log · 설정 /data/webmaker/config.json(값은 보관소) |
| 저장 구조 | JSON 파일(원자적 저장 + .bak): users.json(회원·scrypt 해시) · sites/<id>.json(프로젝트·배포 이력·git 변경) · domains.json · deploy-targets.json · ariweb-links.json(포털 연결 등록부) · mail-servers.json · credits.json 등. 로컬 git /data/webmaker/git/<id>(7개) → Gitea 127.0.0.1:3030(hostinger 로컬, 저장소 webmaker/sites, 브랜치 sites/<id>/main) |
| HAL | hostinger 자체 HAL(ariweb-hal, 127.0.0.1:8900, nginx hal.ariweb.net — 공개 DNS 없음) 부트스트랩 완료, 서버 srv_01a178829d5848f93a15f93a17(control, ariweb.net) + Agent ag_01a178829f1c3d88381d2c0c75 활성, module_targets.webmaker 0.1.1/0.1.1 health ok |
bear HAL(hal21.ariweb.net) |
운영자 1·서버 0·Agent 0·부트스트랩 미완료. 운영자 로그인 정보는 이 세션에 없다(피어 세션 ariweb-suite-36 도 만들지 않았다고 답함) |
2. inventory (원본, 안정 식별자)
| 자원 | 수 | 식별자·비고 |
|---|---|---|
| Webmaker 회원 | 12 | 고유 9(oz-admin, admin, guest01, icqmomo, keytron, thewings, mingks01, visionplus, yunmi7266) + 포털 SSO 3(aw-01a17894-01a17894, aw-01a17895-01a17895, aw-01a1789f-01a1789f) |
| 프로젝트(사이트) | 10 | 32-hex id. 배포 이력 있음 3(291da329… sample.ariweb.net 14회, 41ca22fd… guide.ariweb.net 3회, 572a1d94… hs-company 1회), 로컬 git 7, 포털 연결 3(검증 사이트) |
| 도메인(Webmaker 등록부) | 2 | sample.ariweb.net, guide.ariweb.net(모두 icqmomo, active). hs-company.ariweb.net 은 프로젝트 도메인 목록에만 있고 DNS 는 bear(121.152.149.45)를 가리킴 |
| 배포 대상 | 1 | a7ae448c0593 기본서버-자체호스팅(local, /var/www/webmaker-sites, https://webmaker.ariweb.net) |
| 메일 서버 | 0 | mail-servers.json items 비어 있음(메일 연동은 config.mail.provider=arimail, https://webmail.ariweb.net) |
| Gitea refs | 13 heads | sites/<id>/main 7개 + changes/* 5개 + main |
| 사이트 디렉터리 | 10 | 파일 수: 291da 13 · 41ca 16 · 4cbe 61 · 572a 31,780(961M) · 7e10 8 · b354 4 · cf7c 4 · 검증 3개 0 |
| nginx | 3 | webmaker.ariweb.net.conf, wh-291da…conf, wh-41ca…conf (+wh-default.conf) |
| 포털 DB | users 7 · groups 10 · sites 3 · domains 6 · mail_services 4 · deployments 0 | 사이트 3개 모두 webmaker_project_id 로 검증 프로젝트에 연결 |
3. 사전 스냅샷 (hostinger, 사설, 비밀 미출력)
위치 /srv/webmaker/backups/pre-hal-link-20261027T045715Z/(master 0700, 파일 0600). 내용: data-webmaker.tar.gz(708,460,310B) · sites-root.tar.gz(76,467,803B) · checksums-source.txt(원본 32,608 파일 sha256) · conf/(webmaker·webmaker-setup 유닛, nginx 3+1 파일, sites-enabled 목록, 유닛 상태) · gitea-refs.txt(13) · local-git-heads.txt · hal.sqlite·portal.sqlite(VACUUM INTO 일관 사본) · MANIFEST.sha256 · ROLLBACK.md · dry-run.json.
MANIFEST.sha256 자체 sha256 앞 16자리 b3d7d97e66ace583, data tar 29d13e5846871a63, sites tar 8690f9de6e1246fd, checksums 8d01acf5721ac7ec.
복원 가능성 검증: 두 tar 를 임시 디렉터리에 풀어 checksums-source.txt 32,608건 전부 대조 → RESTORE_TEST_OK 32608 files(04:58:32Z), 임시 디렉터리 삭제. 되돌리기 절차는 ROLLBACK.md(정지 → 현재 보존 → tar 복원 → 설정 복원 → 기동 → 체크섬·refs 대조).
4. 연동 경로 조사 (코드·테스트)
- HAL 은 사이트·계정을 모델링하지 않는다(테이블: servers·agents·modules·module_targets·releases·jobs…). Webmaker 의 "HAL 리소스" 는 모듈 등록(
module_targets)뿐이며 이미 등록·건강 ok. - 포털 ↔ Webmaker 연결은 양쪽 등록부(
ariweb-links.json↔sites.webmaker_project_id)로만 이뤄지고, 기존 프로젝트 연결은 포털 사용자 세션의사이트 생성(projectMode=existing)경로뿐이다(portal/sites/service.mjs). Webmaker 내부 API/api/internal/ariweb/*는 포털 서비스 서명 필요. "콘텐츠 가져오기" 는 이번 버전 미지원(portal/sites/ui.mjs). - 비밀 입력 없이 쓸 수 있는 경로: 읽기 전용 inventory/dry-run(
scripts/webmaker-inventory.mjs)뿐. 고유 회원 9명을 포털 계정으로 만드는 일은 사용자 자격 증명·동의가 필요해 하지 않았다(해시·세션 재사용 금지).
5. dry-run 결과 (hostinger 실데이터, 읽기 전용, dry-run.json sha256 e94116e71a5c1a81…)
| 판정 | 수 |
|---|---|
| linked_consistent(양쪽 등록부 일치) | 3 (85e1859a…→s_01a1789f…, 899f5bbe…→s_01a17895…, ad015867…→s_01a17894…) |
| unlinked_native(Webmaker 고유, 변경 대상 아님) | 7 |
| 충돌(link_mismatch·duplicate·한쪽만·SSO 신원 누락·도메인 불일치·HAL 버전/건강) | 0 |
| 누락(missing_project·Gitea ref·HAL 등록) | 0 (Gitea sites/<id>/main 7/7, 마지막 푸시 커밋 일치) |
| SSO 회원 ↔ 포털 그룹·사용자 | 3/3 일치, 고유 회원 9 = 포털 신원 없음(keep) |
| HAL 모듈 | registered, server srv_01a178829d…, target 0.1.1 = actual 0.1.1 = 설치 0.1.1(상류 1.7.3), health ok, Agent online |
| applyPlan | no-op — 적용할 변경 없음 |
6. 적용 (5단계)
적용한 변경 없음. 교체 불필요(이미 Ariweb Suite Webmaker 모듈 0.1.1). 운영 Webmaker 의 회원·프로젝트·도메인·배포·메일 연결·Gitea·설정·세션은 바이트 단위로 보존(아래 7).
7. 사후 검증 (05:01~05:03Z, 모두 readback)
- 콘텐츠 체크섬:
/data/webmaker+/var/www/webmaker-sites32,608 파일sha256sum -c불일치 0. - git fsck 로컬 7개 저장소 오류 0 · Gitea
ls-remote --heads13건 스냅샷과 동일. webmaker.serviceactive, MainPID 1041361, NRestarts 0, ActiveEnter 2026-10-26 14:00:23Z(스냅샷 전후 동일), 최근 2시간 err 저널 0. ariweb-hal/portal/agent, arihakdang-mail, nginx, webmaker-setup 모두 active·재시작 0.- nginx
-t성공, 유닛·vhost 4개 sha256 스냅샷과 동일. TLS: webmaker.ariweb.net CN 전용(2027-01-12), sample/guide*.ariweb.net(2027-01-13). - 외부 HTTP:
https://webmaker.ariweb.net/302→/login(200, 제목 "로그인 — AI Webmaker" — 화면·세션 호환, 자격 증명 미사용) · sample.ariweb.net/,/en/,/ja/200 · guide.ariweb.net/,/en/200 · webmaker.ariweb.net 미리보기 경로 3개(/291da…/,/41ca…/,/572a…/) 200. - HAL readback:
module_targets.webmaker0.1.1/0.1.1 health ok last_check 05:01:44Z.session.secret·users.jsonmtime 변동 없음.
8. 미해결 blocker (사람 결정 필요)
- bear HAL(
hal21.ariweb.net)에 hostinger 를 서버로 등록하거나 Agent 를 재등록하려면 hal21 운영자 로그인(등록 토큰 발급)이 필요하다 — 이 세션에는 자격 증명이 없고, 운영자 1건은 누가 만들었는지 확인되지 않았다. 또한 hostinger Agent 는 hostinger HAL 에 등록돼 있어 제어 평면을 hal21 로 옮기는 것은 별도 결정·절차(§34 "하나의 HAL")가 필요하다. - Webmaker 고유 회원 9명·고유 프로젝트 7개를 포털 자원(계정·그룹·사이트)으로 옮기는 기능은 없고, 만들려면 각 사용자의 자격 증명·동의가 필요하다.