소개
KatipCelebi는 farukylmz0550이 GitHub에서 공개한 셀프 호스팅형 개인 도서관 관리 도구입니다. 책과 대출 기록, 독서 목표, 통계를 한 곳에서 정리할 수 있으며, 독서 활동을 XP·레벨·업적으로 시각화하는 게이미피케이션 요소를 함께 제공합니다. Next.js 16과 SQLite를 기반으로 Docker 한 줄 명령으로 간편하게 self-host 할 수 있도록 설계된 웹 애플리케이션이며, GNU GPL v3 라이선스 하에 배포됩니다.
상세정보
도서 관리
책을 수동으로 추가하거나 ISBN 조회(Open Library)를 통해 등록할 수 있습니다. ISBN 목록 또는 Excel 파일을 이용한 일괄 가져오기를 지원하며, 전문 검색·필터링·정렬 기능을 제공합니다. 전체 라이브러리를 Excel로 내보내거나 제공 템플릿으로 다시 가져올 수 있습니다.
대출 추적 및 인물 디렉터리
책을 대출하고 대여자 정보를 기록해 반납 여부를 표시할 수 있습니다. 대출 시 자동으로 인물 프로필이 생성되며, 인물별로 신뢰도와 대출 이력이 누적됩니다. 복본 단위(copies) 인식이 적용되어 다권 보유 도서를 정확히 관리합니다.
독서 통계 및 목표
전체 보유 수, 완독 수, 읽는 중인 수, 평균 완독 일수, 월별 차트 등 다양한 통계를 제공합니다. 사용자별로 연간·월간 독서 목표를 설정하고 진행률을 추적할 수 있습니다.
게이미피케이션 및 리더보드
도서 추가 시 +5 XP, 완독 시 +50 XP, 대출 시 +5 XP가 부여되며 제곱근 기반 레벨업 시스템과 5종 업적이 해제됩니다. 상위 50명의 XP 랭킹이 페이지 단위로 표시되는 리더보드를 제공합니다.
프로필·관리자 기능
사용자는 이름 수정과 비밀번호 변경이 가능하며, 관리자는 표지 이미지 캐시 정리 등을 수행할 수 있습니다.
Docker로 실행(권장)
사전 빌드된 이미지를 사용하는 방법이 가장 간단합니다. docker-compose.yml과 .env 파일을 작성한 뒤 docker compose up -d 명령으로 컨테이너를 실행하면 http://localhost:3000 에서 서비스가 시작됩니다. 소스에서 직접 빌드하려면 저장소를 클론하고 .env.example을 .env로 복사한 뒤 NEXTAUTH_SECRET을 설정한 다음 docker compose up -d –build를 실행합니다.
로컬 개발 환경
저장소를 클론한 뒤 npm install로 의존성을 설치하고, npx prisma migrate dev 및 npm run db:seed로 데이터베이스를 준비합니다. 이후 npm run dev를 실행하면 개발 서버가 시작되며, http://localhost:3000 으로 접근할 수 있습니다.
최초 설정
최초 접속 시 /setup 경로에서 이름·이메일·password을 입력해 관리자 계정을 생성합니다. 이후 /login으로 리다이렉트되며 로그인 후 Books 페이지에서 도서를 추가하기 시작합니다.
활용 예시
- 개인 책장에 등록된 도서를 ISBN 또는 Excel로 일괄 입력해 빠르게 데이터베이스화하기
- 친구·지인에게 빌려준 책과 대여자 정보를 기록하고 반납 여부를 한곳에서 관리하기
- 연간·월간 독서 목표를 설정하고 XP·레벨·업적으로 독서 습관을 점검하기
- 월별 완독 수 차트와 평균 완독 일수를 확인해 독서 패턴을 분석하기
제한 및 라이선스 확인사항
본 소프트웨어는 GNU General Public License v3.0 하에 배포되며, 원래 데스크톱 앱과 동일한 라이선스 조건이 웹 재구현 버전에도 그대로 적용됩니다. 모든 데이터는 SQLite 파일에 로컬로 저장되므로 클라우드 동기화는 제공되지 않으며, 외부 통계를 위한 API 키 등 추가 자격 증명은 요구되지 않습니다.
시스템 요구사항
Next.js 16, TypeScript, Tailwind CSS 4, shadcn/ui, lucide-react, Recharts, SQLite(Prisma 7, better-sqlite3), NextAuth v5(Credentials, JWT, bcrypt), Zod, Docker 및 Docker Compose 환경이 필요합니다. 단위 테스트는 Vitest, E2E 테스트는 Playwright로 구성되어 있으며, 6개 언어(영어, 터키어, 스페인어, 프랑스어, 러시아어, 중국어) i18n과 쿠키 기반 라이트/다크 테마를 지원합니다.


