ansibleguy.sw_mailcow
Rôle Ansible - MailCow
Rôle pour déployer MailCow dockerisé sur un serveur Linux.
Ce rôle suit les instructions d'installation officielles.
Logs Molecule : Court, Complet
Testé :
- Debian 11
Installation
# dernière version
ansible-galaxy role install git+https://github.com/ansibleguy/sw_mailcow
# depuis galaxy
ansible-galaxy install ansibleguy.sw_mailcow
# ou pour un chemin de rôle personnalisé
ansible-galaxy install ansibleguy.sw_mailcow --roles-path ./roles
# installer les dépendances
ansible-galaxy install -r requirements.yml
Prérequis
Voir : Prérequis
Utilisation
Vous voulez une interface graphique Ansible simple ? Découvrez mon Ansible WebUI
Configuration
Définissez la configuration selon vos besoins :
mailcow:
  fqdn: 'srv.template.ansibleguy.net'
  # par exemple : 'srv.template.ansibleguy.net' doit être un nom d'hôte dns valide et public du serveur
  # si vous n'avez pas IPv6
  ipv6: false  
  nginx:  # configurez les paramètres du serveur web => voir : https://github.com/ansibleguy/infra_nginx
    aliases: ['mail.template.ansibleguy.net']  # domaines supplémentaires à ajouter au certificat
    ssl:
      mode: 'letsencrypt'  # ou auto-signé/ca/snakeoil
      #  si vous utilisez 'auto-signé' ou 'ca':
      #    cert:
      #      cn: 'Serveur MailCow'
      #      org: 'AnsibleGuy'
      #      email: '[email protected]'
    letsencrypt:
      email: '[email protected]'
  config:  # ajoutez des modifications de configuration pour 'mailcow.conf'
    WEBAUTHN_ONLY_TRUSTED_VENDORS: 'y'
  auto_update:
    enable: true  # activer les mises à jour automatiques
  backup:
    retention_days: 60  # par défaut = 14
Exemple de configuration minimum :
mailcow:
  fqdn: 'srv.template.ansibleguy.net'
Si vous souhaitez utiliser le serveur web intégré (non géré par ansible) :
mailcow:
  fqdn: 'srv.template.ansibleguy.net'
  # par exemple : 'srv.template.ansibleguy.net' doit être un nom d'hôte dns valide et public du serveur
  manage:
    webserver: false
  config:
    HTTP_PORT: 80
    HTTPS_PORT: 443
    # si vous souhaitez utiliser le support intégré de letsencrypt
    SKIP_LETS_ENCRYPT: 'n'
    ACME_CONTACT: '[email protected]'
    ADDITIONAL_SAN: 'smtp.template.ansibleguy.net,mail.*'
Exécution
Exécutez le playbook :
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
Il y a également certains tags utiles disponibles :
- docker
- webserver
Pour déboguer les erreurs - vous pouvez définir la variable 'debug' à l'exécution :
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Fonctionnalités
- Installation de paquet - Dépendances Ansible (minimales)
 
- Configuration - Service pour démarrer les conteneurs au démarrage : 'mailcow.service' 
- Configuration par défaut : - Répertoires :- Base : '/var/lib/mailcow'
- Données : '/var/lib/docker/volumes' (ne peut pas être changé par le rôle)
- Sauvegarde : '/var/backups/mailcow'
 
 
- Répertoires :
- Options par défaut : - Docker => utilisant CE rôle - Dépendances
- Serveur
- Docker-compose
 
- Proxy Nginx sur l'hôte docker => utilisant CE rôle 
- Fonctionnalités : - SOGo Groupware
- Apache Solr
- ClamAV (scanner de virus)
 
- IPv6 activé 
- Sauvegarde quotidienne utilisant le script de sauvegarde 
 
- Options par défaut à désactiver : - Mise à jour automatique utilisant le script de mise à jour (REMARQUE : fonctionne très bien !)
 
 
Infos
- Info : Envisagez d'utiliser une Passerelle de Mail pour plus de sécurité ! - Par exemple : Proxmox Mail Gateway 
- Info : Consultez les informations de dépannage : Dépannage 
- Remarque : ce rôle ne prend actuellement en charge que les systèmes basés sur Debian 
- Remarque : La plupart des fonctionnalités du rôle peuvent être activées ou désactivées. - Pour toutes les options disponibles - voir la configuration par défaut située dans le fichier de configuration principal! 
- Avertissement : Chaque paramètre/variable que vous fournissez ne sera pas vérifié pour sa validité. Une mauvaise configuration pourrait casser le rôle! 
- Info : Identifiants par défaut : - Utilisateur : admin - Mot de passe : moohoo 
- Info : Pour plus d'informations détaillées - consultez la documentation agréable fournie par MailCow! 
- Info : Si la configuration échoue après sa création - vous devez supprimer le fichier de configuration (/var/lib/mailcow/mailcow.conf) manuellement, afin que le rôle sache qu'il n'est pas encore initialisé ! 
- Avertissement : Les SAUVEGARDES automatiques sont placées sur le même système et doivent être copiées dans un emplacement DISTANT pour être en sécurité ! 
Ansible role to deploy MailCow dockerized on a linux server
ansible-galaxy install ansibleguy.sw_mailcow
