Sobre el proyecto

Mastarr es una aplicación de código abierto diseñada para revisar medios descargados y conciliarlo con pilas de medios existentes, específicamente dirigida a la integración con Radarr, Sonarr, Jellyfin y Seerr. Actualmente en la fase de implementación para la versión 0.0.1, el proyecto proporciona un marco sólido para descubrir archivos de video y subtítulos dentro de directorios de descarga configurados, incluidos aquellos donde se ha perdido el historial de descarga. La funcionalidad central gira en torno a un panel de revisión integral que muestra la procedencia de la descarga, los medios rastreados y los estados distintos para el registro, la importación y la disponibilidad en todas las instancias conectadas. Los usuarios pueden realizar acciones como registrar e importar medios a través de aplicaciones Arr, colocar archivos directamente en bibliotecas u organizar y limpiar archivos. Cada una de estas acciones se expone a través de contratos REST independientes, lo que garantiza una estructura de API clara. Técnicamente, Mastarr emplea un backend basado en Go que utiliza puertos de arquitectura hexagonal, oapi-codegen para la generación de API, SQLite para el almacenamiento de datos, sqlc para SQL seguro y golang-migrate para migraciones de bases de datos. El frontend es servido por un módulo UI de Go anidado que actúa como Backend-For-Frontend (BFF) para el panel de Goshtoso. El sistema admite flujos de trabajo duraderos, que muestran aprobaciones, fallas parciales, reintentos y estados de cancelación. Se planean características de seguridad como autenticación básica y OIDC para versiones futuras (v0.0.2), con v0.0.1 centrándose en la funcionalidad central sin autenticación de aplicación. El proyecto incluye documentación detallada que cubre especificaciones del sistema, contratos HTTP, puertos de conector, mecanismos de recuperación de datos, opciones de configuración y límites del panel. Se enfatiza un proceso de desarrollo estructurado con carriles de implementación, matrices de aceptación y hooks previos al commit para la calidad del código.