Checkpoint: Initial stable CheckFlow base before i18n and demo mode
This commit is contained in:
@@ -1,36 +1,117 @@
|
||||
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
|
||||
# CheckFlow
|
||||
|
||||
## Getting Started
|
||||
> 셀프호스팅 TickTick-like Todo 앱 — 계층형 체크리스트 + 메모장 + CardDAV + PWA
|
||||
|
||||
First, run the development server:
|
||||

|
||||
|
||||
## 주요 기능
|
||||
|
||||
- ✅ **계층형 체크리스트** — 메인 태스크 + 하위 태스크
|
||||
- 📝 **태스크 메모장** — 넓은 노트 영역 (Markdown 지원)
|
||||
- 👥 **멀티유저** — 각 사용자 데이터 완전 격리
|
||||
- 📱 **PWA** — Android 홈 화면 추가, 오프라인 지원
|
||||
- 📲 **CardDAV** — DAVx⁵ 앱으로 Galaxy 동기화
|
||||
- 📥 **TickTick Import** — CSV/ICS 내보내기 파일 import
|
||||
- 🌙 **다크모드** — 시스템/수동 전환
|
||||
- 🐳 **Docker** — 원클릭 배포
|
||||
|
||||
## 빠른 시작
|
||||
|
||||
### 1. 환경 변수 설정
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
# or
|
||||
yarn dev
|
||||
# or
|
||||
pnpm dev
|
||||
# or
|
||||
bun dev
|
||||
cp .env.example .env
|
||||
# .env 파일에서 NEXTAUTH_SECRET 및 POSTGRES_PASSWORD 변경
|
||||
```
|
||||
|
||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||
### 2. Docker로 실행
|
||||
|
||||
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
|
||||
앱이 시작되면:
|
||||
```bash
|
||||
# DB 마이그레이션 (최초 1회)
|
||||
docker compose exec app npx prisma migrate deploy
|
||||
```
|
||||
|
||||
## Learn More
|
||||
`http://localhost:3000` 접속 후 계정 생성.
|
||||
|
||||
To learn more about Next.js, take a look at the following resources:
|
||||
---
|
||||
|
||||
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
||||
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
||||
## 개발 환경 실행
|
||||
|
||||
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
|
||||
### 요구사항
|
||||
- Node.js 20+
|
||||
- PostgreSQL (또는 Docker)
|
||||
|
||||
## Deploy on Vercel
|
||||
```bash
|
||||
# 의존성 설치
|
||||
npm install
|
||||
|
||||
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
||||
# DB 설정
|
||||
cp .env.example .env.local
|
||||
# .env.local의 DATABASE_URL을 DB에 맞게 수정
|
||||
|
||||
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
|
||||
# DB 마이그레이션
|
||||
npx prisma migrate dev
|
||||
|
||||
# 개발 서버 시작
|
||||
npm run dev
|
||||
```
|
||||
|
||||
→ `http://localhost:3000`
|
||||
|
||||
---
|
||||
|
||||
## DAVx⁵로 Galaxy 연동
|
||||
|
||||
1. Play Store에서 **[DAVx⁵](https://play.google.com/store/apps/details?id=at.bitfire.davdroid)** 설치 (무료)
|
||||
2. DAVx⁵ 앱 → **+** → Login with URL and user name
|
||||
- **URL**: `http://your-server:3000/api/dav`
|
||||
- **Username**: CheckFlow 이메일
|
||||
- **Password**: CheckFlow 비밀번호
|
||||
3. Task 목록 동기화 → Samsung Reminder 또는 Tasks 앱에서 확인
|
||||
|
||||
---
|
||||
|
||||
## TickTick에서 가져오기
|
||||
|
||||
1. TickTick 앱 → Settings → Export
|
||||
2. **Export as CSV** 또는 **Export as iCalendar** 선택
|
||||
3. CheckFlow → 사이드바 → **Import Tasks**
|
||||
4. 파일 선택 후 대상 목록 지정 → Import
|
||||
|
||||
---
|
||||
|
||||
## NPM (Nginx Proxy Manager) 연동
|
||||
|
||||
Docker compose가 기본으로 `3000` 포트에서 실행됩니다.
|
||||
NPM에서 Proxy Host 추가:
|
||||
- **Destination**: `http://checkflow-app:3000`
|
||||
- SSL 인증서 설정
|
||||
|
||||
---
|
||||
|
||||
## 환경 변수
|
||||
|
||||
| 변수 | 설명 | 기본값 |
|
||||
|------|------|--------|
|
||||
| `DATABASE_URL` | PostgreSQL 연결 문자열 | — |
|
||||
| `NEXTAUTH_URL` | 외부 접근 URL | `http://localhost:3000` |
|
||||
| `NEXTAUTH_SECRET` | JWT 시크릿 (32자 이상 랜덤) | — |
|
||||
| `POSTGRES_PASSWORD` | DB 비밀번호 | `changeme` |
|
||||
| `PORT` | 노출 포트 | `3000` |
|
||||
|
||||
---
|
||||
|
||||
## 기술 스택
|
||||
|
||||
- **Frontend**: Next.js 16 (App Router) + TypeScript + Vanilla CSS
|
||||
- **Backend**: Next.js API Routes
|
||||
- **DB**: PostgreSQL + Prisma ORM
|
||||
- **Auth**: NextAuth.js (JWT)
|
||||
- **PWA**: Service Worker + Web App Manifest
|
||||
- **CardDAV**: 커스텀 iCalendar VTODO 구현
|
||||
- **Container**: Docker + docker-compose
|
||||
Reference in New Issue
Block a user