# 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`](doc/plan.md) for the agreed plan and the [Gitea wiki](https://gitea.brasse-pc.eu/brasse/lyssnarr/wiki) for architecture notes. ## Prerequisites (dev box = Arch/Garuda) ```bash sudo pacman -S nodejs npm # node >= 20 ``` ## Build & run ```bash 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`.