Self-hosted platform that archives, indexes and searches emails from Gmail, Microsoft 365, PST files and IMAP inboxes.
rustmailer/bichon
A self-hosted Rust email archiver that downloads mail from IMAP accounts into a searchable archive with a REST API and WebUI.
- Stars
- 2,068
- Forks
- 91
- Open issues
- 29
- Last commit
- 17 hours ago
What is it?
Bichon is a self-hosted server for long-term email archiving. It downloads messages from one or more IMAP accounts, supports password and OAuth 2.0 login, and builds a full-text search index so mail from all accounts can be searched together. It is an archiver rather than an email client, so it does not send, compose, or reply to messages; its optional SMTP server only receives mail.
Archived data is kept in three embedded layers: Tantivy for full-text indexing, a Zstd-compressed blob store for raw emails and attachments, and an embedded key-value database for metadata. Identical message bodies and attachments are stored once using BLAKE3 content hashing. Incremental syncs fetch only new messages by UID, and accounts can be scheduled with cron expressions.
The project provides a WebUI with thread grouping, attachment search, tags, a contacts view and dashboard analytics, plus an OpenAPI-documented REST API. Multi-user access uses built-in and custom roles with per-account permissions. CLI tools import EML, MBOX, Thunderbird profiles and PST files and export MBOX.
Key features
- 01Concurrent IMAP download with password and OAuth 2.0 login, plus SOCKS5 proxy routing per account
- 02Incremental UID-based sync and scheduled downloads with cron expressions
- 03Full-text search across subject, body, sender, recipients and attachments
- 04Content deduplication of emails and attachments via BLAKE3 hashing
- 05Multi-user RBAC with custom roles and account-level access control
- 06Import from EML, MBOX, Thunderbird and PST; export to MBOX
Use cases
- Keeping a long-term offline archive of work or personal email from several providers
- Searching across years of mail from multiple IMAP accounts in one place
- Preserving mailboxes before a provider migration or account closure
- Migrating old EML, MBOX or PST exports into a single searchable archive
Quick start
- 1
Pull the Docker image
docker pull rustmailer/bichon:latest - 2
Create the data directory
mkdir -p ./bichon-data - 3
Run the container and open http://localhost:15630
docker run -d --name bichon -p 15630:15630 -v $(pwd)/bichon-data:/data --user 1000:1000 -e BICHON_ROOT_DIR=/data -e BICHON_ENCRYPT_PASSWORD=your-secure-password-here rustmailer/bichon:latest
Things to know
- Default admin password is admin@bichon, so it must be changed right after first start.
- Network file systems (NFS, SMB) are not supported for data directories.
- Bichon is an archiver only and cannot send, compose, or reply to email.
In collections
Topics
FAQ
- What is bichon?
- A self-hosted Rust email archiver that downloads mail from IMAP accounts into a searchable archive with a REST API and WebUI. Bichon is a self-hosted server for long-term email archiving. It downloads messages from one or more IMAP accounts, supports password and OAuth 2.0 login, and builds a full-text search index so mail from all accounts can be searched together. It is an archiver rather than an email client, so it does not send, compose, or reply to messages; its optional SMTP server only receives mail.
- Is bichon free to use? What license does it have?
- bichon is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
- Is bichon still maintained?
- Actively maintained. The last commit to bichon was on Nov 6, 2026.
- What can I use bichon for?
- Keeping a long-term offline archive of work or personal email from several providers Searching across years of mail from multiple IMAP accounts in one place Preserving mailboxes before a provider migration or account closure Migrating old EML, MBOX or PST exports into a single searchable archive
- How do I install bichon?
- Pull the Docker image: docker pull rustmailer/bichon:latest Create the data directory: mkdir -p ./bichon-data Run the container and open http://localhost:15630: docker run -d --name bichon -p 15630:15630 -v $(pwd)/bichon-data:/data --user 1000:1000 -e BICHON_ROOT_DIR=/data -e BICHON_ENCRYPT_PASSWORD=your-secure-password-here rustmailer/bichon:latest
- Where can I get bichon?
- The source code and installation instructions are on GitHub: https://github.com/rustmailer/bichon
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A self-hosted web app that archives, searches, and exports emails from multiple IMAP and Microsoft 365 accounts.
A web UI and background orchestrator for restic backups, for creating repos, scheduling snapshots, and browsing or restoring files.
Dockerized, self-hosted mail server suite bundling Postfix, Dovecot, SOGo, Rspamd and ClamAV behind a web admin UI.
A self-hosted mail server packaged as a set of Docker images, covering SMTP, IMAP, POP3 and webmail.
A browser-based multilingual IMAP webmail client with an application-like interface, written in PHP and extendable through plugins and skins.