Sobre el proyecto
Phish.in es un archivo de código abierto de grabaciones de audiencia en vivo de Phish. El backend combina Ruby on Rails y una API Grape sobre una base de datos PostgreSQL, mientras que un frontend web React en phish.in permite a los usuarios navegar y reproducir audio. Una API JSON (documentada mediante Swagger) permite el acceso programático al contenido.
El audio se proporciona en formato MP3, con la posibilidad de más formatos y fuentes en el futuro. Los activos, como MP3, PNG de forma de onda y JPEG de carátulas de álbumes, se sirven directamente desde el servidor web y se almacenan en caché a través de la CDN de CloudFlare. Existe una comunidad de Discord para discutir contenido y desarrollo, y un bot de Discord separado puede consultar setlists y reproducir música en canales de voz.
La configuración de desarrollo se basa en Docker y mise. Los desarrolladores clonan el repositorio, crean un archivo .env a partir del ejemplo, ejecutan la tarea de servicios e importan un volcado de SQL de desarrollo proporcionado en el contenedor de PostgreSQL. Una bandera PRODUCTION_CONTENT permite que el desarrollo local presente contenido de producción. La aplicación se puede desarrollar de forma nativa con la gestión de versiones de Ruby mediante mise, o completamente dentro de Docker. Las pruebas se realizan con RSpec, ya sea en Docker o de forma nativa.
La importación de contenido utiliza la API de Phish.net para setlists, lo que requiere una clave API en la variable de entorno PNET_API_KEY. La ruta de importación preferida es un panel de administración web en /admin, donde un administrador puede importar un show desde archive.org o subir archivos, revisar el setlist y los límites de pistas, y publicar. Una importación por lotes de CLI sigue disponible: los MP3 nombrados en un formato específico se colocan en una carpeta con nombre de fecha bajo ./content/import y se procesan con una tarea de Rails, seguida de un paso interactivo de CLI.
La aplicación también expone un endpoint MCP (Protocolo de Contexto de Modelo) en POST /mcp para la integración con asistentes de IA, con herramientas y widgets definidos en app/mcp/. El README incluye notas de solución de problemas para conflictos de conexión de PostgreSQL, un conflicto de puerto del servidor de desarrollo de Webpack e instalación de la gema ruby-audio en Mac ARM.
El proyecto se bifurcó con permiso en 2012 de StreamPhish por Jeff Lang, y es mantenido por Justin Craig-Kuhn.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.