콘텐츠로 건너뛰기
星罗
검색
언어 전환
뒤로 가기

배포

1분 분량 GitHub에서 편집

Xingluo는 순수 정적 사이트입니다. pnpm build가 dist/ 디렉토리를 생성하며, 모든 정적 호스팅 서비스에서 호스팅 가능합니다.

빌드 출력

bash
pnpm build

생성된 dist/에는 다음이 포함됩니다:

  • 모든 정적 HTML 페이지([locale]/ 미러 포함)
  • _astro/ 아래의 JS / CSS / 글꼴 자산
  • search/ 검색 색인
  • 사이트 수준 og.png 및 게시물별 og.png
  • rss.xml, sitemap-index.xml, robots.txt
  • public/ 아래의 정적 자산(favicon, 기본 OG 이미지 등)

환경 변수

빌드 시 설정:

변수설명
PUBLIC_GOOGLE_SITE_VERIFICATIONGoogle Search Console 확인 값 (선택 사항)

PowerShell 예:

powershell
$env:PUBLIC_GOOGLE_SITE_VERIFICATION = "your-code" pnpm build

CI 환경(예: GitHub Actions)에서는 빌드 단계 전에 env를 통해 주입합니다.

배포 전 확인 목록

배포 전에 다음을 확인하세요:

  1. xingluo.config.ts의 site.url이 프로덕션 도메인으로 설정되어 있는지 확인
  2. site.title, site.description, site.author 등이 사용자 정의되었는지 확인
  3. 댓글 시스템이 활성화된 경우 제공자 설정(giscus repoId, twikoo envId, waline serverURL)에 실제 값이 있는지 확인
  4. public/default-og.jpg(또는 설정된 site.ogImage)를 사이트 기본 OG 이미지로 교체
  5. public/favicon.svg가 사이트 아이콘으로 교체되었는지 확인

정적 호스팅 플랫폼

Netlify / Vercel / Cloudflare Pages

설정값
빌드 명령pnpm build
출력 디렉토리dist
Node 버전22.12.0+
패키지 매니저pnpm

Vercel용 선택적 vercel.json:

json
{ "buildCommand": "pnpm build", "outputDirectory": "dist", "framework": "astro" }

GitHub Pages

GitHub Actions를 통해 배포; 샘플 워크플로:

yaml
name: Deploy on: push: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm build env: PUBLIC_GOOGLE_SITE_VERIFICATION: ${{ secrets.GOOGLE_VERIFICATION }} - uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dist

하위 경로(예: https://user.github.io/repo/)에서 배포하는 경우 astro.config.ts에서 base: "/repo/"를 설정하세요.

Nginx / 자체 호스팅

dist/를 서버에 업로드; 샘플 Nginx 구성:

nginx
server { listen 80; server_name xingluo.example.com; root /var/www/xingluo/dist; index index.html; location / { try_files $uri $uri/ $uri.html /404.html; } # 정적 자산 캐싱 location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf)$ { expires 1y; add_header Cache-Control "public, immutable"; } }

성능 참고 사항

  • _astro/의 자산은 해시된 파일명을 가지며 장기 캐싱 가능(immutable)
  • HTML 파일은 캐싱하지 않거나 짧게 캐싱하여 콘텐츠 업데이트가 적시에 이루어지도록 함
  • Flexsearch 색인은 필요 시 로드됨; 특별한 캐싱 전략 불필요
  • 배포 후 OG 이미지, RSS 및 사이트맵에 접근 가능한지 확인

댓글 시스템 백엔드

댓글 시스템을 활성화하는 경우 해당 백엔드를 배포하세요:

댓글 시스템백엔드 요구 사항
giscus없음; giscus.app 공개 서비스 사용(또는 자체 호스팅 giscus-vercel)
twikootwikoo 서버 배포(Vercel / CloudBase / 자체 호스팅)
walinewaline 서버 배포(Vercel / Cloudflare / 자체 호스팅)

각 댓글 시스템의 공식 문서 및 댓글 시스템 참조.


관련 글

  • 검색

    1분 분량

    Xingluo 검색 가이드 - Flexsearch 전체 텍스트 검색 통합, 인덱스 생성, UI, 다국어 검색 및 성능.

  • SEO

    1분 분량

    Xingluo SEO 가이드 - Open Graph, Twitter Card, canonical, JSON-LD 구조화된 데이터, RSS 및 사이트맵.