Postorius
Postorius 是一个基于 Django 的 Mailman 管理界面。
安装
要使用 Postorius,需要配置好一个工作的 Web 服务器(例如,使用 Apache HTTP Server 直接转发到 WSGI,或者使用 Nginx 将请求转发给 UWSGI 等应用程序服务器)。
安装 postorius 包。
配置
该 Web 应用程序托管在 Django 上,并且几乎完全通过 Django 进行配置:Web 应用程序在 /etc/webapps/postorius/settings_local.py 中配置,该文件被 /usr/share/webapps/postorius/settings.py 中的默认配置所包含。
/var/lib/postorius/data/ 中,因为该目录仅对 root 用户和应用程序本身可访问。更改应用程序的默认密钥
/etc/webapps/postorius/settings_local.py
SECRET_KEY = 'something-very-secret'
确保在生产环境中运行时禁用调试
/etc/webapps/postorius/settings_local.py
DEBUG = False
为了能够配置正在运行的 mailman 实例,必须将其 REST API 的配置选项添加到 postorius 的配置中。
/etc/webapps/postorius/settings_local.py
MAILMAN_REST_API_URL = 'https://:8001' MAILMAN_REST_API_USER = 'rest_admin' MAILMAN_REST_API_PASS = 'rest_admin_password'
添加有效的电子邮件配置(以便 Django 应用程序可以验证订阅者)
/etc/webapps/postorius/settings_local.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'localhost' EMAIL_PORT = 25 EMAIL_HOST_USER = username EMAIL_HOST_PASSWORD = password
DEFAULT_FROM_EMAIL 和 SERVER_EMAIL 配置选项可用于分别定义发送的用于内部身份验证和错误报告邮件的 From: 头部。需要定义应用程序的有效主机或域名
/etc/webapps/postorius/settings_local.py
ALLOWED_HOSTS = [
'localhost',
'lists.example.com'
]
托管
postorius)运行。它分别使用 /etc/webapps/postorius/、/var/lib/postorius/ 和 /run/postorius/ 来进行配置、静态缓存和(潜在的)套接字。static/ 目录提供的,这会与同一(子)域上的 hyperkitty 冲突,因此建议将 /etc/webapps/postorius/settings_local.py 中的 STATIC_URL 变量设置为唯一值(例如 '/postorius_static/')。Nginx 和 uWSGI
Postorius 在 /etc/uwsgi/postorius.ini 中提供了一个可用的 uWSGI 配置文件。
安装 nginx 和 uwsgi-plugin-python,为 uWSGI 创建一个应用程序专用的套接字(参考 UWSGI#Accessibility of uWSGI socket),并启用 uwsgi-secure@postorius.socket。
对于本地测试设置,在 http://127.0.0.1:80/postorius 提供 Postorius,请将以下 Nginx 配置添加到您的设置中
/etc/nginx/postorius.conf
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 75M;
root /usr/share/webapps/postorius;
access_log /var/log/nginx/access.postorius.log;
error_log /var/log/nginx/error.postorius.log;
location /postorius_static {
alias /var/lib/postorius/static;
}
location ~^/(accounts|admin|postorius)/(.*)$ {
include /etc/nginx/uwsgi_params;
uwsgi_pass unix:/run/postorius/postorius.sock;
}
}
设置
postorius 用户身份运行以下命令(例如使用 sudo 或 su)。首次安装后,请务必生成数据库
[postorius]$ django-admin migrate --pythonpath /usr/share/webapps/postorius/ --settings settings
之后,需要收集应用程序的静态数据
[postorius]$ django-admin collectstatic --pythonpath /usr/share/webapps/postorius/ --settings settings
为 Django 应用程序创建超级用户帐户
[postorius]$ django-admin createsuperuser --pythonpath /usr/share/webapps/postorius/ --settings settings
技巧与提示
设置别名域
要与 postfix 一起在虚拟别名域设置中使用域名,必须设置该域的 Alias Domain。域名不必存在。
要设置 Alias Domain,请使用管理员用户(默认为 postorius)登录,并在 Domains 菜单中修改该域的设置。
参见
- Postorius 文档 - 上游文档
- Mailman Suite 文档 - 整个 Mailman Suite(Mailman、Hyperkitty 和 Postorius)的(高级)上游文档