×

Alliance Authセットアップガイド(4.6.1)

Alliance Authセットアップガイド(4.6.1)

Alliance AuthもSeATとならび有志で開発されている組織を効率的に管理するためのオープンソースプラットフォームです。主にアライアンスやコアリションレベルの運営を支援し、セキュリティとコラボレーションを強化します。

SeATはどちらかというとコーポ単位での用途を想定していますが、こちらは文字通りアライアンス以上での運用を想定して開発されていて、主にDiscordやTeamspeak(TS)などのコミュニケーションツールとEVEキャラクターの所属を紐づけて、同盟に所属するキャラのいるアカウントのみにアクセス権限をつけるためツールとして使われています。

  • ユーザー認証と管理: プレイヤーの登録と権限設定を簡単に行えます。
  • アクセス制御: 特定の機能や情報へのアクセスを制限可能。

SeATはウォレットからアセットまでメンバーのあらゆるESI情報を全部取得しようとするため、メンバーが増えるにつれてサーバーへの負荷が耐えられないレベルに高まるリスクがあるのですが、Alliance Authはメンバー所属などの最低限のESIだけ取得しているので、スケーラビリティの面においてSeATよりも優れさらにアライアンス運用に便利な多くの追加機能プラグインがあり、何千もの所属キャラクターを抱えるアライアンスやコアリションはこちらをメインに使っていることが多いです。

SeATではdiscordやTeamspeakなどとの連動機能はプラグインであるにはあるのですが、サードパーティーなのでアップデートが非常に不安定です。コミュニケーションツールのアクセス関連で不安定になるのは非常にまずいのですが、Alliance Authはユーザー認証と管理に特化しており安定性があります。ですので中小のコーポ・アライアンスでも基本はSeATに登録してもらって、DiscordやTSの認証周りはAlliance Authと併用して使っているところもあります。

Alliance Authは以前はセットアップが非常に難しくメンテナンスもしずらいツールだったのですが、最近のバージョンはコンテナ化により導入とメンテナンスも容易になりました。

ということで今回は、このAlliance Authの導入手順を詳しく解説していきます。

前提条件

システム要件

Alliance AuthはSeATよりも特にストレージ要件は低めで良さそうですが、以下の要件で進めようと思います:

  • Ubuntu 22.04 LTS(最小構成)
  • CPU: 2コア以上
  • メモリ: 4GB以上
  • ストレージ: 50GB以上

セットアップを始める前に、以下のツールが必要です:

  • Docker(最新版を推奨)
  • Git
  • curl
sudo apt-get install git
sudo apt install -y curl

特に重要なのは、Dockerのバージョンです。”docker compose“コマンドが動作しない場合は、”docker-compose“が使用できる可能性がありますが、これは古いバージョンのDockerを示しています。セットアップ前にDockerを最新版にアップデートすることを強くお勧めします。

docker version
docker compose version

インストール手順

Step 1: 初期セットアップ

準備が整ったら、まずAlliance Authの必要なファイルをダウンロードします。以下のコマンドを実行してください:

