coaxial.mailcow

Rol de mailcow

Estado de Construcción

Este playbook configurará un servidor de correo mailcow y copias de seguridad horarias de borg (opcional, consulta Variables para desactivar). Las copias de seguridad se guardan en /var/backup y se eliminan una vez gestionadas por borg. Se mantienen las últimas 24 copias horarias, 7 diarias, 4 semanales, 6 mensuales y 1 anual.

La configuración mínima para el host de mailcow es CPU de 1Ghz, 1GB de RAM, 5GB de disco. Se recomienda 1.5GB de RAM + swap si clamd está habilitado. Planea espacio de almacenamiento adicional para generar la copia horaria y para el archivo de swap opcional (1x la RAM).

Requisitos

  • Host de Ubuntu en funcionamiento (otras distribuciones no son compatibles por ahora)
  • Docker
  • Un repositorio de copias de seguridad de borg si las copias están habilitadas (ver https://borgbackup.readthedocs.org/en/latest/quickstart.html)
  • Claves SSH y frase de paso que coincidan con el repositorio de borg

Variables

nombre propósito valor predeterminado nota
mailcow__hostname establecer el MAILCOW_HOSTNAME en mailcow.conf (ver https://mailcow.github.io/mailcow-dockerized-docs/install/) no establecido debe ser configurado
mailcow__additional_san establecer el ADDITIONAL_SAN en mailcow.conf para permitir dominios adicionales (ver https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#additional-domain-names) indefinido, opcional valores separados por comas: lala.example.com,yay.example.org (no repetir mailcow__hostname)
mailcow__skip_known_hosts si usar un archivo known_hosts personalizado para las copias de seguridad de borgmatic false true o false, permite que el contenedor borgmatic se conecte a un repositorio borg remoto sin solicitar aceptación de clave
mailcow__dbpass establecer el dbpass en mailcow.conf (ver https://mailcow.github.io/mailcow-dockerized-docs/install/) no establecido debe ser configurado
mailcow__dbroot establecer el dbroot en mailcow.conf (ver https://mailcow.github.io/mailcow-dockerized-docs/install/) no establecido debe ser configurado
mailcow__http_port establecer el HTTP_PORT en mailcow.conf (ver https://mailcow.github.io/mailcow-dockerized-docs/install/) 80
mailcow__http_bind establecer el HTTP_BIND en mailcow.conf (ver https://mailcow.github.io/mailcow-dockerized-docs/install/) 0.0.0.0
mailcow__https_port establecer el HTTPS_PORT en mailcow.conf (ver https://mailcow.github.io/mailcow-dockerized-docs/install/) 443
mailcow__https_bind establecer el HTTPS_BIND en mailcow.conf (ver https://mailcow.github.io/mailcow-dockerized-docs/install/) 0.0.0.0
mailcow__tz establecer el TZ en mailcow.conf UTC lista de valores posibles
mailcow__skip_le establecer el SKIP_LETS_ENCRYPT en mailcow.conf n y o n
mailcow__skip_clamd establecer el SKIP_CLAMD en mailcow.conf n y o n
mailcow__ssh_key_name nombre del archivo para las claves ssh a usar con borg (es decir, si las claves se llaman mykey_rsa y mykey_rsa.pub, esta variable debe configurarse como mykey_rsa) borg_ssh_key
mailcow__borg_repo_host indicar dónde está alojado el repositorio borg (es decir, la parte antes de : en una URL de repositorio borg) no establecido debe ser configurado (es decir, user@my.borghost.tld)
mailcow__borg_repo_name nombre para el repositorio borg, es decir, la parte después de : y antes de :: en una URL de repositorio borg mailcow es decir, myrepo de user@my.borghost.tld:myrepo::backupname
mailcow__ntp_servers reemplazar los servidores ntp predeterminados para sincronizar la hora en el host de docker. 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org debe ser una cadena de nombres de hosts/FQDNs/IPs separados por espacios
mailcow__enable_swap usar un archivo de swap (recomendado para hosts con menos de 3GB de RAM) true creará un archivo de swap en /swapfile que tiene el mismo tamaño que la cantidad de RAM en el host
mailcow__enable_backups habilitar copias de seguridad horarias en un repositorio borg true establecer en true o false
mailcow__git_version revisar una versión específica de mailcow master cualquier commit, nombre de rama o etiqueta del repositorio git de mailcow

Archivos

En el directorio files/:

nombre propósito nota
borg_ssh_key{,.pub} claves ssh para conectarse al repositorio borg remoto (configura el mailcow__ssh_key_name si no usas el nombre predeterminado). solo se usa si mailcow__enable_backups está configurado como true
passphrase frase de paso del repositorio borg remoto solo si mailcow__enable_backups
known_hosts archivo known_hosts personalizado para el contenedor borgmatic para evitar errores de clave desconocida consulta la variable mailcow__skip_known_hosts arriba. Para obtener una clave actualizada para tu servidor, ejecuta ssh-keyscan 93.184.216.34. Solo se usa si mailcow__enable_backups es true

Copias de seguridad

Si mailcow__enable_backups está configurado, las copias de seguridad se generarán cada hora en el inicio de la hora utilizando el script de copia de seguridad de mailcow.

El contenedor docker-borgmatic enviará la copia de seguridad al repositorio borg especificado cada hora a los 30 minutos y limpiará el directorio de copias de seguridad después. Para repositorios borg remotos, rsync.net es bastante bueno.

Uso

Playbook mínimo:

---
- hosts: all
  become: true
  gather_facts: false
  vars:
    mailcow__borg_repo_host: user@example.com
    mailcow__hostname: test
    mailcow__dbpass: test
    mailcow__dbroot: test
    rawpython__os_family: Debian

  roles:
    - coaxial.raw-python  # inicializa python en Ubuntu/Debian
    - coaxial.mailcow
Acerca del proyecto

Mailcow in Docker containers + hourly backups with borg

Instalar
ansible-galaxy install coaxial.mailcow
Licencia
Unknown
Descargas
82
Propietario