create 실행 시 Create new Quartz from scratch를 선택하고, 폴더 이름(예: my-llm-wiki)을 설정하면 content/ 폴더가 생성된다. 로컬 미리보기는 npx quartz build --serve 실행 후 http://localhost:8080/에서 확인하며, 실시간 감시는 --watch 플래그를 추가한다.
로컬 변경사항이 즉시 반영되지만, GitHub Actions 빌드 시 심볼릭 링크를 파일로 해소하지 않으면 빈 페이지가 배포된다.
파일 복사 방식:
cp -r /Users/railscraft/Obsidian/wiki/* content/
매번 수동 동기화가 필요한 단점이 있다.
3. Quartz 설정 파일 구성
quartz.config.ts:
baseUrl은 username.github.io/reponame 또는 커스텀 도메인으로 설정하고, locale은 "ko-KR", 한국어 폰트는 Noto Sans KR을 적용한다. Plugin.FrontMatter(), Plugin.ObsidianFlavoredMarkdown(), Plugin.CrawlLinks({ markdownLinkResolution: "shortest" })를 통해 Obsidian wikilink 문법을 유지한다. ignorePatterns에 private, _archive, .obsidian 등을 지정하여 노출을 제한한다.
quartz.layout.ts:
Component.Graph() 및 Component.Backlinks()를 추가하여 Obsidian의 핵심인 그래프 뷰와 백링크를 활성화한다.
4. GitHub Actions 배포 및 Symlink 해소
.github/workflows/deploy.yml 파일에서 Node.js 22 버전을 타겟팅하며, symlink를 사용하는 경우 아래와 같이 빌드 전에 해소 스텝을 반드시 포함해야 한다:
- name: Resolve content symlink run: | if [ -L content ]; then cp -rL content content-real rm content mv content-real content fi
5. macOS 실시간 감시 및 자동 배포 파이프라인
macOS 환경에서 fswatch와 launchd를 활용하여 Obsidian wiki/ 폴더의 변경을 실시간 감시하고 자동 배포할 수 있다.
배포 스크립트 (deploy.sh):
#!/bin/bashset -eQUARTZ_DIR="/Users/railscraft/quartz"WIKI_DIR="/Users/railscraft/Obsidian/wiki"BRANCH="v4"cd "$QUARTZ_DIR"rm -rf contentcp -r "$WIKI_DIR" content# 배포용으로 출처 섹션 제거 자동화 시 (선택 사항)# find content -name "*.md" -type f | while read -r file; do sed -i '' '/^## 출처/,$d' "$file"; donegit add -Aif git diff --cached --quiet; then echo "변경사항 없음."else git commit -m "Auto-deploy: sync wiki content $(date '+%Y-%m-%d %H:%M')" git push origin "$BRANCH"fi
launchd Agent (com.user.llmwiki.deploy.plist):
~/Library/LaunchAgents에 등록하여 시스템 시작 시 백그라운드에서 fswatch를 통해 deploy.sh가 주기적으로 트리거되도록 설정한다.
6. 커스텀 도메인(Custom Domain) 연결
DNS 레코드 설정:
Apex 도메인(yourdomain.com)은 GitHub Pages IP인 185.199.108.153 ~ 185.199.111.153 (총 4개)로 A 레코드를 설정하고, www는 username.github.io로 CNAME 레코드를 지정한다.
로컬에서 chmod +x deploy.sh 실행 후 launchctl load를 통해 실시간 감시 데몬을 구동한다.
npx quartz sync를 수동 실행하여 로컬 커밋 및 푸시의 정상 작동 여부를 검증한다.
충돌 및 해결 (FAQ)
GitHub Pages v4 branch 배포 거부 오류:
GitHub 저장소 Settings -> Environments -> github-pages에서 Deployment branches 제한 설정에 v4 브랜치 패턴이 정상 등록되었는지 확인한다. (공식 문서와 가이드의 sync 방식 차이로 생기는 환경 보호 에러 해결책).
Git Push 시 Permission denied (publickey) 에러:
SSH 키 인증 오류 시 eval "$(ssh-agent -s)"와 ssh-add를 사용해 키를 등록하거나 HTTPS origin URL(https://github.com/...)로 원격을 변경하여 대처한다.
index.html 미생성 오류:
Quartz 빌드 에러의 주원인으로, content/ 폴더 내에 반드시 홈 화면 역할을 할 index.md 파일이 존재해야 한다.