Local Development¶
Repository map¶
The main top-level directories are:
Path |
Purpose |
|---|---|
|
Reusable Python packages such as |
|
Python online services/workers plus Rust importer services and the shared |
|
Rust web/document API. |
|
React application and local proxy configuration. |
|
Compose fragments, database migrations, and storage helpers. |
|
Grafana dashboards, Prometheus config, exporters. |
|
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 |
|---|---|
|
Bring the local stack up with Docker Compose. |
|
Stop the stack. |
|
Inspect running services. |
|
Apply Alembic migrations. |
|
Build the Sphinx site with the default local workflow. |
|
Build the Sphinx site. |
|
Serve the built site locally. |
Documentation workflow¶
Install the documentation dependencies into the project virtual environment.
Install the local packages and services required by
autodoc.Build the site locally with warnings treated as errors.
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.