All checks were successful
build-and-push / build (push) Successful in 32s
- backend: /api/health, /api/login|logout|session, sessionscookie, timingSafeEqual-lösenordskoll, allt annat under /api kräver inloggning, serverar byggd frontend med SPA-fallback; 4 tester (node:test) - frontend: Vue 3 + Vite, login-sida, Upptäck-skal, sökfält (stub), mörkt tema enligt Jellyseerr-förlagan - docker: multi-stage arm64-image; config-plumbing för Lidarr/Jellyfin/ Gemini via env (Jellyfin-historik prioriterad som signal per Björn) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01824ZrvG2mDYYrmwqypLNup
48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# 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`.
|