Sobre o projeto
Phish.in é um arquivo open source de gravações de audiência ao vivo do Phish. O backend combina Ruby on Rails e uma Grape API sobre um banco de dados PostgreSQL, enquanto um frontend web React em phish.in permite que os usuários naveguem e reproduzam áudio. Uma API JSON (documentada via Swagger) permite acesso programático ao conteúdo.
O áudio é fornecido em formato MP3, com a possibilidade de mais formatos e fontes posteriormente. Assets como MP3s, PNGs de forma de onda e JPEGs de arte de álbum são servidos diretamente do servidor web e armazenados em cache através do CloudFlare CDN. Uma comunidade Discord existe para discutir conteúdo e desenvolvimento, e um bot Discord separado pode consultar setlists e reproduzir música em canais de voz.
A configuração de desenvolvimento depende do Docker e do mise. Os desenvolvedores clonam o repositório, criam um arquivo .env a partir do exemplo, executam a task de serviços e importam um dump SQL de desenvolvimento fornecido no container PostgreSQL. Uma flag PRODUCTION_CONTENT permite que o desenvolvimento local apresente o conteúdo de produção. O app pode ser desenvolvido nativamente com gerenciamento de versão do Ruby via mise, ou inteiramente dentro do Docker. Os testes são feitos com RSpec, seja no Docker ou nativamente.
A importação de conteúdo usa a API do Phish.net para setlists, exigindo uma chave de API na variável de ambiente PNET_API_KEY. O caminho de importação preferido é um painel administrativo web em /admin, onde um administrador pode importar um show do archive.org ou fazer upload de arquivos, revisar setlist e limites de faixas, e publicar. Uma importação em lote via CLI permanece disponível: MP3s nomeados em um formato específico são colocados em uma pasta nomeada por data sob ./content/import e processados com uma task do Rails, seguida por uma etapa interativa de CLI.
O aplicativo também expõe um endpoint MCP (Model Context Protocol) em POST /mcp para integração com assistentes de IA, com ferramentas e widgets definidos em app/mcp/. O README inclui notas de solução de problemas para conflitos de conexão do PostgreSQL, um conflito de porta do servidor de desenvolvimento Webpack e a instalação da gem ruby-audio no Mac ARM.
O projeto foi bifurcado com permissão em 2012 do StreamPhish por Jeff Lang, e é mantido por Justin Craig-Kuhn.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.