yakcloud-starter — YakCloud 배포 기반(스타터) + Claude Code 스킬

새 프로젝트를 YakCloud 선언적 CI/CD(Gitea 태그 push → 자동 배포)로 시작하기 위한 기반 레포다. 프레임워크 중립 최소 앱 + CI + 매니페스트 + Claude Code 스킬(.claude/skills/yakcloud-deploy/)이 들어 있어, 클론하면 바로 굴리거나, Claude Code에게 맡겨 원하는 대로 추가/삭제하며 확장할 수 있다.

.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 표

새 프로젝트 시작 (택1)

A. 이 레포를 템플릿으로 클론

git clone https://gitea.yakenator.io/yakenator/yakcloud-starter.git my-app
cd my-app && rm -rf .git && git init

B. Claude Code로: 새 프로젝트에서 .claude/skills/yakcloud-deploy/ 만 복사해두면, Claude가 스킬을 참고해 앱·매니페스트·CI를 상황에 맞게 추가/삭제하며 스캐폴딩한다. (예: "yakcloud로 배포 붙여줘")

굴리기 (요약 — 상세는 SKILL.md §4~5)

  1. 콘솔 → 설정 → 배포 토큰 발급(yakd_…).
  2. Gitea 레포 Secrets: YAKCLOUD_URL, YAKCLOUD_TOKEN, YAKCLOUD_CLUSTER, REGISTRY_TOKEN.
  3. yakcloud.yamlcluster / image(<GITEA_USER>) / (필요시) requires·binds 수정.
  4. git tag v0.1.0 && git push origin v0.1.0 → Actions 실행 → 콘솔 앱 탭/도메인 확인.

로컬 사전 점검:

YAKCLOUD_URL=https://console.yakenator.io YAKCLOUD_TOKEN=yakd_… \
  python3 scripts/yakcloud_deploy.py yakcloud.yaml --dry-run

확장(추가/삭제)

  • 워크로드 추가: yakcloud.yaml workloads[]{name, build, image, port, health, binds} 추가(+ 그 build 컨텍스트에 Dockerfile).
  • 데이터 소스 추가: requires[]{name,type,plan} + 워크로드 binds{alias, source}. 앱은 <ALIAS>_URL 로 접속.
  • 도메인 노출: 콘솔 설정→도메인 등록 후 expose.host(또는 hosts: [...]) 지정.
  • 삭제: 해당 워크로드/requires 항목 제거 후 태그 push(멱등 리컨실).
Description
YakCloud 배포 기반 스타터 + Claude Code 스킬(yakcloud-deploy)
Readme 1.5 MiB
Languages
Python 65.6%
Shell 34.3%
Dockerfile 0.1%