Architecture
This fixture runs independently from the main crawler stack so production deployments are not blocked by demo-site availability. Each version is a complete static snapshot that can be swapped atomically while the HTTP server keeps running.
- Versioned fixture snapshotsCommitted v1-baseline, v2-changed, and v3-restored directories
- Atomic live-directory switchHot-swap without restarting the fixture server
- Fixture serverNode HTTP server with no-cache responses and redirect rules
- Caddy / HTTPSPublic reverse proxy to the fixture on localhost
- Website Audit ToolScheduled or manual crawls of the public origin
- Crawl analysisMetadata, links, indexability, and HTTP status evaluation
- Site change historyConsecutive completed crawl comparisons in PostgreSQL
Why the fixture is separate
The crawler application, worker, and PostgreSQL database live in the main Compose stack.
The change-history fixture is defined in docker-compose.fixture.yml and
bind-mounts the live/ directory from the host. Version switches replace
files on disk; the container does not need a rebuild or restart.
Data flow for comparisons
When you crawl the public origin, the worker stores URLs, response metadata, and analysis results in PostgreSQL. Site change history compares consecutive completed crawls for the same monitored site. Restoring v3-restored HTML reverses the deliberate v2 differences so you can validate resolution counters.
See the documentation for version names, expected page
counts, and the structured expected-changes.json manifest in the repository.