$ account streamaserver
Streama is a self-hosted media streaming server implemented as a Grails 3 (Groovy) monolith with an AngularJS 1.x single-page application frontend. In production, it allows users to upload or mount video files (movies, TV shows, generic videos), fetch metadata from TheMovieDB, stream videos via HTTP range requests (or optional transcoding via FFmpeg), manage subtitles (manual or from OpenSubtitles), track viewing progress, and manage multi-profile accounts with role-based access. The system relies on MySQL (or H2 for dev), Java 8, and external APIs (TheMovieDB, OpenSubtitles). The architecture is a traditional Grails web application with RESTful controllers, Groovy services for business logic, and a rich client-side AngularJS interface that includes a custom video player directive, admin panels, and dashboard views. The codebase shows signs of a long-lived project with a large number of vendored frontend dependencies (Bower-managed), some now outdated (AngularJS 1.x, jQuery UI, Bootstrap 3). While the application is functional and well-documented, the technology stack is aging, and the frontend particularly would benefit from modernization.