Yundera App Store 기여하기
Yundera App Store는 Docker 기반 애플리케이션의 오픈소스 큐레이션 컨렉션입니다. 누구나 새 앱을 기여하거나 기존 앱을 개선할 수 있습니다.
신뢰할 수 있는 출처
AppStore 리포지토리의 **CONTRIBUTING.md**가 공식 참조입니다. 이 개발자 가이드는 오리엔테이션과 빠른 참조를 제공합니다. 의문이 있을 때는 CONTRIBUTING.md가 우선합니다.
리포지토리
| 리포지토리 | 목적 |
|---|---|
| Yundera/AppStore | 모든 PCS에 배포되는 공식 앱 스토어 |
| Yundera/AppStoreLab | 프로덕션 승격 전 테스트를 위한 스테이징 스토어 |
기여 워크플로우
Apps/{AppName}/아래에 파일 구조와 규칙에 따라 앱을 빌드합니다.- 자체 PCS에서 로컬 테스트: 새로 설치, 제거/재설치(데이터 보존), 업그레이드.
- 리포 포크 후, App Store 소스를 포크로 포인팅하여 테스트(AppStoreLab에 스테이징 가능).
- 모든 필수 파일과 체크리스트 항목을 통과한 PR을 엽니다.
- 머지 전 애셋 URL을
main브랜치로 포인팅하도록 업데이트합니다.
앱 폴더 구조
Apps/{AppName}/
├── docker-compose.yml # 필수 — 앱 정의
├── icon.png # 필수 — 192×192 px, 투명 배경
├── thumbnail.png # 필수 — 784×442 px
├── screenshot-1.png # 필수 — 1280×720 px (최소 1개)
└── rationale.md # 규칙에서 볬어나는 경우에만 필수
핵심 규칙 (치트시트)
| 영역 | 규칙 |
|---|---|
| 이미지 태그 | 고정 버전 (예: :0.1.2). 절대 :latest 사용 금지. |
| cpu_shares | 모든 서비스에 필수. 범위: 10–100. |
| 사용자 | 사용자 디렉토리에는 user: $PUID:$PGID. Root는 /DATA/AppData/{AppName}/에만. |
| 데이터 | /DATA/AppData/$AppID/ 아래 지속. 제거/재설치 후에도 생존 필수. |
| 네트워크 | 외부 pcs 네트워크 참여. expose: 사용 (ports: 아님). |
| 인증 | 필수, 기본 활성화. AppShield 사이드카 또는 앱 내장 인증 사용. |
| 애셋 | jsDelivr 통한 URL: https://cdn.jsdelivr.net/gh/Yundera/AppStore@main/Apps/{AppName}/{file} |
전체 사양은 앱 추가하기를 참조하세요.