프로젝트 소개

OpenMTG는 Magic: The Gathering 카드 컬렉션을 관리하기 위한 자체 호스팅 웹 애플리케이션입니다. 카드 인벤토리, 덱, 가격 데이터를 호스팅 서비스 대신 자신의 서버에 유지하고자 하는 개인 및 소규모 그룹을 대상으로 합니다. 컬렉션 관리는 사용자가 퍼지 Scryfall 검색을 통해 카드 이름을 추가하고, 수량, 상태, 포일 여부, 언어, 가격, 세트 인쇄를 기록할 수 있습니다. 가격은 Scryfall에서 자동으로 업데이트되며, 업데이트 간격과 속도 제한은 구성 가능합니다(기본값은 72시간 간격, 초당 2회 요청). 컬렉션과 덱은 여러 형식으로 가져오고 내보낼 수 있으며, Moxfield, MTGO, Arena의 덱 리스트를 붙여넣어 단일 단계로 채워진 덱을 생성할 수 있습니다. 덱 빌더는 메인보드, 사이드보드, 커맨더 존을 지원하며, 덱 CMC, 마나 곡선, 색상 분포를 분석하는 덱 분석 뷰를 제공합니다. 통계 페이지는 희귀도, 색상, 유형, 상태, 세트, 추정 가치별로 컬렉션을 분류합니다. 위시리스트는 현재 가격, 90일 가격 이력, 목표 가격 이하로 떨어졌을 때의 알림을 추적합니다. 기타 기능으로는 관리자가 관리하는 다중 사용자 계정(격리된 컬렉션), 양측 확인 후 카드가 전송되는 사용자 간 카드 거래, 수신자 이름과 날짜가 있는 대출 추적, 앞면/뒷면 카드 사진 업로드, 즐겨찾기, 빠른 추가 흐름, USD/EUR 지원 및 관리자 정의 통화(자동 환율 업데이트), 명시적으로 선택된 카드와 덱만 표시하는 퍼블릭 쇼룸 페이지(인스턴스별 비활성화 가능)가 있습니다. 선택적 Home Assistant 통합은 사용자별 웹훅을 통해 거래 및 위시리스트 알림을 푸시하고, 베어러 인증된 풀 엔드포인트로 실시간 컬렉션 통계를 노출합니다. 이는 관리자 권한이 필요하며 기본적으로 비활성화되어 있습니다. 스택은 백엔드에 FastAPI, SQLAlchemy, Alembic을 사용한 Python 3.14, 프론트엔드에 Vite와 TanStack Query를 사용한 React로 구성됩니다. 저장소는 PostgreSQL 16 또는 SQLite이며, 사용된 Compose 파일에 따라 결정되고 첫 설정 시 고정됩니다. Nginx는 리버스 프록시로, 배포는 Docker와 Docker Compose를 통해 이루어지며 기본 포트는 8080입니다. 구성은 .env 파일과 관리자 설정 패널을 통해 처리되며, 데이터베이스 마이그레이션은 시작 시 자동으로 실행됩니다. 텔레메트리는 선택적이며 익명으로, NOTEL 환경 변수로 비활성화할 수 있습니다. 프로젝트는 AGPL-3.0 라이선스이며, 첫 실행 시 관리자 계정이 생성되고 이후에는 관리자만 추가 사용자를 생성할 수 있습니다.