lekto-dms
Health Uyari
- License — License: GPL-3.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- Hardcoded secret — Potential hardcoded credential in .devcontainer/compose.yml
- rm -rf — Recursive force deletion command in .github/scripts/ocr-packages.sh
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
🦉 Lekto reads your documents so you don't have to: self-hosted DMS with OCR, explainable classification, hybrid search and an MCP server for AI clients.
Lekto DMS
[!WARNING]
Lekto is in beta. Breaking changes can come with any release: in the REST API, the
configuration, the database and the stored data. Read the release notes before you update, and
keep a backup (deploy/README.md). Use it in non-production environments
only, not yet for documents you cannot afford to lose.
Lekto DMS is a self-hosted, headless document management system. It reads every document,
files it and finds it again, and it shows why it decided what it did. The name comes from
lector, the reader; the owl in the logo reads with one eye and searches with the magnifier in
the other.
What it does
- Explainable intake. Upload, mail or API → OCR (OCRmyPDF, PDF/A) → a language model, a
classifier, similar documents and the facts of the text propose → a judge decides → one of
three lanes: green (done), yellow (confirm), red (intervene). A value counts only if it stands
in the text; every step is logged and can be repeated. A vision model rereads poorly read
pages on request. - Facts and identifiers. IBANs, customer, contract and tax numbers tie a document to its
contact; documents relate to each other, and recurring ones form series with the next one
expected. - Mail. IMAP mailboxes with rules per mailbox: attachments become documents, the mail's text
a PDF of its own beside them. A saved.emlcan be uploaded too. - Rules. Global and per space, built in the UI from conditions and actions, versioned, with
a dry run and retroactive application; titles from Liquid templates. - Search. Words and meaning in one query (Meilisearch, hybrid), always within the caller's
rights; saved views as lenses. - People and spaces. Native logins with TOTP, OpenID Connect. Rights belong to spaces, never
to single documents. - Integration. Signed webhooks, server-sent events and an MCP server at
/api/v1/mcpfor
Claude and other AI clients.
Quick start
cd docker
cp .env.example .env # fill in the secrets
docker compose up -d
Open http://localhost:8000/ and sign in as admin with LEKTO_ADMIN_PASSWORD. PointLEKTO_LLM_BASE_URL and LEKTO_EMBEDDING_BASE_URL at Ollama or another OpenAI-compatible
endpoint (or add compose.ollama.yml); without one, documents wait yellow for a person and the
search works with words only. More setups (Postgres, S3, more workers, Caddy, Traefik, nginx):
docker/, operation and backup: deploy/README.md.
Development in the devcontainer: .devcontainer/README.md and
CLAUDE.md.
How it is built
- Headless. The REST API (OpenAPI) is the only way in; the web UI (SvelteKit), the MCP server
and the migration client are its clients. - Hexagonal. A plain Python core with ports; FastAPI, SQLAlchemy and every service behind
adapters with contract tests. - Asynchronous. The API answers at once, a worker processes; events reach the UI, webhooks
and the search index through a transactional outbox. - Storage. SQLite or Postgres, file system or S3, Meilisearch. Originals never change and are
addressed by their SHA-256. - Models. Any OpenAI-compatible endpoint, local (Ollama) or in the cloud: a language model,
embeddings and optionally a vision model. - Configuration. Environment variables with the prefix
LEKTO_, secrets also as files.
Documentation
| Document | Content |
|---|---|
| docs/configuration.md | Every LEKTO_ variable: default, values, meaning |
| docs/templates.md | Templates for titles, rules and webhook bodies |
| docs/shortcut.md | The shortcut that sends shared files from iPhone, iPad and Mac |
| backend/README.md | Architecture, the REST API, processing, rules, search, webhooks, mail, MCP |
| deploy/README.md | The image: roles, volumes, health, reverse proxy, backup, updating |
| docker/ | Compose examples with the published images |
| web/README.md | The web UI; its design system in web/DESIGN.md |
| examples/ | Synthetic example documents, an MCP evaluation, a model-call consumer |
| .devcontainer/README.md | Development and a personal instance in the devcontainer |
License
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi