ProductDownload

LIME Documentation

LIME is a self-hosted accessibility scanner powered by axe-core, Chromium, PostgreSQL, and a NextJS dashboard. These docs cover local development, architecture, production deployment, updates, and release operations.

Start Here

  • Local Development Setup: Run LIME locally with Docker or native processes, including environment variables and common commands.
  • Docker & Release Pipeline: Local Docker workflow, production build targets, GHCR release publishing, and release bundle format.
  • Deploy to Fly.io: Two-app Fly setup with private networking, managed/external Postgres, screenshot storage, and rolling updates.
  • Deploy with Docker: Recommended Docker path using published GHCR images.
  • Deploy on Linux without Docker: Native systemd install for operators who cannot run Docker.
  • Updating LIME: Update commands per target, backups, rollback notes, and the sidebar update notice.
  • Docs Site: Static docs architecture, screenshot refresh pipeline, search, GitHub Pages, and handoff checklist.
  • Product Roadmap: v1.0 optimization and public-release plan, plus MCP hardening and future integration work.
  • MCP Integration: Current read-only MCP endpoint, AI client configuration, smoke tests, and security requirements.

Architecture

  1. Shopkeeper (Main Backend & Orchestrator): The core Go application that manages the entire lifecycle of a scan.
  2. Profiler: Module responsible for recursively extracting URLs from a sitemap (including sitemap indexes).
  3. Juicer: Module responsible for scanning individual URLs using axe-core, capturing screenshots, and processing pages in a controlled, multi-threaded manner.
  4. Sweetner: Module responsible for refining, batching, and aggregating scan results to prevent duplicate issue reporting.
  5. User Interface (NextJS): The frontend application residing in the lime folder, interacting with the Shopkeeper API.

Reference

  • Database Architecture: Details regarding the chosen database schema, technologies (PostgreSQL, Drizzle), and the Go backend DB strategy.
  • Performance And Caching Strategy: PostgreSQL-first optimization plan for large scans and reports.
  • Docs Site: How the public docs site is built, searched, screenshotted, and deployed.
  • MCP Integration: Read-only MCP transport, authentication, client configuration, and capability model.

Operational notes for scan lifecycle behavior are documented primarily in:

  • docs/architecture/shopkeeper.md for backend ownership, deletion/rescan rules, and restart recovery
  • docs/architecture/ui.md for polling and page-navigation behavior
  • docs/setup.md for runtime and debugging commands

ACT enrichment notes are documented primarily in:

  • docs/architecture/shopkeeper.md for the shared catalog, resolver behavior, and API enrichment model
  • docs/architecture/sweetner.md for how Sweetner's canonical axe rule IDs feed ACT lookups later
  • docs/architecture/ui.md for where ACT guidance appears in the interface
  • docs/setup.md for ACT catalog refresh and runtime path resolution

Release and production build notes are documented primarily in:

  • docs/deployment/docker.md for GHCR publishing, release bundles, and production Docker usage
  • docs/setup.md for make build, make build-docker, native local env expectations, and release runtime env requirements
  • README.md for the quick-start release workflow

Docs-site notes are documented primarily in:

  • docs/docs-site.md for static export behavior, content sources, search, screenshot refresh, GitHub Pages, and handoff rules
  • docs-site/content/product-docs.ts for curated user/developer docs shown on the public site
  • scripts/docs-refresh.sh for isolated docs-demo scan and screenshot generation

Performance and v1.0 optimization notes are documented primarily in:

  • docs/performance.md for the PostgreSQL-first cache/read-model strategy
  • docs/roadmap.md for milestone sequencing and exit criteria

MCP integration notes are documented primarily in:

  • docs-site/content/product-docs.ts for the user-facing /docs/user/mcp/ AI-tool setup guide
  • docs/mcp.md for transport, authentication, AI client connection examples, and read-only capabilities
  • docs/roadmap.md for MCP hardening and future integration milestones

Runtime proxy notes are documented primarily in:

  • docs/architecture/ui.md for the same-origin /api/... proxy behavior and screenshot delivery model
  • docs/deployment/docker.md for SHOPKEEPER_URL, external-DB release usage, and reverse-proxy deployment behavior

Guidelines For Contributing

  • Read ../CONTRIBUTING.md before opening a pull request.
  • Ensure new features, deployment changes, and schema changes are documented before release.
  • Keep docs/index.md as the map of the documentation set.