45a0190d750b9ffb93fddc2c9b5137ef17ffacc0
All checks were successful
Release / Test backend (push) Successful in 40s
Release / Check ui (push) Successful in 1m38s
Release / Docker / caddy (push) Successful in 41s
Release / Docker / backend (push) Successful in 3m15s
Release / Docker / runner (push) Successful in 4m34s
Release / Upload source maps (push) Successful in 1m33s
Release / Docker / ui (push) Successful in 3m39s
Release / Gitea Release (push) Successful in 40s
- Add POST /api/admin/text-gen/chapter-names/async backend endpoint: fire-and-forget, returns job_id immediately (HTTP 202), runs batch generation in background goroutine, persists proposed titles in ai_job payload when done - Register new route in server.go alongside existing SSE endpoint (backward compat) - Add SvelteKit proxy at /api/admin/text-gen/chapter-names/async - Add SvelteKit proxy for GET /api/admin/ai-jobs/[id] (job detail with payload) - Add Review button on ai-jobs page for done chapter-names jobs; inline panel shows editable title table (old to new) with Apply All button that POSTs to chapter-names/apply
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