* feat(db): add MediaType discriminator to Movies table Adds foundation for multi-media support by: - Adding MediaType column to Movies table (migration 244) - Adding MediaType property to Movie entity, defaulting to Movie Existing movies will have MediaType=1 (Movie) after migration. This prepares for future Book and Audiobook media types. Addresses Issue #1 * refactor(core): create MediaItem abstract base class Extracts common properties from Movie into a new MediaItem base class: - MediaType, Monitored, QualityProfileId - Path, RootFolderPath, Added, Tags, LastSearchTime Movie now inherits from MediaItem and implements abstract methods GetTitle() and GetYear() while maintaining backward-compatible Title/Year property accessors. This prepares for Book and Audiobook entities that will share the same base structure. Addresses Issue #1 * feat(core): add Author and Series entities for hierarchical monitoring Introduces hierarchical structure for books/audiobooks: - Author entity: tracks authors with monitoring, quality profiles, paths - Series entity: groups books/audiobooks by series, linked to Author - MediaItem: adds AuthorId and SeriesId for hierarchy support - Migration 245: creates Authors and Series tables, adds columns to Movies This enables Author → Series → Item monitoring inheritance for future book and audiobook support. Addresses Issue #2 * feat(core): add generic IProvideMediaInfo interface Introduces generic metadata provider interfaces: - IProvideMediaInfo<T>: Base interface for all metadata providers - GetByExternalId, GetById, GetBulkInfo - GetTrending, GetPopular, GetChangedItems - ISearchableMediaProvider<T>: Search capability interface - SearchByTitle with optional year filtering These interfaces establish the contract for future book and audiobook metadata providers while maintaining compatibility with the existing IProvideMovieInfo. Addresses Issue #3 * feat(qualities): add book and audiobook quality definitions Add quality source types and definitions for eBooks and audiobooks: - EBOOK source: Unknown, EPUB, MOBI, AZW3, PDF, TXT - AUDIOBOOK source: Unknown, MP3-128, MP3-320, M4B, FLAC Quality definitions include appropriate size limits for each format. New qualities auto-seed to database via QualityDefinitionService on startup. Closes #4, Closes #5 --------- Co-authored-by: admin <admin@ardentleatherworks.com> |
||
|---|---|---|
| .devcontainer | ||
| .github | ||
| .husky | ||
| .vscode | ||
| distribution | ||
| docker | ||
| docs | ||
| frontend | ||
| Logo | ||
| research | ||
| schemas | ||
| scripts | ||
| src | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .secretlintrc.json | ||
| .yarnrc | ||
| azure-pipelines.yml | ||
| build.sh | ||
| CHANGELOG.md | ||
| CLA.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| docs.sh | ||
| global.json | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| SECURITY.md | ||
| sonar-project.properties | ||
| test.sh | ||
| tsconfig.json | ||
| yarn.lock | ||
Aletheia
All-in-one media manager for movies, books, and audiobooks.
Overview
Aletheia (from Greek ἀλήθεια - "truth, disclosure") is a unified media management system forked from Radarr. It provides automated monitoring, downloading, and library management for multiple media types through a single interface. It's an ambitious attemp to merge much of the functionality of the arr apps. This, in addition to many personal feature requests, QoL improvements, and privacy/security updates.
Current Status: Active development. Movie functionality inherited from Radarr is working. Multi-media foundation being implemented.
Features
Movies (working):
- Automated monitoring and quality upgrades
- Metadata and artwork management
- Integration with download clients and indexers
Books (in development):
- EPUB, MOBI, PDF quality tracking
- Author and series hierarchy
- Goodreads/Hardcover metadata
Audiobooks (in development):
- M4B, MP3, etc. support
- Narrator tracking
- Duration metadata and Audible integration
General:
- Usenet and BitTorrent support
- SABnzbd, NZBGet, qBittorrent, Deluge, rTorrent, Transmission integration
- Plex and Kodi integration
- Built-in archive extraction (Unpackerr functionality)
Privacy
Telemetry and analytics are disabled by default:
- No usage analytics or behavior tracking
- No machine fingerprinting or unique identifiers
- Error reporting (Sentry) is opt-in
- Update checks only send version and platform info (no personal data)
To enable error reporting for troubleshooting, toggle Analytics in Settings → General.
What data is collected if you opt-in:
- Anonymous error reports via Sentry (stack traces, OS version, app version)
- No personally identifiable information is ever collected
Quick Start
docker run -d \
--name=aletheia \
-e PUID=1000 \
-e PGID=1000 \
-p 7878:7878 \
-v /path/to/config:/config \
-v /path/to/media:/media \
--restart unless-stopped \
ghcr.io/cheir-mneme/aletheia:latest
Web interface: http://localhost:7878
Building from Source
Requirements: .NET 8.0 SDK, Node.js 20+, Yarn
git clone https://github.com/cheir-mneme/aletheia.git
cd aletheia
./build.sh --backend --frontend
dotnet run --project src/Radarr
Roadmap
See ROADMAP.md for detailed phase planning.
Completed:
- Phase 0-1: Privacy & security fixes
- Phase 2: Foundation (fork, CI/CD, branding)
- Phase 2.5: Community standards, quality gates, Unpackerr absorption
Current:
- Phase 3: Multi-media foundation (database generalization, indexer management)
Planned:
- Phase 4: Books & audiobooks support
- Phase 5: TV shows
- Phase 6: Music (with fingerprinting and quality analysis)
- Phase 7: Subtitles (Bazarr replacement), podcasts, comics
Contributing
See CONTRIBUTING.md for development setup, code guidelines, and PR process.
Development standards:
- Conventional commits (
feat:,fix:,docs:, etc.) - Feature branches + PRs to
develop - Pre-commit hooks for linting
License
Aletheia is a derivative of Radarr. Copyright 2010-2025.