Cómo instalar Mail-Archiver en Docker - Sistema de archivado de emails autohospedado en Docker

Mail-Archiver | Email Archiving | Docker

Mail-Archiver: Sistema profesional de archivado de emails autohospedado en Docker

Archiva emails de múltiples cuentas (IMAP, Microsoft 365, importa mbox/eml). Búsqueda full-text. Migraciones de mailbox. Retención automática. Multi-usuario. .NET + PostgreSQL. Open source. Self-hosted.

¿Qué es Mail-Archiver?


Mail-Archiver es una solución web profesional para archivar, buscar y exportar emails de múltiples cuentas sin depender de servicios cloud. Es ideal para: liberar espacio en Gmail/Outlook, mantener backups organizados de emails antiguos, cumplir retención de emails, migraciones de mailbox entre proveedores.

Propuesta clave: Centraliza emails de múltiples cuentas en una BD local searchable. Sincronización automática. Retención policies (auto-delete después de X días). Migraciones sin pérdida. Búsqueda avanzada full-text. Multi-usuario con permisos granulares. Soporte IMAP, Microsoft 365 (MS Graph), y import mbox/EML. Auditoría completa (access logs).

Características principales: Sincronización de múltiples cuentas (IMAP, M365, import). Búsqueda avanzada full-text en emails + attachments. Migraciones de mailbox preservando estructura de carpetas. Retención policies: auto-delete después de período configurable. Deduplicación de attachments. Soporte múltiples formatos: mbox, EML, ZIP. Restauración selectiva (restore emails a mailbox). Dark mode. Responsive design. Multi-usuario con RBAC. OpenID Connect soportado. Activity logging. Exportación de emails. .NET 8 backend confiable. PostgreSQL BD. Reverse proxy required para HTTPS (IMPORTANTE). MIT/open source. Documentación extensiva.

Para usuarios profesionales: Centraliza tu email archive. Búsqueda instant. Libera espacio. Control total. Sin vendor lock-in.

Características principales

Multi-cuenta (IMAP, M365, Import)

IMAP estándar, Microsoft 365 vía MS Graph, importa mbox/EML/ZIP.

Búsqueda full-text avanzada

Dentro de emails, attachments, metadatos. Sintaxis avanzada.

Migraciones de mailbox

Copia emails entre mailboxes. Preserva estructura carpetas.

Retención policies

Auto-delete desde servidor local después período configurable.

Deduplicación attachments

Reduce almacenamiento. Detecta duplicados (logos, firmas).

Sincronización checkpoint

Resumible con rate limiting. Bandwidth tracking (2500MB/day limit detection).

Restauración selectiva

Restaura emails a mailbox. Formato original preservado.

Multi-usuario RBAC

Permisos granulares. OpenID Connect soportado.

Activity logging

Login, búsquedas, exportaciones, synchronizations tracked.

Dark mode + Responsive

UI moderna. Desktop, tablet, móvil. Soporte multilingüe.

Exportación

Export selectivo. Preserva headers. Múltiples formatos.

Open source

MIT. Auditable. Comunidad. Soporte extenso en docs.

Requisitos del sistema

  • Docker & Docker Compose
  • 2-4 GB RAM (.NET + PostgreSQL)
  • 20+ GB espacio disco (depende volumen emails)
  • Puerto 5000 (default, configurable)
  • PostgreSQL (incluido en docker-compose)
  • REVERSE PROXY CON HTTPS REQUERIDO (Mail-Archiver no proporciona HTTPS nativo)
  • Credenciales IMAP/M365 para conectar cuentas
  • Navegador moderno
Importante: Mail-Archiver NO incluye HTTPS nativo. REQUIERE reverse proxy (Caddy, Nginx) para HTTPS en producción. Esto es CRÍTICO para seguridad.

Instalación con Docker Compose

Paso 1: Descargar y configurar docker-compose.yml

cat > docker-compose.yml << 'EOF' version: '3.8' services: postgres: image: postgres:16-alpine container_name: mailarchiver-db restart: unless-stopped environment: - POSTGRES_DB=MailArchiver - POSTGRES_USER=mailuser - POSTGRES_PASSWORD=change_me_securely_32chars_min volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U mailuser"] interval: 10s timeout: 5s retries: 5 mailarchiver: image: s1t5/mailarchiver:latest container_name: mailarchiver restart: unless-stopped depends_on: postgres: condition: service_healthy ports: - "5000:5000" volumes: - data-protection-keys:/app/data-protection-keys environment: # BD Connection - ConnectionStrings__DefaultConnection=Host=postgres;Database=MailArchiver;Username=mailuser;Password=change_me_securely_32chars_min; # Admin credentials (CAMBIAR INMEDIATAMENTE) - Authentication__Username=admin - Authentication__Password=change_me_securely # Timezone - TimeZone__DisplayTimeZoneId=Europe/Madrid # Logging - Logging__LogLevel__Default=Information volumes: postgres-data: data-protection-keys: EOF

Paso 2: Iniciar Mail-Archiver

docker compose up -d # Espera 30-60 segundos para que inicie BD + app docker compose logs -f mailarchiver

