Files
todo.sori.studio/docs/spec.md

43 lines
1.7 KiB
Markdown

# 기술 명세
## 현재 버전
- `v0.0.4`
## 스택
- Vue 3 + Vite(SPA)
- Tailwind CSS, Pretendard(변수 폰트, CDN)
- PWA: `vite-plugin-pwa`(자동 업데이트 등록)
- 데이터: PocketBase(공식 JS SDK)
- 입력 검증: Zod(`src/lib/todoSchema.js`)
## PocketBase 컬렉션: `todos`
| 필드 | 타입 | 설명 |
| ------ | ------- | ----------- |
| `title` | text | 할 일 제목 |
| `done` | bool | 완료 여부 |
규칙(API 규칙)은 운영 환경에 맞게 설정한다. 로컬 개발 시에는 본인 계정에 맞는 생성·수정 권한이 있어야 한다.
## 환경 변수
| 이름 | 설명 |
| ------------------------ | ------------------------------------------------------------ |
| `VITE_POCKETBASE_URL` | PocketBase 루트 URL(끝 슬래시 없음). **브라우저가 접근 가능한 주소**여야 한다. 운영 예: `https://api.todo.sori.studio` |
| `VITE_PUBLIC_APP_URL` | 사용자에게 보이는 웹앱 URL(끝 슬래시 없음). PWA Web App Manifest의 `id` 등에 사용. 운영 예: `https://todo.sori.studio` |
## Docker Compose 기본 호스트 포트
다른 서비스와의 충돌을 줄이기 위해 **호스트**에 붙는 포트를 4만 번대로 둔다. `docker-compose.yml` 상단 주석과 `ports` 항목을 기준으로 한다.
- 웹(nginx 정적): 호스트 **42881** → 컨테이너 `80`
- PocketBase: 호스트 **42917** → 컨테이너 `8090`
포트를 바꾼 경우 `VITE_POCKETBASE_URL`·`VITE_PUBLIC_APP_URL`의 포트·도메인도 동일하게 맞춘 뒤 이미지를 다시 빌드한다.
## 버전 정책
- 앱 버전은 `package.json``version`과 문서의 `v0.0.x` 형식을 맞춘다.