프로젝트 소개

Phish.in은 라이브 Phish 관객 녹음의 오픈소스 아카이브입니다. 백엔드는 PostgreSQL 데이터베이스 위에 Ruby on Rails와 Grape API를 결합하고, phish.in의 React 웹 프론트엔드는 사용자가 오디오를 탐색하고 재생할 수 있게 합니다. Swagger로 문서화된 JSON API는 콘텐츠에 대한 프로그래밍 방식의 접근을 허용합니다. 오디오는 MP3 형식으로 제공되며, 이후 더 많은 형식과 소스가 추가될 가능성이 있습니다. MP3, 웨이브폼 PNG, 앨범 아트 JPEG와 같은 자산은 웹 서버에서 직접 제공되며 CloudFlare CDN을 통해 캐시됩니다. 콘텐츠 및 개발 논의를 위한 Discord 커뮤니티가 있으며, 별도의 Discord 봇은 세트리스트를 조회하고 음성 채널에서 음악을 재생할 수 있습니다. 개발 설정은 Docker와 mise에 의존합니다. 개발자는 저장소를 클론하고, 예제에서 .env 파일을 만들고, 서비스 작업을 실행하고, 제공된 개발 SQL 덤프를 PostgreSQL 컨테이너로 가져옵니다. PRODUCTION_CONTENT 플래그는 로컬 개발이 프로덕션 콘텐츠를 표시할 수 있게 합니다. 앱은 mise를 통한 Ruby 버전 관리로 네이티브하게 개발하거나 완전히 Docker 내부에서 개발할 수 있습니다. 테스트는 RSpec으로 Docker 또는 네이티브에서 수행됩니다. 콘텐츠 가져오기는 세트리스트에 Phish.net API를 사용하며, PNET_API_KEY 환경 변수에 API 키가 필요합니다. 선호되는 가져오기 경로는 /admin의 웹 관리자 패널로, 관리자가 archive.org에서 쇼를 가져오거나 파일을 업로드하고, 세트리스트 및 트랙 경계를 검토하고, 게시할 수 있습니다. CLI 배치 가져오기도 여전히 사용 가능합니다: 특정 형식의 MP3를 ./content/import 아래 날짜 이름 폴더에 넣고 Rails 작업으로 처리한 후 대화형 CLI 단계를 거칩니다. 애플리케이션은 또한 AI 어시스턴트 통합을 위해 POST /mcp에서 MCP(Model Context Protocol) 엔드포인트를 노출하며, 도구와 위젯은 app/mcp/ 아래에 정의됩니다. README에는 PostgreSQL 연결 충돌, Webpack 개발 서버 포트 충돌, Mac ARM에서 ruby-audio gem 설치에 대한 문제 해결 노트가 포함되어 있습니다. 이 프로젝트는 2012년 Jeff Lang의 StreamPhish에서 허가를 받아 포크되었으며, Justin Craig-Kuhn이 유지 관리합니다.