Postorius
Postorius 是一个基于 Django 的 Mailman 管理界面。
安装
要使用 Postorius,需要一个可用的 web 服务器 设置(例如,使用 Apache HTTP Server 转发到 WSGI,或使用 Nginx 将请求转发到诸如 UWSGI 的应用服务器)。
配置
Web 应用程序托管在 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#uWSGI 套接字的可访问性)并启用 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]$ 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 套件(Mailman、Hyperkitty 和 Postorius)的(高级)上游文档