# MEDIABROWSER 사이트(site/)를 Cloudflare Pages 에 배포한다. # 사용: ./build/deploy-site.ps1 [-Project mediabrowser] # 필요: .env 의 CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID · node/npx(wrangler) # 절차: 공개 릴리스 저장소에서 releases.json 생성 → wrangler pages deploy param([string]$Project = "mediabrowser") $ErrorActionPreference = "Stop" $root = Split-Path -Parent $PSScriptRoot # .env 로드 (값은 출력하지 않는다) $envFile = Join-Path $root ".env" if (-not (Test-Path $envFile)) { throw ".env 가 없습니다. .env.example 을 복사해 채우세요." } foreach ($line in Get-Content $envFile) { if ($line -match '^\s*(CLOUDFLARE_API_TOKEN|CLOUDFLARE_ACCOUNT_ID)\s*=\s*(.+)$') { Set-Item "env:$($Matches[1])" $Matches[2].Trim() } } if (-not $env:CLOUDFLARE_API_TOKEN) { throw ".env 에 CLOUDFLARE_API_TOKEN 이 없습니다." } if (-not $env:CLOUDFLARE_ACCOUNT_ID) { throw ".env 에 CLOUDFLARE_ACCOUNT_ID 가 없습니다." } Write-Host "1) releases.json 생성" -ForegroundColor Cyan node (Join-Path $root "site\fetch-releases.mjs") if ($LASTEXITCODE -ne 0) { throw "releases.json 생성 실패" } Write-Host "2) Cloudflare Pages 배포 ($Project)" -ForegroundColor Cyan npx wrangler pages deploy (Join-Path $root "site") --project-name $Project --branch main --commit-dirty=true if ($LASTEXITCODE -ne 0) { throw "wrangler 배포 실패" } Write-Host "완료: https://$Project.pages.dev" -ForegroundColor Green