Postorius

提供: ArchWiki
2023年9月1日 (金) 20:50時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎Setup: 翻訳)
ナビゲーションに移動 検索に移動

Postorius は、Mailman の管理インターフェースのための Django ベースのツールです。

インストール

Postorius を使うためには、動作するウェブサーバーのセットアップが必要です (例えば、Apache を使って WSGI に直接転送するか、Nginx を使ってリクエストを UWSGI のようなアプリケーションサーバーに転送する)。

postorius パッケージをインストールします。

警告: Postorius は、パスワードやユーザーデータをネットワークに公開してしまうため、TLS 経由でのみアクセスされるべきです (テスト目的でそれを実行しているマシンから直接アクセスされる場合を除く)。

Configuration

The web application is configured in /etc/webapps/postorius/settings_local.py which is included by the default configuration in /usr/share/webapps/postorius/settings.py.

ノート: Postorius should store user sensitive data (e.g. sqlite database) in /var/lib/postorius/data/, as that directory is only accessible by root and the application itself.

Change the default secret for the application:

/etc/webapps/postorius/settings_local.py
SECRET_KEY = 'something-very-secret'

Make sure to disable debugging when running in production:

/etc/webapps/postorius/settings_local.py
DEBUG = False

To be able to configure a running mailman instance configuration options for its REST API have to be added to postorius' configuration.

/etc/webapps/postorius/settings_local.py
MAILMAN_REST_API_URL = 'http://localhost:8001'
MAILMAN_REST_API_USER = 'rest_admin'
MAILMAN_REST_API_PASS = 'rest_admin_password'

Add a valid email configuration (so that the Django application can verify subscribers):

/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
ノート: The DEFAULT_FROM_EMAIL and SERVER_EMAIL configuration options can be used to define the From: header of mails sent for internal authentication and error reporting (respectively).

The valid hosts or domain names for the application need to be defined:

/etc/webapps/postorius/settings_local.py
ALLOWED_HOSTS = [
    'localhost',
    'lists.example.com'
]

Hosting

この記事またはセクションは加筆を必要としています。
理由: Example for a setup using Apache HTTP Server. (議論: トーク:Postorius#)
ノート: Postorius needs to be run as its own user and group (i.e. postorius). It is using /etc/webapps/postorius/, /var/lib/postorius/ and /run/postorius/ for configurations, static caches and (potentially) sockets, respectively.
ノート: As the static files are by default served from a top-level static/ directory, which will conflict with hyperkitty on the same (sub)domain, it is advisable to set the STATIC_URL variable in /etc/webapps/postorius/settings_local.py to something unique (e.g. '/postorius_static/').

Nginx and uWSGI

Postorius comes with a working uWSGI configuration file in /etc/uwsgi/postorius.ini.

Install nginx and uwsgi-plugin-python, create a per-application socket for uWSGI (see UWSGI#Accessibility of uWSGI socket for reference) and enable uwsgi-secure@postorius.socket.

For a local test setup, serving Postorius at http://127.0.0.1:80/postorius add the following Nginx configuration to your setup:

/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 メニューでドメインの設定を変更します。

参照