d612b40fdb3543ff5ac5b221c448637a3b62d372
- Merged docker-backend, docker-runner, docker-ui, docker-caddy into a single 'docker' job. Docker Hub is now authenticated once; the credential in ~/.docker/config.json is reused by all four build-push-action steps. Eliminates 3 redundant login, checkout, setup-buildx, and scheduler round-trips. Builds still run sequentially within the job so inline layer cache pushes don't race each other. - docker-ui now downloads the plain ui-build artifact from check-ui directly (previously it depended on upload-sourcemaps which produced ui-build-injected). - release job now only needs: [docker] instead of the previous 5-job list. - Entire upload-sourcemaps job commented out as requested. Re-enable by uncommenting the job block and adding 'upload-sourcemaps' back to the docker job's needs list (also swap ui-build → ui-build-injected artifact).
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