3c33b2251188928c89503378529ec5e16e4e4d56
Replace the two-row layout (toolbar + lonely 'Play narration' button) with a single pill row: - Large circular play button on the left (brand color, active:scale-95) - 'Play narration' label + voice selector button + estimated duration (based on word count at ~150wpm) in the centre - Chapters icon button on the right Voice panel drops inline below the pill when open. Non-idle states (loading / generating / ready / other-chapter-playing) keep the existing toolbar + status layout unchanged. Also adds wordCount prop to AudioPlayer and passes it from the chapter page.
LibNovel
Self-hosted audiobook platform. Go backend + SvelteKit UI + MinIO/PocketBase/Meilisearch.
Requirements
- Docker + Docker Compose
- just
- Doppler CLI
Setup
doppler login
doppler setup # project=libnovel, config=prd
Usage
just up # start everything
just down # stop
just logs # tail all logs
just log backend # tail one service
just build # rebuild images
just restart # down + up
just secrets # view/edit secrets
Secrets
Managed via Doppler (project=libnovel, config=prd). No .env files.
To add or update a secret:
doppler secrets set MY_SECRET=value
Description