Three operational gaps tripped a recent review: 1. **Postgres had no `restart:` policy.** tor / docker-socket-proxy / vision-manager all set `unless-stopped`; pg was the lone exception. A transient OOM or panic left backend's `depends_on: service_healthy` blocking every future restart and took the stack offline. Add `unless-stopped` on postgres and on backend/frontend in the base compose so the prod overlay is the same shape. 2. **`BACKEND_PROXY_TIMEOUT_MS` was documented but silently a no-op.** `.env.example` carried it but `docker-compose.yml` never forwarded it into the frontend service env, so the value never reached `hooks.server.ts`. Wire it through. 3. **`.env.example` omitted required env vars.** Operators copying the template got no admin bootstrap, no boot-seed crawler URL, no analysis configuration. Add: `ADMIN_USERNAME`, `ADMIN_PASSWORD`, `PRIVATE_MODE`, `ALLOW_SELF_REGISTER`, `CRAWLER_START_URL`, `CRAWLER_CDN_HOST`, `ANALYSIS_ENABLED`, `ANALYSIS_VISION_URL`, `ANALYSIS_VISION_MODEL`, `ANALYSIS_WORKERS`, `ANALYSIS_JOB_TIMEOUT_SECS`, `ANALYSIS_API_KEY` — each with the comment block that explains seed-vs-runtime semantics. Also adds `frontend/vite.config.ts.timestamp-*.mjs` to `.gitignore` — a crashed dev server leaves these transient files behind otherwise. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
54 lines
1.1 KiB
Plaintext
54 lines
1.1 KiB
Plaintext
# Rust
|
|
/backend/target
|
|
/backend/.sqlx
|
|
|
|
# Node / SvelteKit
|
|
/frontend/node_modules
|
|
/frontend/.svelte-kit
|
|
/frontend/build
|
|
/frontend/test-results
|
|
/frontend/playwright-report
|
|
# Vite writes these transient files next to vite.config.ts while the dev
|
|
# server is running, then deletes them on clean shutdown — but a crashed
|
|
# server leaves them behind. Keep them out of `git status` either way.
|
|
/frontend/vite.config.ts.timestamp-*.mjs
|
|
|
|
# Local storage volume (manga files). `/data` is the root path the
|
|
# compose volume mounts at; `/backend/data` is where the dev backend
|
|
# writes when STORAGE_DIR isn't overridden (default `./data/storage`
|
|
# relative to backend cwd).
|
|
/data
|
|
/backend/data
|
|
|
|
# Env
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
.env.dev
|
|
|
|
# Node install / Playwright output when run from the repo root (the
|
|
# canonical copies live under /frontend, already ignored above).
|
|
/node_modules
|
|
/test-results
|
|
|
|
# Claude Code (personal overrides only; .claude/settings.json is committed)
|
|
.claude/settings.local.json
|
|
.claude/.session/
|
|
|
|
# IDEs / editors
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Logs
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|