Uptime Kumaとは?

Uptime Kumaは、自ホスト型の監視ツールです。一定間隔でウェブサイト、TCPポート、DNSレコード、Dockerコンテナなどをチェックし、何かが停止したときに通知を送信して、ステータスページを公開できます。このプロジェクトでは、ポート3001で待ち受け、すべてを/app/dataフォルダーに保存する公式イメージlouislam/uptime-kumaが提供されています。

ツールの説明

このツールは、Uptime Kuma用のcompose.yamlを作成します。Uptime Kumaリポジトリにあるファイルをベースに、通常必要となる設定を追加します。具体的には、イメージのバージョンとバリアント、ホストポートとバインドアドレス、データの保存場所、Dockerホストモニター用のDockerソケットへのアクセス、データベースなどです。MariaDBを専用コンテナで使用する場合、このツールはヘルスチェック付きの2つ目のサービスを追加するため、データベースの準備が完了してからUptime Kumaが起動します。フォームに入力欄がない設定は、環境変数として追加できます。すべてブラウザー上で作成できます。

機能

  • 21betaのイメージタグ、およびバージョン2のstandard、slim、rootless、slim rootlessバリアント
  • ホストポートと、リバースプロキシの背後で使用する場合の127.0.0.1などのバインドアドレス
  • ホスト上のデータフォルダーまたは名前付きDockerボリューム。ボリュームは自動的に宣言されます
  • Dockerホストモニター用の/var/run/docker.sockへのオプションのアクセスと、それによって可能になる操作についての警告
  • SQLite、組み込みMariaDB、ファイルに追加されるMariaDBコンテナ、または外部MariaDBサーバー
  • 生成されたデータベースパスワード。Composeでそのまま保持されるよう、$記号はエスケープされます
  • iframeへの埋め込み、WebSocketのオリジンチェック、Cloudflare Tunnelのtokenに関するオプション
  • その他の環境変数、ファイルの内容を説明するコメント、compose.yamlとしてのダウンロード

デフォルト設定では、Uptime Kumaリポジトリにあるものと同じファイルが作成されます。

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    restart: unless-stopped

データベースとしてMariaDBコンテナを選択すると、mariadbサービスが追加され、UPTIME_KUMA_DB_TYPEUPTIME_KUMA_DB_HOSTNAME、その他のUPTIME_KUMA_DB_*変数によってUptime Kumaが接続されます。

ヒント

  • 結果を空のフォルダーにcompose.yamlとして保存し、docker compose up -dで起動します。その後、http://localhost:3001を開きます
  • NFSなどのファイルシステムはデータフォルダーではサポートされていません。ローカルフォルダーまたはDockerボリュームを使用してください
  • slimイメージには、実ブラウザモニターに必要なChromiumが含まれておらず、組み込みMariaDBも含まれていません
  • rootlessイメージはUID 1000のnodeユーザーとして実行されるため、ホスト上のデータフォルダーはそのユーザーが書き込み可能でなければなりません
  • Uptime KumaはWebSocketsを使用します。リバースプロキシの背後に配置する場合、プロキシはUpgradeヘッダーとConnectionヘッダーを通過させる必要があります
  • Dockerソケットにより、Uptime Kumaはホスト上のDockerを完全に制御できます。Dockerホストモニターが必要な場合にのみマウントし、Uptime Kumaをインターネットに公開しないでください
  • バージョン1はSQLiteのみをサポートするため、データベースのオプションは表示されません
  • パスワードフィールドの内容はファイルに平文で保存されます。ファイルを非公開にするか、パスワードを.envファイルに移動して${DB_PASSWORD}として参照してください