Admin ac7b686fba
All checks were successful
Release / Test backend (push) Successful in 41s
Release / Check ui (push) Successful in 45s
Release / Docker / caddy (push) Successful in 45s
Release / Docker / backend (push) Successful in 2m53s
Release / Docker / runner (push) Successful in 2m34s
Release / Docker / ui (push) Successful in 1m56s
Release / Gitea Release (push) Successful in 20s
fix: don't save settings immediately after login
The save-settings $effect was firing on the initial data load because
settingsApplied was set to true synchronously in the apply effect, then
currentTheme/fontFamily/fontSize were written in the same tick — causing
the save effect to immediately fire with uninitialized default values
(theme: "", fontFamily: "", fontSize: 0), producing a 400 error.

- Add settingsDirty flag, set via setTimeout(0) after initial apply so
  the save effect is blocked for the first load and only runs on real
  user-driven changes
- Also accept empty string / 0 as 'not provided' in PUT /api/settings
  validation as a defensive backstop
2026-04-03 21:07:01 +05:00

LibNovel

Self-hosted audiobook platform. Go backend + SvelteKit UI + MinIO/PocketBase/Meilisearch.

Requirements

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
No description provided
Readme 88 MiB
v4.5.5 Latest
2026-04-27 11:46:23 +05:00
Languages
Go 99.4%
Dockerfile 0.6%