Admin
|
1118392811
|
chore: add .gitignore, CrowdSec acquis config, update architecture docs
- .gitignore: exclude crowdsec/.crowdsec.env (bouncer API key), .env.local,
and compiled Go binaries (backend/bin/, backend/healthcheck)
- crowdsec/acquis.yaml: log acquisition config for CrowdSec agent
- docs: update d2 and mermaid diagrams to reflect MinIO bucket renames
(libnovel-chapters→chapters, libnovel-audio→audio, libnovel-browse→catalogue),
remove /api/browse, update presigned URL paths
|
2026-03-23 16:36:23 +05:00 |
|
Admin
|
5b27d501af
|
feat(v3): Caddy hardening, Watchtower, scrape fixes, docs diagrams
- Caddy: custom image with caddy-ratelimit plugin, security headers
(X-Frame-Options, HSTS, CSP-adjacent, etc.), per-IP rate limiting on
auth/scrape/global zones, static error pages (502/503/504), fix routing
to remove /api/scrape/* and /api/chapter-text-preview/* direct-to-backend
(were bypassing SvelteKit auth middleware)
- docker-compose: Caddy build context + error volume, Watchtower service
(label-enable mode, 5 min poll), watchtower labels on backend/runner/ui
- Scraper: ScrapeChapterList uses retryGet (9 attempts, Retry-After backoff)
to fix 429-induced chapter list failures; upTo param stops pagination early
for range scrapes
- UI: Browse→Catalogue rename (routes, API, links), admin scrape page
Continue/Retry buttons, +error.svelte branded error page, type cleanup
(removed dead exports, added BookPreviewMeta/BookPreviewResponse to scraper.ts)
- Meilisearch: meta_updated field, sort=update fix, facet distribution
- Docs: reorganise into docs/d2/ and docs/mermaid/ subdirectories, update
all diagrams to reflect Caddy/Watchtower/routing changes, add
api-routing.d2 ownership map with auth-level colour coding, regenerate SVGs
|
2026-03-22 21:10:38 +05:00 |
|