2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00
2026-08-21 15:22:17 +09:00

CheckFlow

셀프호스팅 TickTick-like Todo 앱 — 계층형 체크리스트 + 메모장 + CardDAV + PWA

CheckFlow

주요 기능

  • 계층형 체크리스트 — 메인 태스크 + 하위 태스크
  • 📝 태스크 메모장 — 넓은 노트 영역 (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 연동

  1. Play Store에서 DAVx⁵ 설치 (무료)
  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
S
Description
No description provided
Readme
8.2 MiB
Languages
TypeScript 87.4%
CSS 11.5%
JavaScript 0.7%
Dockerfile 0.3%
Shell 0.1%