À propos du projet

Phish.in est une archive open source d'enregistrements live du public de Phish. Le backend combine Ruby on Rails et une API Grape sur une base de données PostgreSQL, tandis qu'un frontend web React sur phish.in permet aux utilisateurs de parcourir et d'écouter l'audio. Une API JSON (documentée via Swagger) permet un accès programmatique au contenu. L'audio est fourni au format MP3, avec la possibilité d'ajouter d'autres formats et sources ultérieurement. Les ressources telles que les MP3, les PNG de forme d'onde et les JPEG de pochettes d'album sont servies directement depuis le serveur web et mises en cache via le CDN CloudFlare. Une communauté Discord existe pour discuter du contenu et du développement, et un bot Discord distinct peut interroger les setlists et jouer de la musique dans des salons vocaux. La configuration de développement repose sur Docker et mise. Les développeurs clonent le dépôt, créent un fichier .env à partir de l'exemple, exécutent la tâche des services et importent un dump SQL de développement fourni dans le conteneur PostgreSQL. Un indicateur PRODUCTION_CONTENT permet au développement local de présenter le contenu de production. L'application peut être développée nativement avec la gestion de version Ruby via mise, ou entièrement dans Docker. Les tests sont effectués avec RSpec, soit dans Docker, soit nativement. L'import de contenu utilise l'API Phish.net pour les setlists, ce qui nécessite une clé API dans la variable d'environnement PNET_API_KEY. Le chemin d'import privilégié est un panneau d'administration web à /admin, où un administrateur peut importer un concert depuis archive.org ou téléverser des fichiers, vérifier la setlist et les limites des pistes, puis publier. Un import par lots en CLI reste disponible : les MP3 nommés selon un format spécifique sont placés dans un dossier nommé par date sous ./content/import et traités avec une tâche Rails, suivie d'une étape CLI interactive. L'application expose également un point d'accès MCP (Model Context Protocol) à POST /mcp pour l'intégration d'assistants IA, avec des outils et des widgets définis sous app/mcp/. Le README inclut des notes de dépannage pour les conflits de connexion PostgreSQL, un conflit de port du serveur de développement Webpack et l'installation de la gem ruby-audio sur Mac ARM. Le projet a été forké avec permission en 2012 depuis StreamPhish par Jeff Lang, et est maintenu par Justin Craig-Kuhn.