Bichon Blog

So you have a lot of email. Maybe you're migrating away from Google Workspace, consolidating multiple accounts, or building a compliance archive. Whatever the reason, here's how to archive 100GB+ of email efficiently with Bichon.

Step 1: Hardware Planning

For a 100GB archive target, here's the recommended setup:

ComponentMinimumRecommended
CPU4 cores8+ cores
RAM4 GB8 GB
Storage (SSD)50 GB (index)100 GB
Storage (HDD)150 GB (blobs)200 GB
Filesystemext4 / XFSext4 / XFS

Why split SSD and HDD? Tantivy indices benefit significantly from SSD random read performance. Blob storage is sequential write-heavy and can live on cheaper HDD.

# Mount points
BICHON_INDEX_DIR=/ssd/bichon-indices
BICHON_DATA_DIR=/hdd/bichon-storage
BICHON_ROOT_DIR=/hdd/bichon-root

Step 2: Configuration Tuning

Increase Concurrency

Default sync concurrency is num_cpus × 2. For large initial downloads, increase it:

BICHON_SYNC_CONCURRENCY=16

Cache Sizing

With 8GB RAM available, allocate more to caches:

BICHON_METADATA_CACHE_SIZE=268435456    # 256 MB
BICHON_ENVELOPE_CACHE_SIZE=268435456    # 256 MB

Compression Level

Bichon uses Zstd compression. The default level (3) balances speed and ratio. For archival workloads where write speed is less critical:

# Not yet configurable — coming in v2.1
# Default Zstd level: 3 (good balance)

Step 3: Initial Download Strategy

Account by Account

Don't add all accounts at once. Download them sequentially to avoid resource contention:

  1. Add your largest account first
  2. Let the initial sync complete (monitor via Dashboard)
  3. Add the next account
  4. Repeat

Use Date Scoping

If you only need recent years, scope the download:

# In the WebUI: Account Settings → Download Scope
# Set start date to limit how far back to fetch

Schedule Off-Peak

For ongoing incremental syncs, use cron scheduling to avoid daytime hours:

# Cron expression for nightly sync (2 AM)
0 2 * * *

Step 4: Monitor the Dashboard

The Bichon dashboard gives you real-time visibility:

  • Email Volume Trends — watch ingestion rate stabilize
  • Storage Usage — track compression ratio
  • Per-Account Activity — verify all accounts are syncing

Step 5: Backup Strategy

Once your archive is built, back it up. Use the built-in backup engine (WebUI → Backup): incremental, content-addressed backups to any S3-compatible store — AWS S3, MinIO, Cloudflare R2 — or to a local directory on a separate volume, with a manifest per restore point and automatic retention. Set it once and it runs on its own schedule.

Real-World Numbers

A community member recently shared their setup:

  • Source: 3 Gmail accounts, 12 years of email
  • Total messages: ~850,000
  • Raw size: 127 GB
  • After Zstd + dedup: 41 GB (68% reduction)
  • Initial sync time: ~8 hours
  • Ongoing sync: ~30 seconds per account (incremental)

Have questions about your specific setup? Join us on Discord.

On this page