Open Source  ·  Privacy-First  ·  100% Local

Your documents.
Your folders.
Your rules.

MatrosDMS organizes your files the way you think — hierarchical Who × What × Where context tags. Full-text search. AES-256 encryption. Nothing leaves your machine.

AES-256Encryption
100%Local
AGPL v3License
Java 25Backend
matrosdms — dashboard
MatrosDMS dashboard screenshot
Features

Everything you need.
Nothing you don't.

Hierarchical Context Navigation

Organize documents the way you think — Who × What × Where. Select a context once and everything you drop inside inherits those tags automatically. No per-file labeling. Just a clean timeline.

WHO Family → Mr. Smith
WHAT Finance → Pension Fund
WHERE Employers → Google

Full-Text Search & MQL

Apache Lucene powers instant search through PDFs, scanned docs (OCR), and emails. Or query with MQL:

who:Martin where:Amazon kind:Invoice

Encrypted at Rest

AES-256-CTR encryption for every stored file. Argon2id key derivation. If your disk is stolen, your data is unreadable.

Email Archiving

Drop .eml files or configure SMTP. Attachments extracted, indexed, and linked automatically. Built-in Apache James on port 2525.

Timeline & Reminders

Every context has a chronological timeline with lifecycle states. Set reminders on folders or documents — never miss a contract renewal.

Smart Classification

Heuristic rule engine for automatic sorting. Local AI via Ollama planned — all processing stays on your hardware, always.

Workflow

From inbox to archive
in four steps.

01

Drop

Scan, upload, or email documents into the inbox. PDFs, images, .eml and more.

02

Review

AI and rule engine suggest tags. Confirm or adjust in one click.

03

Archive

Document is encrypted, OCR-indexed and filed in its context.

04

Find

Full-text search returns results in milliseconds — even years later.

Technology

Modern stack.
No legacy baggage.

Backend
Java 25Spring Boot 3.5Hibernate Search 7Apache Lucene
Frontend
Vue 3TypeScriptViteTailwind CSSTanStack Query
Security
AES-256-CTRArgon2idBouncy Castle
Document Processing
Apache TikaTesseract OCRApache James SMTP
Database
Embedded H2PostgreSQLFlyway Migrations
AI (Planned)
OllamaLocal LLMs
Deployment

Run it your way.

🐳

Docker

Runs on port 9090. SMTP on 2525, IMAP on 1143.

bash
docker run -p 9090:9090 \
  -v ./data:/data \
  mschwehl/matrosdms
🐘

Docker Compose with PostgreSQL

Use PostgreSQL as your database backend for production deployments.

docker-compose.yml
services:
  matrosdms:
    image: mschwehl/matrosdms
    ports:
      - "9090:9090"
      - "2525:2525"
      - "1143:1143"
    volumes:
      - ./data:/data
    environment:
      SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/matros
      SPRING_DATASOURCE_USERNAME: matros
      SPRING_DATASOURCE_PASSWORD: secret
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: matros
      POSTGRES_USER: matros
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:
☸️

Kubernetes / Helm

Official Helm chart available.

bash
helm repo add matrosdms \
  https://charts.matrosdms.org
helm install my-dms matrosdms/matrosdms
💻

Build from Source

Requires Java 25. Produces a standalone JAR and Windows .exe.

bash
git clone github.com/matrosdms/matrosdms
cd matrosdms
mvn install
💻

Portable Downloads

Download standalone versions for Windows or Linux — no Java installation required. Runs completely on your system.

Exposed Ports
9090 Web UI & REST API
2525 SMTP — receive emails directly into the inbox
1143 IMAP — access archived mail from any client
Contact

Get in touch.

Questions, feedback, or just want to say hi? We'd love to hear from you.

E-Mail-Adresse

Take control of your documents.

Open source. Privacy-first. Forever yours.