メインコンテンツまでスキップ

カスタムパスを使用したCaddy

Caddyは、Remnawave パネルを保護するために使用できる強力で柔軟なWebサーバーです。

インストール

まず、Caddy用のディレクトリを作成します。

mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy

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

touch docker-compose.yml && nano docker-compose.yml

そして以下の内容をファイルに追加します:

docker-compose.yml
services:
remnawave-caddy:
image: remnawave/caddy-with-auth:latest
container_name: 'remnawave-caddy'
hostname: remnawave-caddy
restart: always
environment:
- AUTH_TOKEN_LIFETIME=3600
- REMNAWAVE_PANEL_DOMAIN=PANEL_DOMAIN
- REMNAWAVE_CUSTOM_LOGIN_ROUTE=supersecretroute
- AUTHP_ADMIN_USER=LOGIN_USERNAME
- AUTHP_ADMIN_EMAIL=LOGIN_EMAIL
- AUTHP_ADMIN_SECRET=LOGIN_PASSWORD

ports:
- '0.0.0.0:443:443'
networks:
- remnawave-network
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- remnawave-caddy-ssl-data:/data

networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true

volumes:
remnawave-caddy-ssl-data:
driver: local
external: false
name: remnawave-caddy-ssl-data

.env変数の設定

RemnaWaveパネルのドメイン名を設定する必要があります。Caddyが自動的に証明書を発行します。

REMNAWAVE_PANEL_DOMAIN=panel.domain.com

カスタムログインルート。 このパスはログインページにのみ使用されます。事前に認証せずにダッシュボードを開いてもリダイレクトは行われません。 このパスを知っている人だけがパネルにアクセスできます。

REMNAWAVE_CUSTOM_LOGIN_ROUTE=supersecretroute

管理者認証情報。 強力なパスワードを使用してください。

AUTHP_ADMIN_USER=admin
AUTHP_ADMIN_EMAIL=[email protected]
AUTHP_ADMIN_SECRET=strong_password

トークンの有効期間。

AUTH_TOKEN_LIFETIME=3600

Caddyfile

Caddyfile について詳しく見ていきましょう。

まず、事前定義されたセットアップの1つを選択する必要があります。

備考

APIキーを発行する本番環境では、MFAを使用した完全なセキュリティセットアップを使用することをお勧めします。

危険

このパス(REMNAWAVE_CUSTOM_LOGIN_ROUTE)からのみログインできます。

MFAを使用した完全なセキュリティセットアップ

  • すべてのルートが認証によって保護されています。(フロントエンド、バックエンド)
  • /api/sub/*エンドポイントを含む、すべてのAPIエンドポイントが保護されています。
  • ログインにはOTPコードによるMFAが必要です。
  • /api/*エンドポイント用の特別なAPIキーを発行できます。
  • 完全なドメイン保護。

以下のコマンドを実行してCaddyfileをダウンロードします。

curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-and-protected-api-route/Caddyfile

認証なしのAPIルート (api/*)

  • ルートは認証によって保護されています。(フロントエンド
  • ログインにはOTPコードによるMFAが必要です。(フロントエンド
  • すべてのAPIエンドポイントが保護されていません! (/api/*は公開)
危険

このセットアップは /api/* エンドポイントをパブリックインターネットに公開します。

すべてのエンドポイントは認証を必要としませんが、Remnawave のセキュリティ機能を引き続き使用します。

APIキーを発行する本番環境では、MFAを使用した完全なセキュリティセットアップを使用することをお勧めします。

以下のコマンドを実行してCaddyfileをダウンロードします。

curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-with-api-without-auth/Caddyfile

認証なしの /api/sub/* エンドポイント

  • ルートは認証によって保護されています。(フロントエンド
  • ログインにはOTPコードによるMFAが必要です。(フロントエンド
  • /api/sub/* エンドポイントのみ公開、他のエンドポイントは保護されています。
危険

このセットアップは /api/sub/* エンドポイントをパブリックインターネットに公開します。

APIキーを発行し、公開サブスクリプションページに @remnawave/subscription-page を使用する本番環境では、MFAを使用した完全なセキュリティセットアップを使用することをお勧めします。

以下のコマンドを実行してCaddyfileをダウンロードします。

curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-with-opened-api-sub/Caddyfile

コンテナの起動

上記のセットアップのいずれかを選択した後、次のコマンドでコンテナを起動できます。

docker compose up -d && docker compose logs -f

パネルへのアクセス

コンテナが起動したら、https://panel.domain.com/REMNAWAVE_CUSTOM_LOGIN_ROUTE でパネルにアクセスできます。

最初の起動時に、MFA方法を追加するよう促されます。

Google Authenticator の使用をお勧めします。

MFAを無効にする

MFAを完全に無効にしたい場合は、Caddyfile を編集することで行えます。

Caddyfile を開き、次の行を変更します:

cd /opt/remnawave/caddy && nano Caddyfile

次の行を見つけて、require mfa 行を削除します。

Caddyfile
transform user {
match origin local
action add role authp/admin
require mfa
}

その後、次のコマンドでコンテナを再起動できます。

docker compose down && docker compose up -d && docker compose logs -f

認証ポータルページへのアクセス

備考

認証ポータルページには https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth でアクセスできます。

Auth Portal page

ここから素早くRemnawave ダッシュボードに移動したり、認証ポータルの設定を管理したりできます。

MFAセクションでは、MFA方法を削除または追加できます。

APIキーの発行

備考

認証ポータルページには https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth でアクセスできます。

認証ポータルページでAPIキーを発行できます。API-keys タブをクリックします。

備考

APIキーを発行したら、APIへのリクエストの X-Api-Key ヘッダーで使用できます。

例:X-Api-Key: YxOovHLnpkcmSig5082egcHnyTk8SK4dNGAFHgZ2LKZezgj5oUj2FA2IR2sMwbALnP9YNpzZ

API-keys