coaxial.mailcow

Rôle mailcow

Statut de Construction

Ce playbook va configurer un serveur de messagerie mailcow et des sauvegardes borg horaires (optionnelles, voir les Variables pour désactiver).
Les sauvegardes sont enregistrées dans /var/backup et supprimées une fois traitées par borg.
Les 24 dernières sauvegardes horaires, 7 journalières, 4 hebdomadaires, 6 mensuelles et 1 annuelle sont conservées.

La configuration minimale pour l'hôte mailcow est un CPU de 1Ghz, 1 Go de RAM et 5 Go d'espace disque. Il est recommandé d'avoir 1,5 Go de RAM + swap si clamd est activé. Prévoyez de l'espace de stockage supplémentaire pour générer la sauvegarde horaire et pour le fichier de swap optionnel (1x la RAM).

Prérequis

Variables

nom but valeur par défaut note
mailcow__hostname définir le MAILCOW_HOSTNAME dans mailcow.conf (cf. https://mailcow.github.io/mailcow-dockerized-docs/install/) non défini doit être défini
mailcow__additional_san définir le ADDITIONAL_SAN dans mailcow.conf pour autoriser des domaines supplémentaires (cf. https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#additional-domain-names) non défini, optionnel valeurs séparées par des virgules : lala.example.com,yay.example.org (ne pas répéter le mailcow__hostname)
mailcow__skip_known_hosts utiliser un fichier known_hosts personnalisé pour les sauvegardes borgmatic false true ou false, permet au conteneur borgmatic de se connecter à un dépôt borg distant sans demander d'accepter la clé
mailcow__dbpass définir le dbpass dans mailcow.conf (cf. https://mailcow.github.io/mailcow-dockerized-docs/install/) non défini doit être défini
mailcow__dbroot définir le dbroot dans mailcow.conf (cf. https://mailcow.github.io/mailcow-dockerized-docs/install/) non défini doit être défini
mailcow__http_port définir le HTTP_PORT dans mailcow.conf (cf. https://mailcow.github.io/mailcow-dockerized-docs/install/) 80
mailcow__http_bind définir le HTTP_BIND dans mailcow.conf (cf. https://mailcow.github.io/mailcow-dockerized-docs/install/) 0.0.0.0
mailcow__https_port définir le HTTPS_PORT dans mailcow.conf (cf. https://mailcow.github.io/mailcow-dockerized-docs/install/) 443
mailcow__https_bind définir le HTTPS_BIND dans mailcow.conf (cf. https://mailcow.github.io/mailcow-dockerized-docs/install/) 0.0.0.0
mailcow__tz définir le TZ dans mailcow.conf UTC liste des valeurs possibles
mailcow__skip_le définir le SKIP_LETS_ENCRYPT dans mailcow.conf n y ou n
mailcow__skip_clamd définir le SKIP_CLAMD dans mailcow.conf n y ou n
mailcow__ssh_key_name nom du fichier pour les clés ssh à utiliser avec borg (c'est-à-dire si les clés sont nommées mykey_rsa et mykey_rsa.pub, cette variable doit être définie sur mykey_rsa) borg_ssh_key
mailcow__borg_repo_host indiquer où le dépôt borg est hébergé (c'est-à-dire la partie avant : dans une URL de dépôt borg) non défini doit être défini (c'est-à-dire [email protected])
mailcow__borg_repo_name nom pour le dépôt borg, c'est-à-dire la partie après : et avant :: dans une URL de dépôt borg mailcow c'est-à-dire myrepo de [email protected]:myrepo::backupname
mailcow__ntp_servers remplacer les serveurs NTP par défaut pour synchroniser l'heure sur l'hôte docker. 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org doit être une chaîne de noms d'hôtes/FQDN/IP séparés par des espaces
mailcow__enable_swap utiliser un fichier swap (recommandé pour les hôtes avec moins de 3 Go de RAM) true créera un fichier swap à /swapfile qui est de la même taille que la RAM sur l'hôte
mailcow__enable_backups activer les sauvegardes horaires vers un dépôt borg true mettre sur true ou false
mailcow__git_version vérifier une version spécifique de mailcow master tout commit, nom de branche ou tag du dépôt git mailcow

Fichiers

Dans le répertoire files/ :

nom but note
borg_ssh_key{,.pub} clés ssh pour se connecter au dépôt borg distant (définir mailcow__ssh_key_name si vous n’utilisez pas le nom par défaut). utilisé uniquement si mailcow__enable_backups est défini sur true
passphrase phrase secrète du dépôt borg distant uniquement si mailcow__enable_backups
known_hosts fichier known_hosts personnalisé pour le conteneur borgmatic afin d'éviter les erreurs de clé inconnue cf. variable mailcow__skip_known_hosts ci-dessus. Pour obtenir une clé à jour pour votre serveur, exécutez ssh-keyscan 93.184.216.34. Utilisé uniquement si mailcow__enable_backups est true

Sauvegardes

Si mailcow__enable_backups est défini, des sauvegardes seront générées toutes les heures à l'heure sur l'aide du script de sauvegarde mailcow.

Le conteneur docker-borgmatic enverra la sauvegarde au dépôt borg spécifié chaque heure à 30 minutes et nettoiera le répertoire de sauvegarde après. Pour les dépôts borg distants, rsync.net est assez bon.

Utilisation

Playbook minimal :

---
- hosts: all
  become: true
  gather_facts: false
  vars:
    mailcow__borg_repo_host: [email protected]
    mailcow__hostname: test
    mailcow__dbpass: test
    mailcow__dbroot: test
    rawpython__os_family: Debian

  roles:
    - coaxial.raw-python  # initialiser python sur un Ubuntu/Debian nu
    - coaxial.mailcow
À propos du projet

Mailcow in Docker containers + hourly backups with borg

Installer
ansible-galaxy install coaxial.mailcow
Licence
Unknown
Téléchargements
82
Propriétaire