Об этом проекте

Phish.in — это архив с открытым исходным кодом живых записей аудитории Phish. Бэкенд сочетает Ruby on Rails и Grape API поверх базы данных PostgreSQL, а веб-фронтенд на React на phish.in позволяет пользователям просматривать и воспроизводить аудио. JSON API (документированный через Swagger) обеспечивает программный доступ к контенту. Аудио предоставляется в формате MP3, с возможностью добавления других форматов и источников позже. Активы, такие как MP3, PNG-файлы формы волны и JPEG-обложки альбомов, обслуживаются непосредственно с веб-сервера и кэшируются через CDN CloudFlare. Существует сообщество Discord для обсуждения контента и разработки, а отдельный бот Discord может запрашивать сет-листы и воспроизводить музыку в голосовых каналах. Настройка разработки основана на Docker и mise. Разработчики клонируют репозиторий, создают файл .env из примера, запускают задачу services и импортируют предоставленный дамп SQL для разработки в контейнер PostgreSQL. Флаг PRODUCTION_CONTENT позволяет локальной разработке отображать производственный контент. Приложение можно разрабатывать нативно с управлением версиями Ruby через mise или полностью внутри Docker. Тестирование выполняется с помощью RSpec, либо в Docker, либо нативно. Импорт контента использует API Phish.net для сет-листов, требуя ключ API в переменной окружения PNET_API_KEY. Предпочтительный путь импорта — веб-админ-панель по адресу /admin, где администратор может импортировать шоу с archive.org или загрузить файлы, просмотреть сет-лист и границы треков, а затем опубликовать. Пакетный импорт через CLI остается доступным: MP3-файлы, названные в определенном формате, помещаются в папку с датой в имени под ./content/import и обрабатываются задачей Rails, после чего следует интерактивный шаг CLI. Приложение также предоставляет эндпоинт MCP (Model Context Protocol) по адресу POST /mcp для интеграции с ИИ-ассистентами, с инструментами и виджетами, определенными в app/mcp/. README включает заметки по устранению неполадок для конфликтов подключения PostgreSQL, конфликта порта dev-сервера Webpack и установки гема ruby-audio на Mac ARM. Проект был форкнут с разрешения в 2012 году из StreamPhish Джеффом Лангом и поддерживается Джастином Крейгом-Куном.