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://127.0.0.1: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)的(高级)上游文档