Commit Graph

6 Commits

Author SHA1 Message Date
Alexander f24543f401 feat: add PostgreSQL persistence and unified sync endpoint
- Add sqlx with PostgreSQL support for database operations
- Create DbService with artist/album upsert and listing methods
- Add database schema (14 tables) in containers/init.sql
- Add library controller (GET /api/library/artists, /albums, /stats)
- Merge sync_artist + ingest into single POST /api/sync endpoint
- Support configurable sync: download (bool), store (bool), album filter
- Connect to database at startup with graceful fallback
2026-04-29 10:06:01 +02:00
Alexander 3aaeade4d3 feat: add artist sync flow and stub torrent client
- Add DownloadService to orchestrate metadata → indexer → torrent flow
- Add POST /api/sync/artist endpoint for syncing artist albums
- Add StubTorrentClient for testing (logs requests to file)
- Refactor TorrentConfig to tagged enum (client_type: qbittorrent|stub|none)
- Add POST /api/reload endpoint for hot config reload
- Add chrono dependency for timestamps
2026-04-28 21:40:11 +02:00
Alexander 925c7c3703 feat: add CLI args, health endpoint, and fix torznab search
- Add clap for CLI argument parsing (-c config, -p port)
- Add health endpoint showing service status at /api/health
- Add IndexerType enum for auto URL construction (jackett/prowlarr/torznab)
- Fix Axum 0.8 route syntax ({param} instead of :param)
- Fix torznab search to use 'q' param instead of artist/album (Jackett only supports q)
2026-04-28 19:16:22 +02:00
Alexander 5afcbd68ad feat: add metadata-agregator gRPC client integration
- Add tonic/prost for gRPC client generation
- Add proto definitions from metadata-agregator service
- Add MetadataClient and MetadataService for gRPC communication
- Add REST controller exposing metadata endpoints (search, get, sync)
- Update config with metadata.endpoint setting
- Update flake.nix with protobuf for proto compilation
2026-04-28 18:58:31 +02:00
Alexander 1aaaab4640 feat: add indexer and torrent REST controllers with service layer
- Add config module for yaml config (database, indexers, torrent)
- Add indexer module with Torznab protocol support
- Add IndexerService and TorrentService for business logic
- Add REST controllers for indexer search and torrent management
- Add Docker Compose for PostgreSQL and Jackett
- Add ERD documentation for database schema
2026-04-28 18:53:50 +02:00
Alexander 7c55e5cddd chore: initialize rust project with axum
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-28 18:05:27 +02:00