Crawler
Generic crawler platform infrastructure β Laravel Crawler plugin plus Python runtime adapter contract.
Statusβ
| Key | Value |
|---|---|
| Layer | core |
| Tier | L1 |
| Status | wip |
| Version | 0.12.0 |
| Price | Free (free) |
| Category | Infrastructure |
Overviewβ
Crawler is a Layer 1 Core Plugin for multi-saas-kit. It provides the standard contract between Laravel applications and an external Python crawler runtime, plus common models for DataSource / CrawlDefinition / CrawlJob / CrawlSchedule / Channel / Item.
As of 0.12.0, Crawler has three boundaries:
- Laravel plugin β
CrawlableInterface,CrawlApiClient, standard Eloquent models, and preservation-safe migrations. - Platform runtime β
platform/service/crawler-runtime, a FastAPI + APScheduler runtime. Its default adapter isnoneand it does not know project-specific tables. - Project adapter package β mounted by each project at
/app/project_adaptersand loaded withCRAWLER_RUNTIME_ADAPTER_FACTORY=<module>:<factory>. scout.how book/ranking/AI task behavior now lives behind this boundary.
Runtime Adapter Contractβ
Base runtime defaults:
CRAWLER_RUNTIME_ADAPTER=none
CRAWLER_RUNTIME_ADAPTER_FACTORY=
Project adapter example:
CRAWLER_RUNTIME_ADAPTER=scout
CRAWLER_RUNTIME_ADAPTER_FACTORY=project_adapters.scout_runtime:create_adapter
CRAWLER_RUNTIME_ENABLE_SCOUT_AI_ROUTES=true
CRAWLER_RUNTIME_ENABLE_SCOUT_POSTPROCESSING=true
Storage Boundaryβ
config('crawler.tables.*') and shared PLG_CRAWLER_*_TABLE values can override crawler core table names. Migrations skip existing tables and only drop tables on rollback when the plugin created them and wrote the ownership comment marker.
Domain Boundaryβ
Crawler owns crawler core tables and the API/runtime contract. books, book_keywords, keyword_rankings, keyword_ranking_items, keyword_score_tiers, daily_stats, and ai_tasks are project adapter domain tables.
Licenseβ
MIT
Demosβ
- Platform κ΄λ¦¬μ ν¨λμμ λ©ν νμΈ π Login required
- λ¬Έμ: Laravel plugin + Python runtime adapter
- Runtime adapter README
π View on Plugin Store: store.codebase.how/plugins/crawler