アウトポストのデプロイ

サーバーまたは NAS で アウトポスト を実行して、選択した電子メール フォルダーから通知を受信します。推奨される Compose インストールには Docker に加えて Docker Compose v2 が必要です。

利用可能なイメージ: 利用可能なバージョンは GitHub リリース および GHCR にリストされています。

1. インストール方法を選択します

Docker Compose をお勧めします: インストール、更新、バックアップでは同じ構成が使用されます。イメージは ghcr.io/mingzaily/mailwake:latest 、Linux amd64 / arm64 用です。 latest は安定版リリースに続きます。バージョンを固定するには、latest をリリースから公開されたタグに置き換えます。

サーバー端末で:

mkdir -p ~/mailwake
cd ~/mailwake

この完全な構成を使用して、そのディレクトリに compose.yaml を作成します。

services:
  core:
    image: ghcr.io/mingzaily/mailwake:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
    environment:
      MAILWAKE_LISTEN: "0.0.0.0:8080"
      MAILWAKE_DATA_DIR: "/data"
      MAILWAKE_RELAY_URL: "${MAILWAKE_RELAY_URL:-}"
    volumes:
      - core-data:/data
    read_only: true
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    stop_grace_period: 30s
volumes:
  core-data:

イメージをプルして アウトポスト を開始します。

docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core

結果を確認してください: core は Up / running を示し、ログには初期セットアップ コードが含まれています。次のステップのために端末を使用できるようにしてください。今後の Compose コマンドは ~/mailwake から実行します。

core-data Docker ボリュームには /data が格納されます。このディレクトリ名を使用すると、デフォルトの Docker 名は mailwake_core-data になります。コンテナを再作成すると、コンテナが保持されます。 docker compose down -v はボリュームとその内容を削除します。

ドッカーラン

単一のコマンドを使用したい場合は、この同等のインストールを選択してください。インスタンスに対して 1 つのインストール方法を使用してください。

docker volume create mailwake-data
docker run -d \
  --name mailwake \
  --restart unless-stopped \
  --stop-timeout 30 \
  --read-only \
  --security-opt no-new-privileges:true \
  --cap-drop ALL \
  -p 127.0.0.1:8080:8080 \
  -v mailwake-data:/data \
  ghcr.io/mingzaily/mailwake:latest
docker logs --tail=50 mailwake

このインストールでは、mailwake-data ボリュームを使用します。次の管理コマンドは Compose を使用します。代替案については、Docker Run のバックアップ手順 を参照してください。

2. コンソールを開きます

Docker ホスト上: http://127.0.0.1:8080 を開きます。

リモート サーバーまたは NAS の場合: 自分のコンピュータで次のコマンドを実行します。user@server をサーバーの SSH ユーザーとアドレスに置き換えます。

ssh -L 18080:127.0.0.1:8080 user@server

接続を開いたままにして、コンピューター上で http://127.0.0.1:18080 にアクセスします。これだけで初期設定は完了します。ドメイン経由で継続的にアクセスしたい場合は、以下で HTTPS を設定します。

結果を確認してください: Mailwake 設定画面が開きます。ログからセットアップ コードを入力し、12 文字以上の管理者パスワードを作成します。セットアップ前に アウトポスト を再起動すると、新しいセットアップ コードが生成されます。

最初の通知 に進み、メールボックスと通知チャネルを接続します。

3.HTTPSの設定

ドメインをサーバーにポイントし、 http://127.0.0.1:8080 に転送するようにリバース プロキシを構成します。同じホストにインストールされている Caddy の場合、ドメインを Caddyfile に追加します。

mail.example.org {
    reverse_proxy 127.0.0.1:8080
}

DNS を確認し、受信ポート 80 / 443 を許可してから、検証してリロードします。

sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

https://mail.example.org を開き、証明書が有効であることを確認し、サインインしてメールボックスを開くことができることを確認します。 Caddy をインストールするには、公式 Caddy インストールガイド を参照してください。 Nginx Proxy Manager などのプロキシ パネルで、ドメインと転送アドレスを入力し、パネルで証明書を要求します。

