81ddb9cba74ff87d5c62799ccd34907abf225435
CheckFlow
셀프호스팅 TickTick-like Todo 앱 — 계층형 체크리스트 + 메모장 + CardDAV + PWA
주요 기능
- ✅ 계층형 체크리스트 — 메인 태스크 + 하위 태스크
- 📝 태스크 메모장 — 넓은 노트 영역 (Markdown 지원)
- 👥 멀티유저 — 각 사용자 데이터 완전 격리
- 📱 PWA — Android 홈 화면 추가, 오프라인 지원
- 📲 CardDAV — DAVx⁵ 앱으로 Galaxy 동기화
- 📥 TickTick Import — CSV/ICS 내보내기 파일 import
- 🌙 다크모드 — 시스템/수동 전환
- 🐳 Docker — 원클릭 배포
빠른 시작
1. 환경 변수 설정
cp .env.example .env
# .env 파일에서 NEXTAUTH_SECRET 및 POSTGRES_PASSWORD 변경
2. Docker로 실행
docker compose up -d
앱이 시작되면:
# DB 마이그레이션 (최초 1회)
docker compose exec app npx prisma migrate deploy
http://localhost:3000 접속 후 계정 생성.
개발 환경 실행
요구사항
- Node.js 20+
- PostgreSQL (또는 Docker)
# 의존성 설치
npm install
# DB 설정
cp .env.example .env.local
# .env.local의 DATABASE_URL을 DB에 맞게 수정
# DB 마이그레이션
npx prisma migrate dev
# 개발 서버 시작
npm run dev
→ http://localhost:3000
DAVx⁵로 Galaxy 연동
- Play Store에서 DAVx⁵ 설치 (무료)
- DAVx⁵ 앱 → + → Login with URL and user name
- URL:
http://your-server:3000/api/dav - Username: CheckFlow 이메일
- Password: CheckFlow 비밀번호
- URL:
- Task 목록 동기화 → Samsung Reminder 또는 Tasks 앱에서 확인
TickTick에서 가져오기
- TickTick 앱 → Settings → Export
- Export as CSV 또는 Export as iCalendar 선택
- CheckFlow → 사이드바 → Import Tasks
- 파일 선택 후 대상 목록 지정 → 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
Languages
TypeScript
87.4%
CSS
11.5%
JavaScript
0.7%
Dockerfile
0.3%
Shell
0.1%