SimpleLogin
これは SimpleLogin 用のセルフホスト型 docker-compose 構成です。
前提条件
- Linux サーバー(VM でも専用サーバーでも可)が必要です。このドキュメントでは Ubuntu 18.04 LTS のセットアップ例を示していますが、他の一般的な Linux ディストリビューションにも応用可能です。ほとんどのコンポーネントは Docker コンテナとして動作し、Docker はやや重い場合があるため、最低でも 2GB の RAM を推奨します。サーバーは 25 番ポート(メール)、80、443(Webアプリ用)、22(SSH 用)が開放されている必要があります。
- DNS を設定できるドメインが必要です。サブドメインでも構いません。本ドキュメントでは、メール用に
mydomain.com、SimpleLogin ウェブアプリ用にapp.mydomain.comを例として使用します。ドキュメント内でこれらの値が現れる場合は、必ずご自身のドメイン名およびサブドメイン名に置き換えてください。当社でよく使う方法としては、この README ファイルをコンピュータにダウンロードし、mydomain.comおよびapp.mydomain.comのすべての箇所を一括置換することです。
bash(または zsh などの bash 互換シェル)で実行してください。他のシェル(例:fish)を使用している場合は、コマンドを適宜調整してください。- セットアップを確認するために使うユーティリティパッケージがあります。以下のコマンドでインストールしてください:
sudo apt update \
&& sudo apt install -y net-tools dnsutils
DNS 設定
_詳細については、参考ドキュメントを参照してください_
ご注意 DNSの変更が反映されるまで最大24時間かかる場合があります。実際にはかなり速く(テストでは約1分程度)反映されます。DNS設定では、絶対ドメインを強制するために末尾にドット(.)を付けたドメインを使用することが一般的です。以下のDNSレコードを設定する必要があります:
- A:ドメインをサーバーのIPv4アドレスにマッピングします。
- AAAA:ドメインをサーバーのIPv6アドレスにマッピングします。
- MX:受信メールをメールサーバーに転送します(
*ワイルドカードを含む)。 - PTR:サーバーのIPアドレスをドメイン名に逆引きします。
- DKIM:送信メールにデジタル署名をして正当性を検証します。
- DMARC:認証に失敗したメールの処理方法を受信側に指示します。
- SPF:特定のメールサーバーがドメインからメールを送信することを許可します。
- CAA:どの認証局がドメインのSSL証明書を発行できるかを指定します。
- MTA-STS:メールサーバー間の安全な暗号化接続を強制します。
- TLS-RPT:TLS接続の失敗を報告し、メール配信のセキュリティを向上させます。
Docker
サーバーにDockerがまだインストールされていない場合は、Docker CE for Ubuntuの手順に従ってDockerをインストールしてください。
また、docker-installスクリプトを使用してDockerをインストールすることもできます。これは
curl -fsSL https://get.docker.com | shデフォルトのブリッジネットワークでIPv6を有効にする
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64",
"experimental": true,
"ip6tables": true
}
この手順では、Dockerコンテナを使用してスタック全体を実行する方法を案内します。
これには以下が含まれます:- traefik
- SimpleLoginアプリのコンテナ
- postfix
/opt/simpleloginにこのリポジトリをクローンします。.env.exampleを.envにコピーし、適切な値を設定します。DOMAIN変数をあなたのドメインに設定します。SUBDOMAIN変数をあなたのドメインに設定します。デフォルト値はappです。POSTGRES_USER変数をpostgresの認証情報に合わせて設定します(初めての場合はsimpleloginを使用)。POSTGRES_PASSWORDをpostgresの認証情報に合わせて設定します(初めての場合はランダムなキーを設定)。FLASK_SECRETを任意のシークレットキーに設定します。
Postgres SQL
このリポジトリはDockerコンテナ内でpostgres SQLを実行します。
警告: このリポジトリの以前のバージョンは12.1を使用していました。
詳細とアップグレード手順については、参考ドキュメントを参照してください。
アプリケーションの実行
以下のコマンドを使用してアプリケーションを実行します:
docker compose up --detach --remove-orphans --build && docker compose logs -fこの時点で証明書認証局の認可(CAA)を設定することをお勧めします。
次のステップ
上記のすべての手順が成功したら、
デフォルトでは、新しいアカウントはプレミアムではないため、無制限のエイリアスはありません。アカウントをプレミアムにするには、 データベースの "users" テーブルに移動し、"lifetime" カラムを "1" または "TRUE" に設定してください:
docker compose exec -it postgres psql -U myuser simplelogin
UPDATE users SET lifetime = TRUE;
\q
すべての希望するログインアカウントを作成したら、さらなる登録を無効にするためにこれらの行を .env に追加してください:DISABLE_REGISTRATION=1
DISABLE_ONBOARDING=trueその後、Webアプリを再起動するには、次のコマンドを適用してください: docker compose restart app
その他
Postfix設定 - Spamhaus
Spamhausプロジェクトは、スパムの発信元として知られるIPアドレスの信頼できるリストを管理しています。 特定のIPアドレスがそのリストに含まれているかどうかは、DNSインフラにクエリを送信して確認できます。
Spamhausはパブリック(オープン)DNSリゾルバからのクエリをブロックするため(参照:
このキーを .env の SPAMHAUS_DQS_KEY として貼り付けてください。
DQSキーが提供されていない場合、postfixコンテナはSpamhausのパブリックミラーがクエリを受け入れるかどうかをチェックし、受け入れる場合はそちらを使用します。 Spamhausがpostfixコンテナからのパブリックミラーへのクエリを拒否した場合、機能は完全に無効になります。
Postfix設定 - バーチャルエイリアス
postfix設定は postfix/conf.d/virtual および postfix/conf.d/virtual-regexp ファイルを使用したバーチャルエイリアスをサポートしています。
これらのファイルは、対応するpostfix/templates/virtual.tpl
および postfix/templates/virtual-regexp.tpl テンプレートファイルに基づいて起動時に自動生成されます。
デフォルトの設定は以下の通りです:
#### virtual.tpl
virtual ファイルはpostfixの virtual_alias_maps 設定をサポートしています。
これは、存在しないエイリアスに対応する特定のアドレス unknown@mydomain.com からのメールを、存在する別のアドレス contact@mydomain.com に転送するルールを含みます。
``postfix-conf
unknown@mydomain.com contact@mydomain.com
#### virtual-regexp.tpl
virtual-regexpファイルはポストフィックスのvirtual_alias_maps設定をサポートします。
存在しないエイリアスに対応しない任意のサブドメイン宛のメールを、
サブドメイン名から取られたディレクトリに属する新しいエイリアスに書き換えるルールを含んでいます。
そのエイリアスは存在しない場合、動的に作成されることがあります。
postfix-conf
/^([^@]+)@([^.]+)\.mydomain.com/ $2/$1@mydomain.com
`
たとえば、someone@directory.mydomain.com に送信されたメールは、postfix によって directory/someone@mydomain.com` にルーティングされます。
3.4.0 からのアップグレード方法
_このセクションは参考ドキュメントに移動しました_
以前のNGinxベースのセットアップからのアップグレード方法
_このセクションは参考ドキュメントに移動しました_
--- Tranlated By Open Ai Tx | Last indexed: 2026-03-15 ---