moismailzai.protonmail_bridge_headless

Ansible角色:ProtonMail Bridge(无头模式)

安装ProtonMail Bridge(可选择提示2FA),将其注册为无头服务,并配置Postfix使用它。支持RedHat/CentOS、Debian/Ubuntu和Archlinux服务器。

背景

ProtonMail Bridge应用程序(Linux)使您能够将ProtonMail帐户与IMAP和SMTP电子邮件程序(如Thunderbird和Evolution)集成。Bridge对所有有付费订阅的ProtonMail用户开放。

此角色的目的是自动化安装Bridge,以便它可以在没有GUI的无头机器上使用。

具体来说,此角色将:

  • 下载最新版本的Bridge
  • 安装之前确保软件包已正确签名
  • 使用您的用户信息配置Bridge
  • 创建一个服务使Bridge在后台运行
  • 创建一个锁定的用户来运行该服务
  • 配置Postfix以与Bridge一起使用(SASL)
  • 在RHEL系统上(或可选择)配置SELinux上下文

需求

要求使用RedHat/CentOS 8、Ubuntu 18或更高版本,或更新的Debian、Archlinux或Manjaro系统。

角色变量

可用变量如下所示,并包含默认值(请参见defaults/main.yml):

protonmail_username: ""
protonmail_password: ""
protonmail_custom_domain: ""
protonmail_enable_2fa: false

您的ProtonMail凭证和域名。这些用于将您的帐户添加到ProtonMail Bridge,并配置Postfix。__注意__:当protonmail_enable_2fa设置为true时,此角色将以交互方式运行,并提示您输入2FA代码。

# configure_selinux: ""

是否配置SELinux。在RHEL系统上默认为true,在其他系统上默认为false。

gpg_key_settings:
    type: default
    length: default
    subkey_type: default
    subkey_length: default
    expire_date: 0
    name: protonmail-bridge-headless service key
    email: root@localhost

这些设置用于创建本地GPG密钥。该密钥是ProtonMail Bridge和pass之间通信所必需的。可以对templates/protonmail-bridge.gpg.j2文件进行额外更改。注意:默认设置生成一个新的无保护密钥,仅用于Bridge。要添加密钥密码,您需要修改默认值以及templates/protonmail-bridge-headless.service.sh.j2

configure_gpg: "true"
configure_pass: "true"
configure_postfix: "true"
configure_service: "true"
configure_user: "true"

可用于跳过此角色中的任务。

protonmail_lib_dir: "/var/lib/protonmail"

配置和服务文件将存储的位置。

protonmail_user: "protonmail"
protonmail_user_flags: "-L"

服务用户的名称和标志。

postfix_hostname: "{{ protonmail_custom_domain }}"
postfix_localhost_address: "127.0.0.1"

您可以在main.cf中覆盖的设置。

selinux_httpd_can_sendmail: "true"

在配置Postfix时是否为httpd添加selinux策略。

依赖项

需要付费的ProtonMail帐户。

示例用法

首先,安装当前版本的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

然后,创建一个名为main.yml的文件,并添加以下内容(将your_usernameyour_passwordyour_domain替换为实际值):

- name: "安装并配置ProtonMail Bridge为无头服务"
  become: "yes"
  hosts: "all"
  vars:
    protonmail_username: "your_username"
    protonmail_password: "your_password"
    protonmail_custom_domain: "your_domain"
  roles:
    - "moismailzai.protonmail_bridge_headless"

然后在同一目录的命令行中运行:

# 从Ansible Galaxy安装此角色
ansible-galaxy install moismailzai.protonmail_bridge_headless

# 确保Ansible可以找到您刚刚下载的角色
ln -s ~/.ansible/roles roles

# 运行您在上一步中创建的playbook
sudo ansible-playbook -c local -i localhost, main.yml

完成后,从命令行发送测试消息给自己:

echo "如果您看到这个,说明Bridge已正确配置。" | mail -s "ProtonMail Bridge测试消息" -r your@email.address recipients@email.address

许可证

MIT

作者信息

此角色由Mo Ismailzai于2021年创建。

关于项目

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
许可证
mit
下载
197
拥有者
ismailzai.com/keys/ssh.pub ismailzai.com/keys/gpg.asc