Dockerを使用したAutheliaのインストールと設定に関する完全ガイド

最終更新日: 2026年09月02日

  • このインストールでは、Docker Compose、ローカルユーザー、およびSQLiteによるストレージを使用します。
  • 機密情報はYAMLファイルの外に保存し、保護されたファイルとしてマウントする必要があります。
  • 設定フォルダには、アップデートの間もユーザー、データベース、通知が保持されます。
  • SQLiteは単一インスタンスに適しており、PostgreSQLは高可用性に適している。
AutheliaをDocker Composeでインストールする方法(ステップバイステップ)

サーバー上に複数のアプリケーションをホストしている場合、それぞれのログインを個別に管理するのは非常に面倒な作業になります。さらに、パスワードのみで保護された内部ダッシュボードを公開すると、認証情報の漏洩や自動化された攻撃によって第三者がアクセスするリスクが高まります。

このインフラを強化する一つの方法は、 AutheliaをDockerでインストールするこのオープンソースプラットフォームは、集中型認証ゲートウェイとして機能し、リバースプロキシの背後にあるアプリケーションにシングルサインオン、アクセスポリシー、多要素認証を追加できます。

このガイドでは、単一サーバーに対して簡単なデプロイメントを実行します。 Docker Compose、ファイルに保存されたユーザー、およびSQLiteデータベース異なる意図が混同されるのを避けるため、高度なプロキシ設定、ルール、および二要素認証については個別に説明します。

AutheliaをDockerでインストールするために必要なもの

AutheliaをDockerでインストールするために必要なもの

始める前に、Linuxサーバーが必要です。 Docker EngineとDocker Composeプラグイン インストール済みであること。また、フォルダ、ネットワーク、コンテナを作成するための権限も必要です。

ブラウザで認証ポータルを正しく動作させるには、以下のものが必要です。

  • Un 有効なドメインまたはサブドメイン、 として auth.ejemplo.com.
  • Nginx Proxy Manager、Traefik、Caddy、Nginxなどのリバースプロキシ。
  • アクセスするには有効なTLS証明書が必要です HTTPS.
  • Autheliaとリバースプロキシ間で共有されるDockerネットワーク。

AutheliaはDockerプライベートネットワーク内でHTTPを介してプロキシと通信できます。ブラウザからプロキシへの接続にはHTTPS暗号化を適用する必要があります。 コンテナ自体の中でTLSを設定する必要はありません。.

このガイドでは、単一インスタンスに適したSQLiteを使用しています。複数のレプリカや高可用性が必要な場合は、PostgreSQLまたはMySQLを使用し、Redisを共有セッションストアとして構成してください。

Dockerフォルダとネットワークの準備方法

まず、設定が他のコンテナと混ざらないように、専用のフォルダを作成します。

mkdir -p authelia/config authelia/secrets
cd authelia

次に、リバースプロキシを使用する外部ネットワークを作成します。

docker network create proxy

このコマンドは一度だけ実行すれば十分です。ネットワークが既に存在する場合は、Dockerが通知を表示するので、インストールを続行できます。

最終的な構造は以下のようになります。

authelia/
├── docker-compose.yml
├── .env
├── config/
│   ├── configuration.yml
│   └── users_database.yml
└── secrets/
    ├── JWT_SECRET
    ├── SESSION_SECRET
    └── STORAGE_ENCRYPTION_KEY

音量 config 設定、ユーザー、および SQLite データベースを保存します。この永続性のおかげで、 コンテナが再作成または更新されても、データは消えません。.

限定コンテンツ - ここをクリックしてください  PS5をセーフモードで起動する方法

オーテリアの秘密の作り方

Autheliaは、セッション、ストレージ、およびパスワード回復プロセスを保護するために、いくつかのランダムな文字列を必要とします。これらはOpenSSLを使用して生成できます。

