# yakcloud-starter — YakCloud 프로젝트 기반 + CLI + Claude Code 스킬 빈 폴더에서 **한 명령으로 새 프로젝트를 초기화**하고, **태그 push로 YakCloud에 자동 배포**하기 위한 기반. 프레임워크 중립 스타터 앱 + CI + 매니페스트 + **`yakcloud` CLI** + **Claude Code 스킬**(`.claude/skills/yakcloud-deploy/`)이 들어 있다. ## CLI 설치 (1회) ```sh curl -fsSL https://gitea.yakenator.io/yakenator/yakcloud-starter/raw/branch/main/install.sh | sh # PATH: export PATH="$HOME/.local/bin:$PATH" ``` ## 빈 폴더 → 배포까지 ```sh yakcloud init my-app # 빈 폴더에 스타터+CI+매니페스트+Claude 스킬 스캐폴딩 cd my-app # (앱 개발 — Claude Code 로: "yakcloud 로 배포 붙여줘" / 앱 코드 작성) # yakcloud.yaml 의 cluster / image() 수정, 필요하면 requires·binds 추가 yakcloud deploy v0.1.0 # 커밋 + 태그 push → Gitea Actions 자동 배포 ``` > **Claude Code 흐름**: 빈 폴더에서 Claude Code를 열고 "프로젝트 초기화해줘" → Claude가 `yakcloud init` 실행 → > 개발 → "yakcloud에 배포해줘" → Claude가 `yakcloud deploy` 실행. (CLI가 없으면 스킬의 수동 절차로 진행) ## 배포 전 1회 준비 1. 콘솔 → 설정 → **배포 토큰** 발급(`yakd_…`). 2. Gitea 레포 만들고 `git remote add origin …`. **Secrets**: `YAKCLOUD_URL`, `YAKCLOUD_TOKEN`, `YAKCLOUD_CLUSTER`, `REGISTRY_TOKEN`. 3. `yakcloud.yaml` 의 `cluster`·`image` 수정. 사전 점검(직접 API, 계획만): ```sh YAKCLOUD_URL=https://console.yakenator.io YAKCLOUD_TOKEN=yakd_… yakcloud check ``` ## 구성 ``` bin/yakcloud # CLI(init/deploy/check) install.sh # CLI 설치 .claude/skills/yakcloud-deploy/ # Claude Code 스킬(SKILL.md + assets) — 프로젝트에 그대로 따라감 app.py Dockerfile # 프레임워크 중립 스타터(표준 라이브러리, /healthz + PORT) yakcloud.yaml # 배포 매니페스트 .gitea/workflows/deploy.yml # 태그 push CI(매니페스트 구동 — 수정 불필요) scripts/yakcloud_deploy.py # 리컨실 배포 CLI DATA-SOURCES.md # 소스별 주입 env 표 ``` ## 확장(추가/삭제) - **워크로드/데이터소스/도메인 추가·삭제**는 `yakcloud.yaml` 을 편집하고 `yakcloud deploy` — 멱등 리컨실로 반영. - 상세: `.claude/skills/yakcloud-deploy/SKILL.md`.