search-engine/crawler
King Omar b0496a5ac1 Run crawler as guarded systemd service; fix stall
The crawl stalled when two crawler processes briefly overlapped on the same
WAL SQLite frontier (node:sqlite is synchronous, so a blocked write lock froze
the event loop). Fixes:
- run the crawler as a single-instance systemd service (search-crawler.service)
  with CPUQuota=150% + MemoryMax=1200M so it can't starve a shared VM
- add timeouts to all Meilisearch calls + resilient flush (an untimed hang was
  the amplifier that wedged every worker)
- crawl-diskguard.sh + cron: auto-stop the crawl and ntfy-alert if disk < 800MB

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 02:51:03 +10:00
..
src Run crawler as guarded systemd service; fix stall 2026-07-22 02:51:03 +10:00
package.json Overhaul crawler: depth crawl, link graph, robots, sitemaps, authority 2026-07-22 02:26:22 +10:00