openssl rand -hex 64 > secrets/JWT_SECRET
openssl rand -hex 64 > secrets/SESSION_SECRET
openssl rand -hex 64 > secrets/STORAGE_ENCRYPTION_KEY
chmod 600 secrets/*

これらの値は直接書き込むべきではありません configuration.ymlそれらを読み取り専用ファイルとしてマウントし、末尾が _FILE そうすればオーテリアがそれらを読める。

それは重要です 同じ秘密を2つの異なる方法で定義しないYAMLと変数に値が同時に出現する場合 _FILEAutheliaは、設定の曖昧さを回避するために、起動プロセスを停止します。

AutheliaのDocker Composeファイルを作成する方法

まず、ユーザーIDとグループIDを確認してください。

id -u
id -g

ファイルを作成する .env 識別子が異なる場合は、数字を置き換えてください。

AUTHELIA_UID=1000
AUTHELIA_GID=1000
TZ=Europe/Madrid

次に、ファイルを作成します。 docker-compose.yml:

services:
  authelia:
    image: docker.io/authelia/authelia:latest
    container_name: authelia
    restart: unless-stopped
    user: "${AUTHELIA_UID}:${AUTHELIA_GID}"

    environment:
      TZ: "${TZ}"
      AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE: /secrets/JWT_SECRET
      AUTHELIA_SESSION_SECRET_FILE: /secrets/SESSION_SECRET
      AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE: /secrets/STORAGE_ENCRYPTION_KEY

    volumes:
      - ./config:/config
      - ./secrets:/secrets:ro

    networks:
      - proxy

    expose:
      - "9091"

    ports:
      - "127.0.0.1:9091:9091"

networks:
  proxy:
    external: true

ポート9091は、 127.0.0.1したがって、インターネットやローカルネットワークに直接公開されることはありません。プロキシは内部アドレスを使用してサービスと通信できます。 http://authelia:9091.

プロキシとの統合が完了したら、そのセクションを完全に削除できます。 ports指令 expose 両方のコンテナがネットワークを共有している限り、これで十分です。 proxy.

本番環境では、 latest のために 特定の安定版イメージを再度ダウンロードする際に、予期せぬアップデートが発生するのを回避します。

AutheliaをNginxプロキシマネージャーで設定する方法(ステップバイステップ)
関連記事:
AutheliaをNginxプロキシマネージャーで設定する方法(ステップバイステップ)

最小限のAuthelia構成を準備する方法

ファイルを作成する config/configuration.yml 以下の内容に置き換えてください。 ejemplo.com 実際のドメインの場合:

theme: auto

server:
  address: "tcp://:9091/"

log:
  level: info

authentication_backend:
  file:
    path: /config/users_database.yml
    watch: false
    password:
      algorithm: argon2

access_control:
  default_policy: deny

session:
  cookies:
    - domain: ejemplo.com
      authelia_url: https://auth.ejemplo.com
      default_redirection_url: https://ejemplo.com

storage:
  local:
    path: /config/db.sqlite3

notifier:
  filesystem:
    filename: /config/notification.txt

デフォルトポリシー deny 明示的なルールを追加するまで、すべてのアプリケーションを閉じたままにします。これは、 デフォルト拒否の原則 また、過失によってサービスが利用できなくなるリスクを軽減します。

ファイルベースの通知機能は、登録リンクとリカバリリンクをファイルに書き込むため、テスト中に役立ちます。 notification.txtただし、最終的な展開では、SMTP を構成する必要があります。 ファイルベースの通知システムは、本番環境での使用には推奨されません。.

限定コンテンツ - ここをクリックしてください  言葉のトリック

具体的なルールは後ほど、専用のガイドに従って追加される予定です。 Autheliaでアクセスルールを設定する このインストールを過度に長い記事にすることなく。

Autheliaの最初のユーザーを作成する方法

ファイルバックエンドのパスワードは、安全なハッシュを使用して保存する必要があります。公式イメージに含まれているジェネレーターを実行してください。

docker run --rm -it docker.io/authelia/authelia:latest authelia crypto hash generate argon2

コマンドの指示に従ってパスワードを入力してください。出力に「password」という名前の行が表示されます。 Digestで始まるハッシュのみをコピーします $argon2id$単語を含めずに Digest:.

次に作成します config/users_database.yml:

users:
  maria:
    disabled: false
    displayname: "María"
    password: "$argon2id$v=19$m=65536,t=3,p=4$SUSTITUYE_ESTE_VALOR"
    email: "[email protected]"
    groups:
      - "admins"

サーバー上の他のユーザーがファイルを読み取れないように保護してください。

chmod 600 config/users_database.yml

ファイルには元のパスワードは含まれていませんが、ハッシュは依然として機密情報であり、 リポジトリに公開したり、不必要に共有したりすべきではありません。.

Autheliaの検証と起動方法

コンテナを起動する前に、まずComposeファイルの構造を確認してください。

docker compose config

次に、Autheliaバリデーターを使用して、未知のプロパティ、構文エラー、または互換性のない構成を検出します。

docker compose run --rm authelia authelia config validate --config /config/configuration.yml

検証が正常に完了したら、サービスを開始します。

docker compose up -d

ステータスを確認し、記録を表示する:

docker compose ps
docker compose logs -f authelia

コンテナは起動済みとして表示され、内部チェック完了後には正常状態と表示されるはずです。もしコンテナが繰り返し再起動状態になる場合は、通常、ログにどのキー、ファイル、または権限が障害の原因となっているかが示されます。

Autheliaが正常に動作しているかどうかを確認する方法

アプリケーションを設定する前に、コンテナがポート 9091 でローカルに応答していること、およびプロキシが名前解決できることを確認してください。 authelia 共有ネットワーク内。

通常アクセスは、次のようなURL経由で行う必要があります。

https://auth.ejemplo.com

サブドメインはリバースプロキシを指し、有効な証明書を持っている必要があります。Autheliaがセッションクッキーを正しく作成するには、HTTPS URLとブラウザが受け入れるドメインが必要です。 localhost はポータルの最終ドメインとして使用できません.

ログイン画面が表示されたら、先ほど作成したユーザーでログインしてください。TOTP、WebAuthn、その他の認証要素の登録は、後ほど設定するポリシーと選択した通知システムによって異なります。

限定コンテンツ - ここをクリックしてください  Macrium Reflect Free を使用してハードドライブをコピーするにはどうすればよいですか?

ここから Autheliaでアプリケーションを保護しましょうリバースプロキシに接続するか、 AutheliaでOpenID Connectを設定する OIDC準拠アプリケーション向け。

Docker Composeを使用してAutheliaをアップデートする方法

アップデートする前に、フォルダのコピーを作成してください。 config y secretsSQLiteを使用している場合は、データベースをコピーする前にコンテナを一時的に停止するのが最も安全です。

docker compose stop authelia
cp -a config "config-backup-$(date +%F-%H%M)"
cp -a secrets "secrets-backup-$(date +%F-%H%M)"

次に、イメージをダウンロードしてサービスを再作成します。

docker compose pull
docker compose up -d

最後に、ログを確認して、移行とチェックが正常に完了したことを確認してください。

docker compose logs --tail=100 authelia

メジャーバージョン間でアップグレードする前に、リリースノートを確認することをお勧めします。アップグレードプロセス中に構成ボリュームを削除しないでください。構成ボリュームには、 データベース、ユーザー、および永続的な設定.

Dockerを使用してAutheliaをインストールする際によく発生するエラー

最もよくあるエラーの 1 つは、外部ネットワークが存在しないことです。Docker が次のように表示する場合 network proxy declared as external, but could not be found作成方法:

docker network create proxy

権限エラーが表示された場合 /config o /secrets識別子が .env フォルダの所有権を一致させます。これは、以下の方法で確認できます。 id -u e id -g.

もう一つのよくある問題は 秘密を2回定義する次のような変数を使用する場合 AUTHELIA_SESSION_SECRET_FILE同じ値を に含めてはいけません configuration.yml.

Autheliaがパスワードを受け付けない場合は、ファイルを確認してください。 users_database.yml. フィールド password それは、 $argon2id$含めないでください Digest: また、鎖を複数の線に切断してはならない。

コンテナは動作するがポータルがロードされない場合は、次の点に注意してください。 expose ホスト上のポートは公開されません。プロキシは同じネットワークに接続され、 authelia サーバー名として使用されます。その後のリダイレクト、ヘッダー、または認証エラーは、コンテナのインストールではなく、プロキシの設定に関するものです。

最後に、SQLiteを使用している場合は、同じファイルで複数のAutheliaレプリカを実行しようとしないでください。分散デプロイメントには、 外部データベースと共有セッションプロバイダ.

Docker Compose を使用して Authelia をインストールすることで、ポートを直接公開することなく、認証を一元化するための強固な基盤を構築できます。設定、シークレット、永続データを分離することで、サービスを管理された方法で更新でき、後からリバースプロキシ、アクセスルール、多要素認証、または OpenID Connect を追加して拡張することも可能です。