From 391fad6375488a0356c1c9e196f553c640c861ad Mon Sep 17 00:00:00 2001 From: Fern Garden Date: Sat, 19 Jul 2025 10:24:35 +0800 Subject: [PATCH] Add explo --- navidrome/compose.yaml | 18 +++++++++ navidrome/explo.env | 84 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 navidrome/explo.env diff --git a/navidrome/compose.yaml b/navidrome/compose.yaml index aaadb6e..c0e9ad5 100644 --- a/navidrome/compose.yaml +++ b/navidrome/compose.yaml @@ -15,14 +15,32 @@ services: - ND_PLAYLISTSPATH=Playlists networks: - default + - media - proxy restart: unless-stopped labels: caddy: music.fern.garden caddy.import: authentik + explo: + image: ghcr.io/lumepart/explo:latest + restart: unless-stopped + container_name: explo + volumes: + - ./explo.env:/opt/explo/.env + - /media/media/beets/explo:/data/ + - /media/downloads/slskd/downloads:/slskd/ + networks: + - default + - media + environment: + - TZ=Australia/Perth + - CRON_SCHEDULE=00 07 * * 1 # Runs weekly, every Monday at 07:00 + networks: default: + media: + external: true proxy: external: true diff --git a/navidrome/explo.env b/navidrome/explo.env new file mode 100644 index 0000000..6eb67b4 --- /dev/null +++ b/navidrome/explo.env @@ -0,0 +1,84 @@ +# === Discovery Config === + +# Service which recommends songs (only 'listenbrainz' is supported) +# DISCOVERY_SERVICE=listenbrainz +# Your ListenBrainz username +LISTENBRAINZ_USER=mtqueerie +# 'playlist' to fetch weekly playlist (50 songs), 'api' for fewer songs (good for testing) (default: playlist) +# LISTENBRAINZ_DISCOVERY=playlist + +# === Music System Configuration === + +# Music system you use: emby, jellyfin, mpd, plex or subsonic +EXPLO_SYSTEM=subsonic +# Address of your media system (e.g. http://127.0.0.1:4533) +SYSTEM_URL=http://navidrome:4533 +# Username with access to system (required for all except mpd) +SYSTEM_USERNAME=fern +# Password for the user (required for subsonic, recommended for plex) +SYSTEM_PASSWORD=${ND_SYSTEM_PASSWORD} +# API Key from your media system (required for emby and jellyfin, optional for plex) +API_KEY=${ND_API_KEY} +# Name of the music library in your system (emby, jellyfin, plex) +# LIBRARY_NAME= + +# === Downloader Configuration === + +# Directory to store downloaded tracks. It's recommended to make a separate directory (under the music library) for Explo +# PS! This is only needed when running the binary version, in docker it's set through volume mapping +# DOWNLOAD_DIR=/path/to/musiclibrary/explo/ +# Comma-separated list (no spaces) of download services, in priority order (default: youtube) +DOWNLOAD_SERVICES=slskd,youtube + +# Directory for writing .m3u playlists (required only for MPD) +# PLAYLIST_DIR=/path/to/playlist/folder/ + +# === YouTube Configuration === + +# YouTube Data API key (required if using youtube) +YOUTUBE_API_KEY=${YOUTUBE_API_KEY} +# Custom path to ffmpeg binary (default: defined in $PATH) +# FFMPEG_PATH= +# Custom path to yt-dlp binary (default: defined in $PATH) +# YTDLP_PATH= +# Comma-separated (without spaces) keywords to exclude from YouTube results (default: live,remix,instrumental,extended) +# FILTER_LIST=live,remix,instrumental,extended + +# === Slskd Configuration === + +# Slskd instance address (requires running instance) +SLSKD_URL=http://slskd:5030 +# Slskd API key +SLSKD_API_KEY=${SLSKD_API_KEY} +# Whether to move downloads under the DOWNLOAD_DIR or not (default: false) +# MIGRATE_DOWNLOADS=false +# Directory where slskd downloads tracks (default: /slskd/) +# PS! This is only needed on the binary version, in docker it's set through volume mapping +# SLSKD_DIR=/slskd/ +# Number of times to check search status before skipping the track (default: 5) +# SLSKD_RETRY=5 +# Number of download attempts for a track (default: 3) +# SLSKD_DL_ATTEMPTS=3 + +## Slskd Filtering + +# Comma-separated (without spaces) file extensions to download from (default: flac,mp3) +# EXTENSIONS=flac,mp3 +# Minimal Bit Depth (default: 8) +# MIN_BIT_DEPTH=8 +# Minimal Bitrate (default: 256) +# MIN_BITRATE=256 + +# === Metadata / Formatting === + +# Set to true to merge featured artists into title (recommended), false appends them to artist field (default: true) +# SINGLE_ARTIST=true + +# === Misc === + +# Minutes to sleep between library scans (default: 2) +# SLEEP=2 +# Keep previous weeks’ discoveries (set false if folder only holds discovered tracks (deletes every file from folder)) (default: true) +PERSIST=false +# Enable additional debug logs (default: false) +# DEBUG=false