Postorius

提供: ArchWiki
2023年10月16日 (月) 20:40時点におけるKgx (トーク | 投稿記録)による版 (→‎Configuration: 翻訳)
ナビゲーションに移動 検索に移動

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

インストール

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

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

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

設定

Web アプリケーションは、/etc/webapps/postorius/settings_local.py で設定されます。これは、/usr/share/webapps/postorius/settings.py のデフォルト設定に含まれています。

ノート: Postorius は、ユーザーの機密データ (sqlite データベースなど) を /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 = 'http://localhost: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'
]

ホスティング

この記事またはセクションは加筆を必要としています。
理由: Apache HTTP Server を使ったセットアップの例。 (議論: トーク:Postorius#)
ノート: Postorius はそれ自身のユーザーとグループ (すなわち postorius) として実行する必要があります。それは設定、静的キャッシュ、および (潜在的に) ソケットのためにそれぞれ /etc/webapps/postorius/, /var/lib/postorius/, および /run/postorius/ を使用しています。
ノート: 静的ファイルはデフォルトでトップレベルの static/ ディレクトリから提供され、同じ (サブ) ドメイン上の hyperkitty と競合するため、/etc/webapps/postorius/settings_local.pySTATIC_URL 変数をユニークなもの (例: '/postorius_static/') に設定することをお勧めします。

Nginx と uWSGI

Postorius は /etc/uwsgi/postorius.ini にある動作する uWSGI 設定ファイルが付属しています。

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

参照