>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
JavaScript

YAMLファイルを直接編集せずにブラウザからTraefikを管理する

Traefikをホームラボや本番サーバーでリバースプロキシとして активно 使用している場合、おそらくその主な制限はご存じでしょう。組み込みのダッシュボードは見栄えはしますが、完全静的です。ルートのリストを表示することはできますが、ブラウザから新しいドメインを追加したり、ミドルウェアを直接調整したりすることはできません。ターミナルを開き、SSHで接続して、YAMLファイルを編集する必要があります。スペースを1つ入れ忘れただけで、すべてのトラフィックが止まってしまうのです。

chr0n6というニックネームの開発者がこの問題に出会い、Traefik Managerプロジェクトを作成しました。これは路由器のビジュアル管理のためのWebパネルで、夜中にテキストエディタを開く手間から解放してくれます。

Traefik Manager Interface

ファイル編集をWebインターフェースに置き換える理由

Traefikのすべてのロジックは、Routes、Services、Middlewaresという概念を中心に構築されています。サービスが10個以上になると、動的設定の維持がルーティン作業になってしまいます。

Traefik Managerは、動的設定ファイルを作成・編集するためのビジュアルビルダーを提供します。このツールは単にYAMLをゼロから生成するのではなく、ruamel.yamlライブラリを使用します。つまり、UIから保存しても、ファイル内の手動コメントやGoテンプレートは上書きされません。

このインターフェースでは、いくつかの一般的なTraefik管理タスクを処理できます:

  • PathPrefixやHostRegexpなどの複雑なルールをサポートするHTTP、TCP、UDPルートビルダー。
  • Jellyfin、Plex、Embyなどの一般的なメディアサーバー向けの готовые プリセット。セキュリティヘッダーとストリーミングパラメータをワンクリックで設定します。
  • 有効期限表示付きのTLS証明書管理。
  • 一般的でないカスタムルールを記述する必要がある場合のシンタックスハイライト付きMonaco Editor。

ドキュメントを読まずにMiddlewareを設定するウィザード

このプロジェクトの最も素晴らしい詳細は、Middleware用のステップバイステップウィザードです。認証ヘッダーやリクエストレート制限の正確な構文を毎回Traefikドキュメントで検索する代わりに、24の готовые ウィザードから必要なシナリオを選択できます。

サポートされているシナリオには以下が含まれます:

  • Basic認証とDigest認証。
  • Authentik、Authelia、Gatekeeperとの連携用のForward Auth設定。
  • OIDC / SSO設定。
  • レート制限とIPホワイトリスト。
  • URLプレフィックスの置換、削除、追加。

各ウィザードはフォームで明確な質問を行い、ファイル内の適切なセクションを生成します。Cloudflareやその他の外部サービスを介したプロキシを使用している場合、实用はクライアントのIPアドレスが途中で失われないように、適切な信頼できるホップ深度の設定を提案します。

変更のロールバックと自動Gitバックアップ

プロキシ設定を変更する際の主な心配は、プロキシ自体へのアクセスを誤って壊してしまうことです。Traefik Managerにはこのシナリオに対する保護機能が組み込まれています。

各ファイル保存前に、システムがタイムスタンプ付きのターゲットローカルをバックアップします。何か問題が発生した場合、ボタンを押すだけで以前動作していたバージョンを復元できます。

リポジトリに設定を保存することを好む人のために、組み込みのGit自動プッシュメカニズムがあります。GitHub、GitLab、Gitea、またはForgejoをリンクできます。変更後は、パネルが自動的にコミットしてブランチにプッシュします。インターフェース内にビジュアルな差分比較付きの履歴ビューアがあるため、誰がいつ設定を変更したかを常に確認できます。

Agent経由での複数サーバー管理

1つのサーバーだけでなく、複数のホストのインフラストラクチャがある場合、それぞれに別のパネルをデプロイして開く必要はありません。

プロジェクトにはGoで書かれたTraefik Manager Agent(TMA)が含まれています。リモートマシンにTraefikと一緒にインストールし、APIキーを生成して、中央インターフェースに接続します。パネルの上部にサーバー切替スイッチが表示されます。これを通じて、接続されたホストのいずれかでログを表示したり、ルートを変更したり、設定をロールバックしたりできます。

さらに、エージェントは直接Git設定すら必要ありません。メインサーバーが設定を取得して、リポジトリの別ブランチに保存できます。

モニタリング、CrowdSec、セキュリティ

このパネルはファイルの作成だけではありません。ライブ分析を収集して表示できます。

モニタリングタブには、すべてのサービスのステータス、プロキシバージョン、アクティブなエントリポイントが表示されます。また、特定のTraefikバージョンに影響する発見された脆弱性(CVE)に関する警告も表示されます。これにより、コンテナを適時に最新の状態に保つことができます。

サーバーでCrowdSecが実行されている場合、パネルはそのLAPIに接続します。ブラウザから、ブロックされたアドレスのリストを表示したり、特定のIPのブロックを解除したり、疑わしいトラフィックを captcha経由で強制的にルーティングしたりできます。

パネル本身的セキュリティの観点から、すべて 잘考え되어 있습니다:

  • bcryptとTOTP二要素認証による認可。
  • 企業全体のシングルアカウントでログインするためのOIDCサポート。
  • CSRF、セッション攻撃、レート制限に対する組み込みの保護。
  • モバイルアプリ用のトークン。これは特に言及する価値があります。

開発者はAndroid用のモバイルクライアント(React Native)もリリースしました。これはAPIキーを介して動作します。電話から、障害が発生したルートをすばやく無効にしたり、外出先でサービスのステータスを確認したりするのが便利です。

クイックスタート

公式インストールスクリプトまたは標準のComposeファイルを使用して、パネルを文字通り1つのコマンドで起動できます。

最小限の docker-compose.yml の例:

services:
  traefik-manager:
    image: ghcr.io/chr0nzz/traefik-manager:latest
    container_name: traefik-manager
    restart: unless-stopped
    ports:
      - "5000:5000"
    environment:
      - COOKIE_SECURE=false
    volumes:
      - /path/to/traefik/dynamic.yml:/app/config/dynamic.yml
      - /path/to/traefik-manager/config:/app/config
      - /path/to/traefik-manager/backups:/app/backups

docker compose up -d を実行した後、http://localhost:5000 に移動して短い初期設定ウィザードを実行します。

内部構造

プロジェクトのアーキテクチャはシンプルで信頼性があります。バックエンドはPython 3.11とFlask、Gunicornサーバーで書かれています。フロントエンドは重量級のフレームワークなしで実現:プレーンなJavaScript、レイアウト用のTailwind CSS、Phosphorアイコン、Monacoエディタ。

すべてのJSとCSSリソースはDockerイメージに直接バンドルされているため、パネルは獨立して動作し、実行中に外部CDNへのリクエストを一切行いません。

まとめ

Traefik Managerは、コミュニティにとって待ち望まれていたニーズに応えています。このツールは、YAMLファイルの手動編集に厌倦したホームラボ所有者、小規模チーム、システム管理者に適しています。

Traefikが5つ以上のサービスを提供している場合、または複数のノードを管理している場合は、プロジェクトを必ずテストする価値があります。便利なMiddleware設定ウィザードと組み込みの変更ロールバックにより、ネットワーク設定時に много времени を節約できます。

関連プロジェクト