← Docs hub

SK-Intellix Wiki Domain Deployment

이 문서는 현재 로컬에서만 보던 llmwiki를 실제 도메인으로 배포하기 위한 운영 설계와 실행 절차를 정리한다.

권장 목표는 공개 웹사이트가 아니라, 인증이 걸린 내부 지식 허브다.

권장 URL 예시:
https://wiki.<your-domain>

권장 접근제어:
Cloudflare Access 또는 Caddy Basic Auth

SK-Intellix Wiki Deployment Architecture

1. 권장 구조

Local Codex / llmwiki source
-> llmwiki build
-> curated docs-only staging
-> sensitive scan
-> rsync or git-based deploy
-> VPS /var/www/sk-intellix-wiki
-> Caddy HTTPS
-> Cloudflare Access or Basic Auth
-> https://wiki.<domain>

이 구조를 추천하는 이유:

이유 설명
정적 사이트와 잘 맞음 llmwiki build 결과는 HTML/CSS/JS/SVG 정적 파일이다
운영이 단순함 DB, app server, background worker가 필요 없다
인증을 앞단에 둘 수 있음 Cloudflare Access 또는 Basic Auth로 문서 접근을 막을 수 있다
롤백이 쉬움 site/ 산출물 단위로 이전 배포본을 보관하면 된다
업체 공유가 쉬움 계정 또는 이메일 domain 단위로 접근권한을 줄 수 있다

중요:

팀원/업체 공유용 배포는 전체 site/를 그대로 올리지 않는다.
raw sessions, sources, generated session pages에는 과거 대화 로그와 오탐/민감정보 후보가 많다.
기본 배포 단위는 curated docs-only staging이어야 한다.

2. 보안 기준

이 wiki에는 A2A, DeviceAgent, SoC TaskManager, vendor handoff 내용이 들어간다. 따라서 아래 기준을 기본값으로 둔다.

항목 기준
검색 노출 X-Robots-Tag: noindex, nofollowrobots.txt 유지
접근제어 인증 없는 공개 배포 금지
HTTPS Caddy 자동 TLS 또는 Cloudflare TLS 사용
민감정보 API key, token, private key, password, 계정 정보 배포 전 스캔
로그 access log는 필요 최소화. 외부 공유 시 업체 IP/계정 추적 가능하게 설정
백업 배포 산출물과 source docs를 별도로 보관

3. 선택지 비교

방식 장점 단점 판단
Cloudflare Pages + Cloudflare Access 서버 없이 정적 사이트 배포, 팀원 이메일 접근제어 가능 Cloudflare 계정/로그인 필요 1차 최우선 권장
VPS + Caddy + Cloudflare Access 빠르고 단순, 인증/HTTPS 쉬움 VPS 1대 관리 필요 1차 권장
GitHub Pages private + Cloudflare Access Git 기반 배포 쉬움 private Pages/Access 구성 제약 가능 조직 계정 있으면 가능
S3/CloudFront + Cognito/Access 안정적, 확장성 높음 설정이 과함 장기 운영 시 고려
Tailscale Serve/Funnel 사내/개인 접근 쉬움 업체 외부 공유 제약 내부 검토용
단순 Nginx Basic Auth 익숙함 TLS/계정 관리 직접 해야 함 Caddy가 더 단순

서버를 직접 관리하고 싶지 않으면 Cloudflare Pages가 가장 간단하다. Cloudflare 공식 문서 기준으로 Pages Direct Upload는 미리 빌드된 정적 asset 폴더를 Wrangler 또는 dashboard drag-and-drop으로 올릴 수 있다.
참고: <https://developers.cloudflare.com/pages/get-started/direct-upload/>

팀원 인증은 Cloudflare Access의 self-hosted/public app 보호 정책으로 잡는다.
참고: <https://developers.cloudflare.com/cloudflare-one/access-controls/applications/http-apps/self-hosted-public-app/>

4. 1차 배포 절차

4.1 로컬에서 build

cd /home/silogood/.local/share/llm-wiki-pratiyush
/home/silogood/.local/bin/llmwiki build
/home/silogood/.local/bin/llmwiki lint

4.2 민감정보 스캔

템플릿:

/home/silogood/.local/share/llm-wiki-pratiyush/ops/wiki-deployment/scan-sensitive.sh

사용:

bash ops/wiki-deployment/stage-curated-site.sh
bash ops/wiki-deployment/scan-sensitive.sh /tmp/sk-intellix-wiki-stage

이 스크립트는 완전한 보안 도구가 아니라 배포 전 1차 방어선이다. 실제 운영에서는 gitleaks 같은 전용 도구를 추가하는 것이 좋다.

4.3 서버 준비

서버 예시:

Ubuntu 22.04 or 24.04
Caddy
도메인 DNS A record: wiki.<domain> -> VPS public IP
Cloudflare proxy 또는 DNS-only 중 선택