別のコンテナ内のプロキシの場合は、それを アウトポスト の Docker ネットワークに参加させ、 http://core:8080 に転送します。その 127.0.0.1 はそれ自体を指します。元のホストを保持し、 X-Forwarded-For を設定します。 アウトポスト は、ループバック ネットワークとプライベート ネットワークからのプロキシ情報を受け入れます。ポート 8080 をプロキシと信頼できるローカル クライアントにのみ公開します。

4.アウトポストを更新する

バックアップ を完了し、Compose ディレクトリで実行します。

docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core

固定バージョンの場合は、最初に compose.yaml のイメージ タグを変更します。コンソールを開き、メールボックスの監視を確認し、新しい電子メールを送信して配信を確認します。アップデート前のバックアップを保管しておいてください。ロールバックするには、復元チュートリアルを使用して、そのデータとそれに一致するイメージの両方を復元します。

5. トラブルシューティング

コンテナイメージを取得できない

GHCR に要求されたバージョンが含まれているかどうかを確認します。 manifest unknown は通常、タグが欠落していることを意味します。イメージ アドレスとパッケージの可視性で denied エラーがないか、サーバーの GHCR への接続でタイムアウトがないか確認してください。

コンソールが開かない

127.0.0.1 は、使用しているコンピューターを指します。リモート インストールには SSH トンネルまたは HTTPS ドメインを使用します。まず docker compose ps と docker compose logs --tail=50 core を確認してください。 8080 が占有されている場合は、マッピングを 127.0.0.1:18080:8080 に変更し、ブラウザーとリバース プロキシでホスト ポート 18080 を使用します。

管理者パスワードをリセットする

Compose ディレクトリで実行し、ターミナル プロンプトで新しいパスワードを入力します。

docker compose stop core
docker compose run --rm -it core admin reset-password
docker compose start core

回復コマンドはデータ ディレクトリ ロックを取得するため、最初にアウトポストを停止します。パスワードをリセットすると、ブラウザ セッションが取り消され、API トークン、メールボックス、キューが保存されます。

公式アプリとProを接続します

Free Web コンソールと Bark / Pushover / Webhook 配信は独立して動作します。公式アプリの場合、HTTPS とペアリングについては アプリの統合 に従ってください。

ソース ビルドとローカル開発については、 開発ガイド で説明されています。

ソースのビルドとプロセス設定

開発ビルドの場合は、 ソースリポジトリの README および コントリビューター ビルド ガイド に従ってください。

MAILWAKE_LISTEN は、Docker の外部ではデフォルトで 127.0.0.1:8080 になります。コンテナーは 0.0.0.0:8080 を使用します。 MAILWAKE_DATA_DIR のデフォルトは data です。コンテナは /data を使用します。 MAILWAKE_RELAY_URL のデフォルトは https://notify.mailwake.oritx.com です。再起動およびアップグレード後も、 secret.key を含む完全なデータ ディレクトリを保持します。

プッシュ配信環境を変える

実稼働環境とサンドボックスでは、別個のペアリング ID が使用されます。意図的に環境を変更するには、アウトポスト を停止し、既存のデータ ディレクトリと以前のプッシュ配信サービスの保存されたアドレスに対してリセットを実行します。

sh
docker compose stop core
docker compose run --rm -it core admin reset-native-push

プロンプトが表示されたら、「reset-native-push」と入力します。このコマンドは、古いプッシュ配信サービスでのペアリングを取り消します。そのサービスに到達できない場合は、古い構成を保持し、到達可能になったときに再試行します。未解決のターゲットがゼロであることを確認したら、新しい MAILWAKE_RELAY_URL を設定し、 docker compose up -d および 再度ペアリングします を使用してアウトポストを再作成します。このコマンドは、アウトポストの署名 ID と通常のチャネルの履歴を保存します。

Markdown · AGPL-3.0-only · Mailwake コントリビューター