bash <(curl -s https://gitlab.com/allianceauth/allianceauth/-/raw/master/docker/scripts/download.sh)

このコマンドにより、aa-dockerというディレクトリが作成され、必要なファイルがダウンロードされます。このディレクトリは必要に応じて、任意の名前に変更や移動が可能です。

Step 2: 環境設定

ダウンロードしたファイルの中にある環境設定スクリプトを実行します:

./scripts/prepare-env.sh

このスクリプトは対話形式で必要な設定情報を聞いてきます。入力した情報は.envファイルに保存されます。SSLを使用しない場合は、.envファイル内のPROTOCOLhttp://に変更してください。

Step 3: サービスの起動

環境設定が完了したら、以下のコマンドでサービスを起動します:

docker compose --env-file=.env up -d

注意:このコマンドが応答しない場合は、サーバーのファイアウォール設定を確認してください。特にポート80、443、81が開放されている必要があります。UFWを使用している場合は、以下のコマンドで開放できます:

sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 81

Step 4: データベースのセットアップ

サービスが起動したら、以下のコマンドでAlliance Authのコンテナ内でコマンドを実行します:

docker compose exec allianceauth_gunicorn bash

コンテナ内で以下のコマンドを順番に実行します:

auth migrate
auth collectstatic
auth createsuperuser

createsuperuserコマンドでは、管理者アカウントの作成を求められます。このアカウントは後でWebインターフェースにログインする際に使用します。

Step 5: Nginx Proxy Managerの設定

リバースプロキシはSeATではTraefikを利用しましたが、Alliance AuthではWebサーバーアプリにNginxを使用しており、そこに含まれているNginx Proxy Managerを使用します。これはNginxの標準機能で入っているWebサービスのSSL証明書管理やリバースプロキシの設定を簡単に行えるツールで、以下の手順でブラウザから設定を行います:

  1. ブラウザでhttp://[あなたのドメイン]:81にアクセス
  2. 初期ログイン情報:
  • ユーザー名:admin@example.com(あなたのメールアドレス)
  • パスワード:changeme(任意のパスワード設定)
  1. 最初のログイン時にパスワードの変更を求められます
  2. 「Proxy Hosts」をクリックし、新しいプロキシホストを追加
  3. Alliance Auth用の設定:
  • ドメイン名:auth.[あなたのドメイン]を指定
    この例ではドメインにauth.localhostを使用していますが、authを設定しているアドレスであれば何でも構いません。
  1. Grafana用の設定:

Grafanaはオープンソースのダッシュボードソフトですが、こちらを使用してサイトの稼働状況の確認用画面のUIを提供します。こちらの設定も行います。

  • ドメイン名:grafana.[あなたのドメイン]を指定

これで、Authがhttp://auth.[あなたのドメイン]、grafanaがhttp://grafana.[あなたのドメイン]となります。

Step 6: SSL証明書の設定

本番環境では、必ずSSLを使用することをお勧めします。Nginx Proxy Managerでは、以下の手順で簡単にSSL証明書を設定できます:

  1. プロキシホストの編集画面でSSLタブを開く
  2. 「Request a new SSL Certificate」を選択
  3. 「Force SSL」と「HTTP/2 Support」を有効化。他のチェックは無視でOK
  4. 証明書の更新通知を受け取るメールアドレスを入力

追加パッケージのインストール

Alliance Authの機能を拡張するために、追加パッケージをインストールすることができます。推奨される方法は、カスタムDockerイメージを作成することです:

  1. conf/requirements.txtに必要なパッケージを追加:
allianceauth-signal-pings==0.0.7
  1. docker-compose.ymlを修正:
x-allianceauth-base: &allianceauth-base
  # image: ${AA_DOCKER_TAG?err}
  build:
    context: .
    dockerfile: custom.dockerfile
    args:
      AA_DOCKER_TAG: ${AA_DOCKER_TAG?err}
  restart: always
  1. 環境を再構築:
docker compose --env-file=.env up -d
docker compose exec allianceauth_gunicorn bash
allianceauth update myauth
auth migrate
auth collectstatic

重要な注意点

  1. 機密情報の管理:
    APIキーやデータベースの認証情報などの機密情報は、直接local.pyに書き込まず、.envファイルで管理することをお勧めします。これにより、設定ファイルをGitで管理する際にパスワードが漏洩するリスクを軽減できます。
  2. アップデートの方法:
    Alliance Authをアップデートする場合は、.envファイル内のAA_DOCKER_TAGを更新し、以下のコマンドを実行します:
docker compose pull
docker compose --env-file=.env up -d
docker compose exec allianceauth_gunicorn bash
allianceauth update myauth
auth migrate
auth collectstatic
  1. カスタムパッケージのアップデート:
    カスタムパッケージをアップデートする場合は、requirements.txtのバージョンを更新し、以下のコマンドを実行します:
docker compose build
docker compose --env-file=.env up -d

セットアップ後はバージョンを定期的にチェックし、バックアップとアップデートを行いましょう。
またコミュニティDiscordチャンネルは、問題解決やベストプラクティスの共有に役立つリソースとなりますので参加するとよいと思います。

公式ドキュメント:https://allianceauth.readthedocs.io/
Discord:https://discord.gg/fjnHAmk
追加パッケージ一覧:https://apps.allianceauth.org 

Share this content:

You May Have Missed