서버 디렉터리:

/var/www/sk-intellix-wiki
/var/backups/sk-intellix-wiki
/etc/caddy/Caddyfile

4.4 Caddy 설정

템플릿:

/home/silogood/.local/share/llm-wiki-pratiyush/ops/wiki-deployment/Caddyfile.example

서버에 복사 후 도메인과 인증 방식을 수정한다.

4.5 배포

템플릿:

/home/silogood/.local/share/llm-wiki-pratiyush/ops/wiki-deployment/deploy-wiki-rsync.sh

사용 예시:

WIKI_DEPLOY_HOST=wiki-server \
WIKI_DEPLOY_USER=deploy \
WIKI_DEPLOY_PATH=/var/www/sk-intellix-wiki \
bash ops/wiki-deployment/deploy-wiki-rsync.sh

서버 없이 Cloudflare Pages로 배포하려면 아래 템플릿을 사용한다.

/home/silogood/.local/share/llm-wiki-pratiyush/ops/wiki-deployment/deploy-cloudflare-pages.sh

최초 1회:

npx wrangler login

배포:

CF_PAGES_PROJECT=sk-intellix-wiki \
bash ops/wiki-deployment/deploy-cloudflare-pages.sh

배포 후 Cloudflare dashboard에서 sk-intellix-wiki.pages.dev 또는 연결한 custom domain에 Cloudflare Access policy를 붙인다.

5. Cloudflare Access 권장 정책

Cloudflare를 쓴다면 Caddy Basic Auth보다 Cloudflare Access를 우선 권장한다.

권장 정책:

항목
Application type Self-hosted
Domain wiki.<domain>
Policy Allow only selected email/domain
Session duration 8h 또는 24h
MFA 가능하면 enabled
Service token CI/CD 자동 배포에는 불필요. 사용자 접근에는 email auth 사용

주의:

Cloudflare Access를 켜더라도 origin 서버가 public으로 열려 있으면 우회 가능성이 있다.
가능하면 origin firewall에서 Cloudflare IP만 허용하거나, 최소 Basic Auth를 origin에도 둔다.

6. 운영 체크리스트

배포 전:

체크 기준
build llmwiki build exit 0
lint llmwiki lint 0 errors
staging stage-curated-site.sh exit 0
sensitive scan high-risk hit 없음
local smoke curl -I http://127.0.0.1:8767/docs/sk-intellix/
Caddy config caddy validate
remote smoke curl -I https://wiki.<domain>/docs/sk-intellix/

배포 후:

체크 기준
인증 비로그인 브라우저에서 접근 차단
HTTPS 유효 인증서
noindex response header 또는 robots 확인
주요 링크 Engineering Hub, SoC TaskManager Framework, DeviceAgent/SoC Category
백업 이전 배포본 보관

6.1 현재 Cloudflare Pages 운영값

현재 이 위키의 팀 공유용 배포는 아래 값을 기준으로 한다.

항목
Cloudflare Pages project sk-intellix-wiki
팀 공유 진입점 https://sk-intellix-wiki.pages.dev/docs/sk-intellix/
A2A 상세 진입점 https://sk-intellix-wiki.pages.dev/docs/a2a/
Curated stage /tmp/sk-intellix-wiki-stage
배포 hash 파일 /home/silogood/.local/share/llm-wiki-pratiyush/.deploy-state/cloudflare-pages-stage.sha256
자동/수동 공용 스크립트 ops/wiki-deployment/deploy-cloudflare-pages-if-changed.sh

즉시 배포:

cd /home/silogood/.local/share/llm-wiki-pratiyush
CF_PAGES_PROJECT=sk-intellix-wiki bash ops/wiki-deployment/deploy-cloudflare-pages-if-changed.sh

최근 배포 검증:

llmwiki build: 성공
llmwiki lint: 0 errors, 0 warnings
curated stage: 124 files
sensitive scan: passed
Cloudflare Pages deploy: complete
preview: https://9195e606.sk-intellix-wiki.pages.dev

7. 현재 준비된 파일

ops/wiki-deployment/README.md
ops/wiki-deployment/Caddyfile.example
ops/wiki-deployment/deploy-cloudflare-pages.sh
ops/wiki-deployment/deploy-wiki-rsync.sh
ops/wiki-deployment/scan-sensitive.sh
ops/wiki-deployment/stage-curated-site.sh
ops/wiki-deployment/team-access-policy.md

8. 다음 결정 필요 사항

실제 배포 전에 아래 값만 정하면 된다.

항목 필요 결정
도메인 wiki.<domain>
서버 VPS 또는 사내 서버
인증 Cloudflare Access 또는 Basic Auth
배포 방식 rsync 수동 배포 또는 git/CI 자동 배포
접근 대상 본인만, 내부팀, 업체 포함 여부