# Paca 배포·유통 키트 (Distribution Kit) > **목적**: PACA를 패키지 매니저·다운로드 포털·대안 사이트에 등재해 **영구(evergreen) 유입 채널**을 확보한다. > **배경/근거**: `docs/GROWTH_PLAN.md` §2. 런치 스파이크는 48시간이면 사라지지만, 이 계층은 수년간 설치를 누적한다. > **상태**: winget / Chocolatey / Scoop 매니페스트 값을 **v1.2.0 공개 릴리스 기준으로 채움 완료**(해시·ProductCode·UpgradeCode·iconUrl). 저장소 제출(PR/push)만 계정 작업으로 남음. ## 0. 공통 전제 (모든 채널의 관문) - [ ] **무인(silent) 설치 가능**: winget/Chocolatey/Scoop/포털 모두 사용자 상호작용 없는 설치를 요구하거나 테스트한다. - [ ] **PUP(애드웨어) 없음**: winget 은 PUA 자동 거부, FileHorse/Snapfiles 은 즉시 삭제. 번들·툴바 금지. - [ ] **설치자 코드 서명(Authenticode)**: AV 오탐을 줄이고 포털 심사를 통과한다. - [ ] **VirusTotal 청정** 확인 후 제출. - [ ] **버전 고정 URL**: `.../latest` 금지. 해시가 버전마다 바뀌므로 고정 경로를 쓴다. 현재 릴리스 자산(Forgejo): `https://git.chanpaca.net/Video-Downloader/releases/releases/download/v{VERSION}/Paca-Setup-{arch}.{ext}` --- ## 1. winget (Windows Package Manager) — 최고 ROI `winget install Paca.Paca` 한 줄로 모든 Windows 11 에 배포된다. - 매니페스트 위치(리포지토리): `microsoft/winget-pkgs` → `manifests/p/Paca/Paca/{VERSION}/` - 제출 파일 3종(멀티파일 필수, singleton 금지): - `Paca.Paca.yaml` (version) - `Paca.Paca.installer.yaml` (installer) - `Paca.Paca.locale.en-US.yaml` (defaultLocale) - 템플릿: `build/distribution/winget/` - 절차: `wingetcreate new ` 로 초안 생성 → `winget validate` → PR 1개(패키지 1버전) → Microsoft CLA 서명. - 필수 채움: `InstallerSha256`(`winget hash `), MSI `ProductCode`, `InstallerLocale`, `ElevationRequirement`(Program Files 설치 시 `elevationRequired`). - 주의: `.ps1`/`.bat` 설치는 불가. MSI/MSIX/EXE/zip 만. URL 은 HTTPS 필수. ## 2. Chocolatey — 커뮤니티 저장소 - 템플릿: `build/distribution/chocolatey/` (`paca.nuspec`, `tools/chocolateyInstall.ps1`, `tools/chocolateyUninstall.ps1`) - 절차: `choco new paca` 로 구조 생성 후 템플릿 대체 → `choco pack` → `choco push paca.{VERSION}.nupkg --source https://push.chocolatey.org/` - 규칙: `licenseUrl`/`projectUrl` 필수, `iconUrl` 은 PNG(제어 가능한 호스트), `raw.githubusercontent.com` 금지(CPMR0076), `tools` 스크립트는 헬퍼(`Install-ChocolateyPackage`) 사용 + **BOM 포함 UTF-8**. - 모더레이션: Pending→Ready→Approved. 35일 무응답 시 자동 거절. ## 3. Scoop Extras — 포터블/개발자 채널 - 템플릿: `build/distribution/scoop/paca.json` - 절차: `ScoopInstaller/Extras` 이슈로 신규 앱 제안(필수) → PR → `/verify` 코멘트. - 필수: `architecture`(64bit/arm64), `hash`(SHA256), SPDX `license`, 그리고 **`checkver`+`autoupdate`**(없으면 대개 거절). - 설치자가 EXE/MSI 뿐이면 `#/dl.7z` 추출 트릭 또는 `innosetup: true` 사용. ## 4. 다운로드 포털 (대중 유입층) 모더레이션에 **2~3주** 걸리므로 런치 3~4주 전 제출한다. - **Softpedia**: `softpedia.com/submit_pad.php` (PAD 권장). 봇 차단이 강하므로 실제 브라우저로 제출. - **FileHorse**: `filehorse.com/contact/` 로 10개 항목(이름·버전·사이트·설치링크·라이선스·256px 아이콘·스크린샷·설명·YouTube·PAD) 전달. VirusTotal/Safe Browsing 검사 통과 필수. - **Snapfiles**: `snapfiles.com/dev/` 개발자센터 로그인 후 제출. 직접 설치·테스트, AV 다중 검사. - **MajorGeeks**: `mgnews AT majorgeeks.com` (파일), `marketing@majorgeeks.com` (PR). VMware 설치 테스트, 4점 이상이어야 등재. ## 5. AlternativeTo — "IDM 대안" 검색 흡수 - 계정 생성 후 **7일 aging** 필요(+이메일 인증). 무료 큐는 수개월, **$5 priority** 는 1~2영업일. - 등재 후 **핵심은 "Suggest Alternatives"**: IDM, 4K Video Downloader, JDownloader, yt-dlp, Xtreme Download Manager, Free Download Manager, VideoProc 을 대안으로 연결해야 비교 페이지에 노출된다. - 필수 필드: Name(공식명만), Short Description, Website, Pricing, Tags, Platforms, Author(회사), 128px+ 정사각 아이콘. ## 6. 런치 채널 (스파이크) - **Product Hunt**: 화/수 00:01 PST, 코어 200~400명 확보, 첫 3시간 집중. 6개월 쿨다운. - **Show HN**: 화/수 07:30 ET, 다운로드 가능한 빌드 + 첫 댓글에 개발 배경 상세. 투표 요청 금지. - **Reddit**: `r/software`, `r/opensource`, `r/foss`, `r/selfhosted`, `r/DataHoarder`, `r/privacy` — 링크 도배 금지, 개발자 자기소개 필수. - **awesome 리스트 PR**: `awesome-selfhosted`, `awesome-windows`, `awesome-video`. - **뉴스레터 핏치**: TLDR(47만), selfh.st(자체호스팅 3만+). ## 7. 확정 값 (v1.2.0) | 항목 | 값 | |---|---| | `VERSION` | `1.2.0` | | 릴리스 자산 URL | `https://git.chanpaca.net/Video-Downloader/releases/releases/download/v1.2.0/` | | `SHA256_X64_MSI` | `56f305290656e636360bcf70377f3b83327149a3ae925f8350d90402f8ed43e3` | | `SHA256_ARM64_MSI` | `51c7a3d97cb5f52ed319c9c9be8aa5c6e403273f296369befbd01cd1a27e3f00` | | `SHA256_X64_EXE` | `2e963e1a5bd9d1a8faa186d2629bc137e46e26d10bfa8f3702b9f7e97619bdd7` | | `SHA256_ARM64_EXE` | `c9d566ecdd2890bb367195c805e042345f0c9f121c66bd0dd63bc87c08e597db` | | `MSI_PRODUCTCODE` (x64) | `{02433E35-4DD8-4816-A1FD-2587DDCFEBF8}` | | `MSI_UPGRADECODE` (x64) | `{65393C7D-17DC-4B9F-9D0B-F9911092C449}` | | x64 EXE/MSI 크기 | `67,836,807` / `73,552,796` | | arm64 EXE/MSI 크기 | `61,835,054` / `68,166,544` | > x64 MSI 는 공개 릴리스에서 내려받아 로컬 해시와 **바이트 일치를 검증**했다. 나머지 자산은 크기가 릴리스와 정확히 일치해 동일 빌드임을 확인했다(해시 재산출 없이 신뢰). > 버전이 올라가면 `README §7` 값과 각 매니페스트의 버전·URL·해시를 함께 갱신한다.