mirror of
https://github.com/dbv111m/musicgrabber.git
synced 2026-10-19 01:31:29 -05:00
- Search replacement on any album-browser track: the bad copy goes to Trash, the replacement keeps the folder, pressing, tags, and disc/track numbering, and the album M3U refreshes. Busy albums, stale selections, and ambiguous files get refused rather than guessed at. - The Artists tab explains what following an artist actually includes: release-level credits, shared and featured credits, and the MusicBrainz release types that are skipped. - Settings shows the configured bind address and port, /api/config exposes them, LISTEN_PORT rejects nonsense at startup, and the README covers VPN-container networking for Compose and Unraid. Built with a human, a grumpy AI, and Codex, which did the heavy lifting on this one while the grumpy AI held the clipboard.
61 lines
2.6 KiB
YAML
61 lines
2.6 KiB
YAML
services:
|
|
music-grabber:
|
|
build: .
|
|
container_name: music-grabber
|
|
restart: unless-stopped
|
|
# Browser fallbacks need shared memory: Spotify playlists and Monochrome authentication can fail without this.
|
|
shm_size: '2gb'
|
|
ports:
|
|
- "38274:8080"
|
|
volumes:
|
|
# Mount your music library - adjust path as needed
|
|
- /mnt/music:/music
|
|
# Persist the job database and settings
|
|
- ./data:/data
|
|
# Optional: slskd downloads directory for Soulseek integration
|
|
- /mnt/music/downloads:/downloads
|
|
environment:
|
|
# Required paths
|
|
- MUSIC_DIR=/music
|
|
- DB_PATH=/data/music_grabber.db
|
|
# Optional: serve behind a reverse-proxy subpath (proxy must strip the prefix)
|
|
# - ROOT_PATH=/musicgrabber
|
|
# Optional: custom bind (defaults to 0.0.0.0:8080 if unset).
|
|
# If LISTEN_PORT changes, update the right side of ports above to match.
|
|
# Shared VPN network: remove this service's ports/networks, publish on
|
|
# the VPN container instead; see README "VPN-container networking".
|
|
# Recreate the container after changing environment variables.
|
|
# IPv6 demo (commented out):
|
|
# - LISTEN_ADDR=::
|
|
# - LISTEN_PORT=8080
|
|
# Optional: Run as specific user (like *arr stack)
|
|
# - PUID=1000
|
|
# - PGID=1000
|
|
# Optional: slskd downloads path (if using Soulseek)
|
|
- SLSKD_DOWNLOADS_PATH=/downloads
|
|
# Optional: increase timeouts for long tracks (DJ mixes, symphonies) or slow connections
|
|
# - TIMEOUT_YTDLP_DOWNLOAD=300 # yt-dlp download (default 5 min)
|
|
# - TIMEOUT_FFMPEG_CONVERT=120 # ffmpeg format conversion (default 2 min)
|
|
# Optional: add to your existing network if running with Navidrome/Jellyfin
|
|
# networks:
|
|
# - your-network
|
|
|
|
# =============================================================================
|
|
# CONFIGURATION
|
|
# =============================================================================
|
|
# Most settings can now be configured via the Settings tab in the web UI.
|
|
# Settings are stored in the SQLite database and persist across restarts.
|
|
#
|
|
# Environment variables can still be used to override UI settings:
|
|
# - SLSKD_URL, SLSKD_USER, SLSKD_PASS
|
|
# - NAVIDROME_URL, NAVIDROME_USER, NAVIDROME_PASS
|
|
# - JELLYFIN_URL, JELLYFIN_API_KEY
|
|
# - TELEGRAM_WEBHOOK_URL
|
|
# - SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_FROM, SMTP_TO, SMTP_TLS
|
|
# - NOTIFY_ON (singles,playlists,bulk,errors)
|
|
# - ENABLE_MUSICBRAINZ, ENABLE_LYRICS, DEFAULT_CONVERT_TO_FLAC
|
|
# - API_KEY (for authentication)
|
|
#
|
|
# When an env var is set, that setting will be locked in the UI.
|
|
# - DEFAULT_CONVERT_TO_FLAC=true
|