このプロジェクトについて

Phish.inは、Phishのライブ観客録音のオープンソースアーカイブです。バックエンドはPostgreSQLデータベース上でRuby on RailsとGrape APIを組み合わせており、phish.inのReactウェブフロントエンドを使用してユーザーはオーディオの閲覧と再生を行えます。JSON API(Swaggerでドキュメント化)により、コンテンツへのプログラムによるアクセスが可能です。 オーディオはMP3形式で提供され、将来的にさらに多くの形式やソースが追加される可能性があります。MP3、波形PNG、アルバムアートJPEGなどのアセットは、ウェブサーバーから直接提供され、CloudFlare CDNを通じてキャッシュされます。コンテンツや開発について議論するためのDiscordコミュニティがあり、別個のDiscordボットではセットリストの照会やボイスチャンネルでの音楽再生が可能です。 開発セットアップはDockerとmiseに依存しています。開発者はリポジトリをクローンし、サンプルから.envファイルを作成し、servicesタスクを実行して、提供された開発用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によってメンテナンスされています。