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.

À propos du projet

Installs the ProtonMail bridge (optionally prompting for 2FA), registers it as a headless service, and configures Postfix to use it.

Installer
ansible-galaxy install moismailzai.protonmail_bridge_headless
Licence
mit
Téléchargements
197
Propriétaire
ismailzai.com/keys/ssh.pub ismailzai.com/keys/gpg.asc