Anyesh/wardrowbe

Put your wardrobe in rows. Self-hosted AI-powered wardrobe management app.

wardrowbe – 자체 호스팅형 AI 기반 웨어러브 관리자

무엇인가요 – 옷을 사진으로 촬영하고, 검색 가능한 카탈로그에 저장하며, OpenAI, Ollama, LocalAI 등과 같은 멀티모달 LLM을 사용해 각 아이템에 태그를 붙이고 날씨, 행사, 개인 선호도에 따라 일일 패션 추천을 생성하는 풀스택 웹 애플리케이션입니다. 모든 데이터는 귀하의 자체 하드웨어에 저장되며, AI 구성 요소는 로컬(Ollama)에서 실행하거나 OpenAI 호환 서비스를 통해 사용할 수 있습니다.


핵심 기능 (README에 기재된 내용)

  • 사진 기반 카탈로그 – 사진 업로드; AI가 색상, 무늬, 스타일을 추출하고, 선택적으로 배경을 제거합니다.
  • 스마트 패션 추천 – 멀티모달 LLM이 날씨(Open-Meteo)와 사용자 정의 행사 정보를 고려해 어떤 옷을 입을지 제안합니다.
  • 스케줄 알림 – 일일 추천은 ntfy, Mattermost, 이메일 등으로 전달할 수 있습니다.
  • 가족 계정 – 여러 가족 구성원을 위한 별도의 옷장 관리가 가능합니다.
  • 착용 기록 및 피드백 – 어떤 옷을 입었는지 기록하고, 패션에 대한 평가와 코멘트를 남길 수 있습니다.
  • 분석 대시보드 – 색상 분포, 가장 자주 입는 아이템, 사용하지 않는 아이템 등을 시각화합니다.
  • 완전한 자체 호스팅 – Docker Compose(또는 Kubernetes) 배포; SaaS 종속성 없음.
  • AI 독립성 – OpenAI 호환 API(무료로 로컬에서 실행 가능한 Ollama, OpenAI, LocalAI 등)와 호환됩니다.
  • 국제화된 UInext-intl를 통해 8개 언어로 번역되었습니다.

작동 방식 (README의 아키텍처)

Frontend (Next.js 14 + React Query)  <--->  Backend (FastAPI + async SQLAlchemy)
        │                                 │
        │   PostgreSQL (웨어러브 데이터)    │   Redis (작업 큐)
        │                                 │
        └───► Background worker (arq) ──► AI service (Ollama/OpenAI/etc.)
  1. 업로드 – 프론트엔드가 이미지를 FastAPI 백엔드로 전송합니다.
  2. 백그라운드 작업arq 워커가 요청을 수신하고, 설정된 비전 모델(예: Ollama를 통해 gemma3)을 호출하여 태그를 추출하고, 필요 시 배경 제거를 수행합니다.
  3. 저장 – 태그와 메타데이터는 PostgreSQL에 저장되며, 이미지(또는 자르기된 버전)는 호스트 볼륨에 저장됩니다.
  4. 추천 엔진 – 스케줄된 작업(또는 즉시 요청)이 현재 날씨(Open-Meteo)와 사용자 선호도를 기반으로 텍스트 모델(동일하거나 다른 모델)을 호출하여 자연어로 된 패션 추천을 반환합니다.
  5. 전달 – 추천 내용은 사용자가 선택한 알림 채널(예: ntfy, Mattermost, 이메일)을 통해 전달됩니다.

기술 스택 (명시적으로 언급됨)

레이어 기술
프론트엔드 Next.js 14, TypeScript, Tailwind CSS, shadcn/ui, TanStack Query
백엔드 FastAPI, async SQLAlchemy, Pydantic, Python 3.11
데이터베이스 PostgreSQL 15
캐시 / 큐 Redis 7 (arq 워커에서 사용)
백그라운드 작업 arq (비동기 작업 큐)
인증 NextAuth.js (개발용 자격 증명 또는 OIDC)
AI 통합 OpenAI 호환 API (Ollama, OpenAI, LocalAI 등)
컨테이너화 Docker Compose (멀티아키텍처 이미지) – 옵션으로 Kubernetes 매니페스트

시작하기 (빠른 시작 요약)

  1. Docker + Compose 설치 후, 로컬 LLM이 필요하면 Ollama 설치gemma3(또는 다른 멀티모달 모델) 다운로드.
  2. 리포지토리 클론.env.example.env 복사.
  3. .env 파일을 수정하여 AI 서비스(Ollama URL 또는 OpenAI 키)를 지정하고, 시크릿(SECRET_KEY, NEXTAUTH_SECRET) 설정.
  4. 프로덕션용 compose 파일 실행:
    docker compose pull
    docker compose up -d
    docker compose exec backend alembic upgrade head   # 마이그레이션
    
  5. UI는 http://localhost:3000, API 문서는 http://localhost:8000/docs에서 확인 가능.

개발용으로는 -f docker-compose.dev.yml 추가하여 핫리로드 활성화, npm run dev로 프론트엔드 로컬 실행 가능.


일반적인 사용 사례

  • 개인 웨어러브 디지털화 – 한 번 스캔하면 AI가 자동으로 태그 지정.
  • 일일 패션 계획 – 매일 아침 날씨에 맞는 추천을 받음.
  • 가족 공유 – 배우자, 자녀 등 별도의 옷장 관리 가능, 하나의 자체 호스팅 인스턴스에서 운영.
  • 데이터 기반 정리 – 분석 뷰를 통해 자주 입지 않는 색상이나 아이템을 파악.

제한 사항 및 고려 사항

  • AI 품질은 모델에 따라 다름 – 무료 로컬 모델(gemma3)은 OpenAI의 비전 모델보다 정확도가 낮을 수 있음.
  • 하드웨어 요구 사항 – 최소 4GB RAM; 더 큰 멀티모달 모델은 더 많은 메모리 필요.
  • 배경 제거는 선택 사항rembg 또는 외부 HTTP 서비스 필요; 없으면 버튼은 501 에러 반환.
  • 위치 정보의 폴백 프라이버시NEXT_PUBLIC_ENABLE_IP_LOCATION_FALLBACK 활성화 시 사용자 IP가 제3자 서비스에 전송됨.
  • 모바일 앱 없음 – README에 플레이 스토어 출시 예정 언급됨. 현재는 웹만 지원.

누구에게 유용할까

  • 프라이버시를 최우선으로 생각하는 기술에 익숙한 개인.
  • 클라우드 서비스에 의존하지 않고 가족용 웨어러브 관리자를 찾는 소규모 가족.
  • AI 강화 개인 보조 도구를 개발하고 싶은 개발자이며, 비전 + 텍스트 통합 예제가 필요한 사람.

결론wardrowbe는 현대적인 웹 스택과 멀티모달 LLM을 결합해 웨어러브 정리와 패션 추천을 자동화하는 진정한 자체 호스팅 애플리케이션입니다. 완전히 문서화되고 컨테이너화되어 있으며, 어떤 OpenAI 호환 백엔드에서도 실행 가능해 AI 강화 개인 생산성 도구의 훌륭한 사례입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch