All apps · 0 apps
hera
Docker app from athuull's Repository
Overview
Readme
View on GitHubHera
A self-hosted music recommendation and automated downloader service powered by Last.fm and Downtify. Hera automatically discovers new music tailored to your listening taste, provides direct song and link downloading, and manages your local audio library.
Features
- Automated Cron Downloads: Runs on a configurable schedule (e.g. nightly) to fetch personalized recommendations and download new tracks automatically up to a daily limit.
- Direct Song & Artist Search: Search songs by name with instant track details, cover art preview, and single-click downloading.
- Link & Stream Ingestion: Paste Spotify or web links (tracks, albums, playlists) for seamless automated downloading.
- Personalized Recommendation Modes:
- Hybrid: Blends recent scrobbles, top artists, and listening genres.
- Top Artists: Discovers tracks similar to your most-played artists.
- Recent Scrobbles: Finds music similar to tracks you recently listened to.
- Top Genres / Tags: Recommends tracks from your favorite genres.
- Manual Exploration: Search directly by artist name, track similarity, or genre tags.
- Intelligent Library Deduplication: Multi-tier deduplication indexing (exact title normalization, unicode support, distinctive title extraction, and artist matching) across local files and ID3 tags before downloading to avoid duplicates.
- Download History & Telemetry: Full audit trail recording downloaded, skipped, and failed tracks with timestamps and reason logging.
- Format & Metadata Management: Configurable output formats (MP3 up to 320kbps CBR, FLAC, M4A, Opus), custom cover art resolution, synced lyrics (
.lrc), and automatic.webmto.mp3format cleanup via ffmpeg. - Real-time Progress Dashboard: Terminal-styled minimalist web interface with live dual-progress HUDs (track & batch level) and WebSocket activity feed.
Quick Start
Docker Compose
services:
downtify:
image: henriquesebastiao/downtify:latest
container_name: hera-downtify
volumes:
- ${MUSIC_DIR:-./music}:/downloads
networks:
- hera-net
restart: unless-stopped
hera:
image: athuul/hera:latest
container_name: hera
depends_on:
- downtify
ports:
- "8080:8080"
environment:
- DOWNTIFY_API_URL=http://downtify:8000
- MUSIC_DOWNLOAD_DIR=/music/downloads
- APP_CONFIG_DIR=/config
volumes:
- ${MUSIC_DIR:-./music}:/music/downloads
- ${CONFIG_DIR:-./config}:/config
networks:
- hera-net
restart: unless-stopped
networks:
hera-net:
driver: bridge
By default, downloads save to ./music and configuration to ./config. To customize these paths, copy .env.example to .env (or set MUSIC_DIR and CONFIG_DIR):
cp .env.example .env
# Edit MUSIC_DIR=/path/to/your/music and CONFIG_DIR=/path/to/your/config
Start with:
docker compose up -d
Open http://localhost:8080 and enter your Last.fm API key and username in the settings panel.
Configuration
Settings can be managed directly in the web UI (saved to /config/settings.json) or set via environment variables:
| Variable | Default | Description |
|---|---|---|
DOWNTIFY_API_URL |
http://localhost:8000 |
URL of the Downtify backend |
MUSIC_DOWNLOAD_DIR |
/music/downloads |
Path to downloaded music folder |
APP_CONFIG_DIR |
./ |
Path where settings.json is stored |
LASTFM_API_KEY |
(empty) | Last.fm API key |
LASTFM_USERNAME |
(empty) | Last.fm username |
CRON_SCHEDULE |
0 0 2 * * * |
Cron expression for auto-download schedule |
Acknowledgments
- Backend downloading powered by Downtify by Henrique Sebastião.
- Recommendations powered by the Last.fm API.
Media gallery
1 / 4Install Hera on Unraid in a few clicks.
Find Hera in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Download Statistics
Related apps
Explore more like this
Explore allDetails
athuul/hera:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8080]- Network
bridge- Privileged
- false
Template configuration
HTTP port for the Hera Web UI
- Target
- 8080
- Default
- 8080
Directory where downloaded audio files are stored (must match Downtify's download folder)
- Target
- /music/downloads
- Default
- /mnt/user/data/media/music
Persistent directory for Hera settings and history
- Target
- /config
- Default
- /mnt/user/appdata/hera
Container timezone (e.g. America/New_York, Europe/London, Asia/Kolkata)
- Target
- TZ
- Default
- Etc/UTC
URL to the Downtify backend container
- Target
- DOWNTIFY_API_URL
- Default
- http://[IP]:8000
Your Last.fm API Key (can also be entered in the WebUI)
- Target
- LASTFM_API_KEY
Your Last.fm Username (can also be entered in the WebUI)
- Target
- LASTFM_USERNAME
Cron expression for automated nightly download pipeline
- Target
- CRON_SCHEDULE
- Default
- 0 0 2 * * *