Acceder (local, HTTP)

http://localhost:5000 - Dashboard Mail-Archiver (solo local, sin HTTPS)

Primer login

  • Usuario: admin
  • Contraseña: change_me_securely (la que setaste)
  • CAMBIAR INMEDIATAMENTE a contraseña fuerte (12+ chars, mix mayús/minús/números/special)

Primeros pasos

1. Cambiar contraseña admin

  1. Login con admin / contraseña
  2. Click profile → Change Password
  3. Contraseña fuerte nueva
  4. Save

2. Agregar primera cuenta de email (IMAP)

  1. Dashboard → "Mail Accounts" → "Add Account"
  2. Tipo: IMAP
  3. Email: tu@email.com
  4. Host IMAP: imap.gmail.com (o tu proveedor)
  5. Puerto: 993 (IMAPS, estándar)
  6. Username: tu@email.com
  7. Password: contraseña + app password (Gmail requiere)
  8. Timezone: Europa/Madrid
  9. Sync Interval: 1 hour (por defecto)
  10. Click "Save"
  11. Mail-Archiver inicia sync automático

3. Ver dashboard

  1. Dashboard muestra: emails totales, últimas sincronizaciones, uso BD
  2. Espera a que complete primer sync (puede tomar minutos/horas depende volumen)

4. Buscar emails

  1. Click "Search" en menú
  2. Busca por: from, to, subject, body
  3. Sintaxis avanzada: from:usuario@gmail.com subject:importante
  4. Resultados instantáneos (full-text indexed)

5. Exportar emails

  1. Selecciona emails de búsqueda
  2. Click "Export"
  3. Formato: mbox, EML, ZIP
  4. Descarga archivo

6. Migrar emails (entre mailboxes)

  1. Mail Accounts → select account source
  2. Click "Migration Tools"
  3. Selecciona target mailbox (otra cuenta IMAP/M365)
  4. Mail-Archiver copia emails preservando carpetas

7. Configurar retención (auto-delete)

  1. Mail Accounts → select account
  2. Retention Policy: "Delete from server after N days"
  3. Ej: 90 días. Después automáticamente borra de servidor original
  4. Copia local en Mail-Archiver persiste

8. Agregar más usuarios

  1. Settings → Users → Add User
  2. Asigna permisos (que accounts pueden ver)
  3. RBAC granular

Casos de uso

  • Liberación de espacio: Gmail tiene límite 15GB free. Archiva emails antiguos, borra de servidor, libera espacio.
  • Migraciones: Cambio de proveedor email. Mail-Archiver copia todo a nuevo servidor sin pérdida.
  • Compliance/Legal: Retener emails años. Searchable. Auditable. Cumple regulaciones (GDPR, etc).
  • Consolidación multi-cuenta: 5 cuentas de email antiguas. Unifica en Mail-Archiver. Búsqueda centralizada.
  • Backup profesional: Equipo empresarial. Backup emails críticos. Searchable offsite.

HTTPS con Caddy (REQUERIDO para producción)

Caddyfile

mail.tudominio.com { reverse_proxy localhost:5000 }

Acceso remoto seguro

https://mail.tudominio.com con HTTPS automático

CRÍTICO: Mail-Archiver NO TIENE HTTPS NATIVO

Siempre usa Caddy/Nginx como reverse proxy en frontal. NUNCA exponer puerto 5000 directamente a internet.

Gestión y mantenimiento

Ver logs

docker compose logs -f mailarchiver

Backup de BD (IMPORTANTE)

docker compose down # Cold backup (datos consistentes) mkdir -p backups cp -r postgres-data backups/mailarchiver-backup-$(date +%Y%m%d-$H%M%S)/ cp docker-compose.yml backups/mailarchiver-backup-$(date +%Y%m%d-%H%M%S)/ docker compose up -d

Restore de backup

docker compose down rm -rf postgres-data cp -r backups/mailarchiver-backup-YYYYMMDD-hhmmss/postgres-data . docker compose up -d

Reiniciar

docker compose restart

Actualizar a versión más reciente

docker compose pull docker compose up -d # Verificar logs por migraciones de BD docker compose logs mailarchiver

Monitorear consumo

docker stats mailarchiver postgres

Mantenimiento BD (vacuum/analyze)

docker compose exec postgres vacuumdb -U mailuser MailArchiver # Recomendado mensualmente para optimizar performance

Comparativa con alternativas

vs Google Takeout / Outlook Export

Mail-Archiver gana: Continuo, searchable, GUI intuitiva, migraciones. Takeout gana: Nativo, simple, una sola vez.

vs Archivematica (Profesional)

Mail-Archiver gana: Simple, dirigido email, searchable. Archivematica gana: Enterprise, múltiples formatos, compliance heavy.

vs MailStore (Commercial)

Mail-Archiver gana: Gratis, open source, self-hosted. MailStore gana: Más features, support profesional, integración Outlook.

Mejor para: Usuarios que necesitan archivar, buscar, migrar emails sin vendor lock-in. Profesionales que manejan volumen. Compliance-requiring organizations.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.