Local Development

Repository map

The main top-level directories are:

Path

Purpose

packages/

Reusable Python packages such as lalandre_core and lalandre_rag.

services/

Python online services/workers plus Rust importer services and the shared ingestion_service crate.

backend/

Rust web/document API.

frontend/

React application and local proxy configuration.

infra/

Compose fragments, database migrations, and storage helpers.

monitoring/

Grafana dashboards, Prometheus config, exporters.

docs/

This Sphinx documentation source tree.

For a curated tree with the main subdirectories and navigation advice, see Repository Layout.

Day-one commands

The justfile exposes the most useful local operations:

Command

Use

just up

Bring the local stack up with Docker Compose.

just down

Stop the stack.

just status

Inspect running services.

just db-migrate

Apply Alembic migrations.

just docs

Build the Sphinx site with the default local workflow.

just docs-build

Build the Sphinx site.

just docs-preview

Serve the built site locally.

Documentation workflow

  1. Install the documentation dependencies into the project virtual environment.

  2. Install the local packages and services required by autodoc.

  3. Build the site locally with warnings treated as errors.

  4. Review chart pages before claiming dashboard completeness.

./.venv/bin/pip install -r requirements.txt
./.venv/bin/pip install -r docs/requirements.txt
just install-packages
just docs
just docs-preview

The default local docs port is 8088, so just docs-preview serves the site on http://localhost:8088.

Production documentation is available at https://docs.prod.raglogic.com.

The API reference under docs/api/ is generated directly from Python docstrings in packages/, services/, and scripts/, so missing imports, missing docstrings, or broken module discovery will fail the docs workflow. The docs install path relies on package metadata plus editable installs rather than service-local requirements.txt, so the import graph stays deterministic and does not pull heavyweight optional runtimes such as Docling unless a service is explicitly installed with its runtime extras. The maintained docs scope excludes pdf_extract, so the docs workflow no longer needs to install or special-case that service.

What to read first