跳到正文
GitHub·· 3 天前AI 评分22

Digarr v1.19.0 发布:自托管音乐发现工具,支持 Lidarr、slskd 与 AI 推荐

iuliandita/digarr

AI 导读

自托管音乐发现工具 Digarr 发布 v1.19.0,新增可选流派优先级与歌单生成结果,并改进发现品味画像与种子选择。它可从 ListenBrainz、Last.fm、Spotify 等收听历史或情绪生成带评分的艺术家与专辑建议,审核后推送到 Lidarr、slskd 或歌单。

正文

Digarr

CI License: MIT Bun TypeScript Docker Tests Release

Self-hosted music discovery for your library. Digarr finds artists and albums from your listening history or a mood. Review the suggestions, listen to previews, then send what you like to Lidarr, slskd, or a playlist. Bring your own AI provider or local model. Lidarr is optional.

Note

v1.19.0 is out. This release adds optional genre priorities and playlist generation outcomes, improves discovery taste profiles and seed selection, and explains unavailable previews. See the changelog for release details.

Dashboard

This dashboard capture predates v1.19.0; see current behavior and screenshots.

More screenshots | Quick start | Configuration | Documentation

What you can do

  • Find artists and albums. Connect a listening source, scan, and review scored suggestions. Release Radar finds new releases; Library Gap-Fill finds missing albums. Mood and artist searches work without a listening history.
  • Review before adding. Preview, approve, reject, or permanently block suggestions. Individual and bulk album approval monitor and search only the recommended album in Lidarr. Automatic approval follows the auto-approve monitoring setting, which defaults to all albums.
  • Keep discovery running. Schedule scans and subscriptions, or generate playlists for Spotify and supported media servers. Audition playlists use pending artists without approving them. You can also export M3U/XSPF files. Media-server exports use music already in that server's library.
  • Share an instance. Each user has their own queue, connections, and preferences; admins assign targets to each user. Local accounts and OIDC/SSO are supported, with 15 languages and light and dark themes.

Digarr calls your connected services. It doesn't include a downloader or a full music player.

AI suggestions and MusicBrainz matches can be wrong, so check the artist and release before approving. Playlist generation reports local results; it doesn't verify remote playback. Media-server exports can substitute an unmatched track. See known limitations.

Connections at a glance

Use Services
Scan taste-profile sources ListenBrainz, Last.fm, Spotify, Plex, Jellyfin, Emby, Subsonic, Discogs
Deezer feeds Flow, favorites, followed artists, and playlists (own app required)
Library sync Lidarr, Plex, Jellyfin, Emby, Subsonic
Approval and acquisition Lidarr, slskd
Playlist export Spotify, Navidrome, Jellyfin, Emby, Plex
Search Spotify, Deezer, MusicBrainz; Bandcamp and TIDAL (both experimental)
AI recommendations Anthropic, OpenAI, Gemini, Ollama, OpenAI-compatible endpoints
Notifications Webhooks, ntfy, Telegram, Apprise

A connection's capabilities differ by service. Release Radar requires ListenBrainz, Spotify, or Last.fm. Spotify Saved Albums and Followed Artists, Deezer Flow, and Subsonic Starred have focused discovery modes.

Privacy and credentials

Your database runs on your server. Connected services still receive requests: hosted AI providers receive discovery prompts, metadata services receive lookups, and embedded previews contact their providers. A local AI model keeps AI requests local, but does not make all of Digarr offline.

Set and retain DIGARR_ENCRYPTION_KEY before saving service credentials. Without it, sensitive database fields are stored unencrypted. Back up the key separately from the database; losing it means re-entering encrypted credentials. Application exports preserve persistent state; a native consistent database backup is still required for exact schema rollback. Required automatic-backup failures stop migrations. See the key rotation guide before changing an existing key.

Quick start

You need Docker and access to an AI provider or local model. Digarr includes an embedded PostgreSQL database (PGlite), so this runs as one container:

mkdir digarr && cd digarr &&
(set -C; umask 077 && key=$(openssl rand -hex 32) && printf 'DIGARR_ENCRYPTION_KEY=%s\n' "$key" > digarr.env) &&
docker run -d --name digarr --restart unless-stopped -p 127.0.0.1:3000:3000 \
  --env-file ./digarr.env \
  -e ALLOWED_ORIGIN=http://localhost:3000 \
  -e DIGARR_ALLOW_INSECURE_COOKIES=true \
  -v digarr-data:/app/data -v digarr-backups:/app/backups \
  docker.io/iuliandita/digarr:latest

