- Ny batch-typ 'singers': baseras på de 10 senaste unika sångarna ur gillat (YT Music) + spelat (Jellyfin); Gemini ger per sångare 5 topplåtar + 3 relaterade artister, filtrerade mot Lidarr-biblioteket och gillalistan; klick på kortet öppnar modal med YT-länkar och Hämta-knappar - Förslags-scheman per typ: intervall med enhet (timmar/dagar/månader), antal förslag (1-25) och källo-toggles; gamla intervalHours/ trackIntervalDays migreras automatiskt; schemaläggaren kör alla tre - Inställningar: Förslag-kortet omgjort till hopfällbara sektioner per typ (details/summary) så det inte blir överväldigande - ytmusic: tydligt fel om oauth.json inte kan skrivas (root-ägd mapp var orsaken till 'inte kopplad än' — ägarskap fixat på Pi5) - 28 tester gröna Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01824ZrvG2mDYYrmwqypLNup
lyssnarr
Self-hosted music discovery for the Pi5 — a Jellyseerr-style web UI that finds new music for you. Search for artists/albums/tracks, get scheduled AI-generated suggestions (Gemini) based on what you recently listened to and what you add to your YouTube Music playlists, and add anything to Lidarr with one click — or play it inline / open it in YouTube Music.
See doc/plan.md for the agreed plan and the
Gitea wiki for
architecture notes.
Prerequisites (dev box = Arch/Garuda)
sudo pacman -S nodejs npm # node >= 20
Build & run
git clone gitea-claude:brasse/lyssnarr.git
cd lyssnarr
npm run setup # installs backend + frontend deps
npm run build # -> ./build/ (frontend dist + backend)
npm run dev # dev servers (Vite + Fastify, hot reload)
npm test
Runtime configuration
All secrets live in the Dockge stack .env on the Pi5 — never in the
repo. Key variables (full list in doc/plan.md):
| Var | What |
|---|---|
GEMINI_API_KEY |
Google AI Studio key for suggestion generation |
LIDARR_URL / LIDARR_API_KEY |
Lidarr instance to add music to |
SESSION_SECRET |
cookie signing |
APP_PASSWORD_HASH |
bcrypt hash for the single-user login |
Deploy
CI (.gitea/workflows/build.yaml) builds the arm64 image on the Pi5
runner and pushes localhost:5000/lyssnarr:latest; the Dockge stack
/srv/dockge-staks/lyssnarr/ runs it behind NPM as
https://lyssnarr.brasse-pc.eu.