One vendor tells you mail is "archived" because it still sits in Exchange online with litigation hold checked another way. Another sells an appliance with a license that doubles every three years. If you want messages as .eml on disk you control, indexed for search, with an audit log that survives someone renaming a folder, that is a different conversation.
Open Archiver (~2.5k GitHub stars, AGPL-3.0) positions itself there: a self-hosted stack for ingesting mail from Google Workspace, Microsoft 365, IMAP, PST, mbox, and zipped EML, storing normalized messages with deduplication and compression, and searching full text including common attachment types. It is SvelteKit on the front, Node/Express on the API, Postgres for metadata and audit, Meilisearch for search, BullMQ on Redis/Valkey for jobs. Docker Compose is the advertised path.
What it actually does
- Ingestion — bulk import plus ongoing sync from the providers above; PST and mailbox-file paths for migration projects.
- Storage — messages kept as
.eml; optional local disk or S3-compatible object storage; upstream describes encryption at rest and file hashing with per-message "integrity report" flags. - Search — Meilisearch-backed full-text across body and attachments (PDF, DOCx called out in README); filtering in the UI.
- Threads — conversation grouping so e-discovery review reads as a chain, not isolated rows.
- Retention and holds — granular retention policies in docs; legal hold called out in README as work in progress (TBD) — plan around that gap if litigation timing matters.
- Audit — immutable activity logging for who did what in the app.
There is a public demo at demo.openarchiver.com and provider setup guides on docs.openarchiver.com.
Why self-host?
Sovereignty. Archive blobs and Postgres stay on your VPS or your tenant object storage. For PIPEDA-heavy reviews, "Canadian VM + MinIO bucket in Canada" is a clearer story than a US SaaS archive contract.
No mailbox API middleman. You grant Workspace or M365 app credentials to your instance, not to a broker whose outage blocks all search.
Stack you can patch. AGPL means you can audit the code path; you still own patching Docker images and rotating secrets.
How it differs from other self-hosted archivers we have covered. Mail-Archiver is a .NET stack with M365 tenant import, MCP/REST, and heavy Outlook-style workflows. Bichon is Rust IMAP-first with embedded storage and RBAC but a different feature mix. Open Archiver leans modern JS, Meilisearch, and explicit compliance language (hashes, encryption, audit) — pick on stack and search engine preference, not star count alone.
Compliance caveat. The README says "legally compliant email archiving." Every sector has real rules, retention schedules, and counsel review. Treat Open Archiver as software that supports defensible retention and discovery practices after your lawyer signs off on process, not as a checkbox that replaces policy.
Getting it running
Minimum footprint in docs: Docker + Compose; about 4 GB RAM for the full bundle or 2 GB if you run external Postgres, Redis/Valkey, and Meilisearch.
git clone https://github.com/LogicLabs-OU/OpenArchiver.git
cd OpenArchiver
cp .env.example .env # set secrets, DB URLs, storage
docker compose up -d
# UI: http://localhost:3000
Wire TLS at the edge, lock down Postgres and Redis ports, back up the database and blob store together, and test restore before anyone depends on it for disputes.
Who should look at Open Archiver
Good fit: teams already comfortable running Compose-based services; orgs standardizing on .eml plus Meilisearch speed; Google or Microsoft shops that want one archive plane with attachment-aware search.
Pause first: if legal hold must be rock-solid today (verify upstream status); if you need a mature MCP story (Mail-Archiver leans harder there); if Meilisearch licensing or operational footprint is a concern compared to Postgres-only search.
Hosting in Canada
Open Archiver will eat disk and RAM as mail volume grows. A CloudBox VPS or larger box in Beauharnois or Toronto with fast disks, off-site snapshots, and monitored Valkey memory fits the usual homelab-to-SMB pattern.
Talk with Swift Host about sizing for indexed attachment volume and encrypted backups. We are in St. Albert and actually answer the phone.