This local-only HTTP example needs OpenSSL and saves the key in protected digarr.env. Retain that file for container recreation and recovery. The cookie override avoids browser-dependent Secure-cookie handling on localhost. For other devices, configure an HTTPS public origin; deliberate HTTP exposes session cookies to interception.

Open http://localhost:3000 and complete setup. Passwords need 12 characters. The first account becomes admin; further local self-registration is closed by default. OIDC can still create accounts, so restrict access at your identity provider.

Use :latest for the newest release, a minor tag like :1.19 for patch updates, or a specific patch like :1.19.0 to pin a release. Only the newest release receives security fixes. See image channels.

For Compose, backend selection, and updates, follow the Docker guide. Keep one app instance per database, verify its backend at /health, and back up before upgrading.

Your first recommendations

  1. Choose Lidarr, Emby, or discovery-only in the setup wizard and configure your AI provider.
  2. Connect a listening source in Settings. Add library sources and targets when needed.
  3. Run a scan from Dashboard or Discover.
  4. Preview, approve, or reject suggestions. Adjust genre priorities in Settings > Recommendations if needed; non-admin saves can report failure after saving, so verify through the preferences API. Use Release Radar or Library Gap-Fill for albums; the net-new album toggle does not persist in v1.19.0.

CSV and playlist imports process the listed artists into recommendations through separate subscription runs. Spotify's Import Liked Songs does the same for saved tracks. Imports do not become inputs to a normal scan.

A scan can complete with a failed source. Admins can check Job History for partial results; other users can refresh Discover. Services without similar-artist lookup still contribute their supported listening and library data. See the pipeline guide for the details.

Configuration

Use Settings for connections, scoring, schedules, preferences, and language. Authentication covers origins, cookies, SSO, and proxies. Operations covers Plex listeners, slskd imports, Data Hygiene, playlists, notifications, and local AI.

Service apps

Spotify needs your own OAuth app, a Premium app owner, and up to five allowlisted Development Mode users. Search needs a connected account. Local HTTP uses 127.0.0.1, with the same ALLOWED_ORIGIN and browser address. Follow Spotify setup before changing the quick-start origin.

TIDAL is experimental: authorization, refresh, and favorite-artist retrieval have not been tested with a live account. Catalog search needs admin-registered credentials; each user connects their own account for Favorite Artists. Follow TIDAL setup. The feedback checklist explains what to report safely.

Backup and restore

Application JSON exports preserve persistent application state and reject unsafe partial restores before writes. Required automatic-backup failures stop migrations. Retain the matching encryption key separately, and use a native consistent database backup for exact schema rollback. Read backup boundaries and recovery before upgrading or restoring, including the explicit native-backup procedure for older schemas. Operations covers application exports and version-specific upgrade notes.

Deployment

Method Path Notes
Docker Compose deploy/docker/ Recommended. Choose single-container PGlite or the bundled PostgreSQL stack. Also on Docker Hub.
Helm chart deploy/helm/digarr/ Kubernetes. Embedded PGlite, bundled PostgreSQL, or your own database. Keep one app replica.
Raw k8s manifests deploy/k8s/ Reference manifests for advanced setups.
Unraid docs/guides/unraid.md In the Community Applications store (search "Digarr"); bundled template (deploy/unraid/digarr.xml) as manual fallback. Embedded PGlite by default; external PostgreSQL optional.
Synology NAS docs/guides/synology.md DSM 7.1+ (Docker/Container Manager). SSH or GUI.
Docker Desktop docs/guides/docker-desktop.md macOS and Windows (WSL 2 or PowerShell).

Check image signatures and SBOM coverage before running a release.

Documentation

Contributing

Bug reports, translations, documentation fixes, and code contributions are welcome. See CONTRIBUTING.md for development setup and checks. Report security problems through the private reporting process.

Most code and tests are AI-generated, with a human setting direction and reviewing changes.

License

MIT. See LICENSE.

来源:GitHub · github.com