moismailzai.protonmail_bridge_headless
Rôle Ansible : ProtonMail Bridge (sans interface graphique)
Installe le ProtonMail Bridge (sollicitant éventuellement la 2FA), l'enregistre en tant que service sans interface graphique, et configure Postfix pour l'utiliser. Supporte les serveurs RedHat/CentOS, Debian/Ubuntu, et Archlinux.
Contexte
L'application ProtonMail Bridge pour Linux permet d'intégrer votre compte ProtonMail avec des programmes de messagerie IMAP et SMTP tels que Thunderbird et Evolution. Bridge est disponible pour tous les utilisateurs de ProtonMail avec un abonnement payant.
L'objectif de ce rôle est d'automatiser l'installation du bridge afin qu'il puisse être utilisé sur une machine sans interface graphique.
Plus précisément, ce rôle va :
- télécharger la dernière version du bridge
- s'assurer que le package est correctement signé avant de l'installer
- configurer le bridge avec vos informations utilisateur
- créer un service pour garder le bridge en cours d'exécution en arrière-plan
- créer un utilisateur verrouillé pour exécuter le service
- configurer postfix pour l'utiliser avec le bridge (SASL)
- sur les systèmes RHEL, (ou optionnellement) configure les contextes SELinux
Exigences
Nécessite RedHat/CentOS 8, Ubuntu 18 ou supérieur, ou un système Debian, Archlinux ou Manjaro à jour.
Variables du rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
) :
protonmail_username: ""
protonmail_password: ""
protonmail_custom_domain: ""
protonmail_enable_2fa: false
Vos identifiants ProtonMail et domaine. Ceux-ci sont utilisés pour ajouter votre compte au ProtonMail-bridge, et pour configurer
postfix. REMARQUE: lorsque protonmail_enable_2fa
est réglé sur true
, ce rôle s'exécutera de manière interactive et vous demandera
un code 2FA.
# configure_selinux: ""
Indique si SELinux doit être configuré. Défaut à vrai pour les systèmes RHEL et faux sinon.
gpg_key_settings:
type: default
length: default
subkey_type: default
subkey_length: default
expire_date: 0
name: clé du service protonmail-bridge-headless
email: root@localhost
Ces paramètres sont utilisés pour créer une clé GPG locale. La clé est nécessaire pour que le ProtonMail bridge et pass
communiquent. Des modifications supplémentaires peuvent être apportées au fichier templates/protonmail-bridge.gpg.j2
. REMARQUE : les paramètres par défaut
génèrent une nouvelle clé non protégée à utiliser exclusivement pour le bridge. Pour ajouter un mot de passe, vous devrez
modifier les valeurs par défaut, ainsi que templates/protonmail-bridge-headless.service.sh.j2
.
configure_gpg: "true"
configure_pass: "true"
configure_postfix: "true"
configure_service: "true"
configure_user: "true"
Peut être utilisé pour sauter des tâches dans ce rôle.
protonmail_lib_dir: "/var/lib/protonmail"
L'emplacement où les fichiers de configuration et de service seront stockés.
protonmail_user: "protonmail"
protonmail_user_flags: "-L"
Le nom et les flags de l'utilisateur de service.
postfix_hostname: "{{ protonmail_custom_domain }}"
postfix_localhost_address: "127.0.0.1"
Paramètres que vous pouvez remplacer dans main.cf
.
selinux_httpd_can_sendmail: "true"
Indique si des politiques selinux pour httpd doivent être ajoutées lors de la configuration de postfix.
Dépendances
Un compte ProtonMail payant.
Exemple d'utilisation
Tout d'abord, installez une version actuelle de Ansible :
Archlinux:
sudo pacman -Syu ansible
RHEL:
sudo dnf -y install epel-release
sudo dnf repolist
sudo dnf -y install ansible
Debian:
sudo apt update
sudo apt install -y software-properties-common
sudo apt-add-repository -y -u ppa:ansible/ansible
sudo apt install -y ansible
Ensuite, créez un fichier appelé main.yml
et ajoutez ce qui suit (en remplaçant your_username
, your_password
, et your_domain
par leurs valeurs réelles) :
- name: "installer et configurer protonmail-bridge comme un service sans interface graphique"
become: "yes"
hosts: "all"
vars:
protonmail_username: "your_username"
protonmail_password: "your_password"
protonmail_custom_domain: "your_domain"
roles:
- "moismailzai.protonmail_bridge_headless"
Puis, depuis la ligne de commande dans le même répertoire, exécutez :
# installe ce rôle depuis Ansible Galaxy
ansible-galaxy install moismailzai.protonmail_bridge_headless
# s'assure qu'Ansible peut trouver le rôle que vous venez de télécharger
ln -s ~/.ansible/roles roles
# exécute le playbook que vous avez créé à l'étape précédente
sudo ansible-playbook -c local -i localhost, main.yml
Une fois le processus terminé, envoyez-vous un message de test depuis la ligne de commande :
echo "Si vous voyez ceci, le bridge a été correctement configuré." | mail -s "Message de test ProtonMail-bridge" -r your@email.address recipients@email.address
Licence
MIT
Informations sur l'auteur
Ce rôle a été créé en 2021 par Mo Ismailzai.
Installs the ProtonMail bridge (optionally prompting for 2FA), registers it as a headless service, and configures Postfix to use it.
ansible-galaxy install moismailzai.protonmail_bridge_headless