HTTP、TCP、DNS、Docker、及びSlack、Discord、Telegramを含む90以上の通知サービスをサポートする自ホスト型アップタイム 監視ツール。
# 永続ストレージ付きでUptime Kuma を実行
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:2
# http://localhost:3001 でアクセス
# ローカルホストのみにバインド(外部アクセスなし)
docker run -d \
--restart=always \
-p 127.0.0.1:3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:2
# 公式コンポーズ ファイルをダウンロード
mkdir uptime-kuma && cd uptime-kuma
curl -o compose.yaml \
https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml
# サービスを開始
docker compose up -d
# http://localhost:3001 でアクセス
# コンテナ ヘルス監視用にDocker ソケット をマウント
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--name uptime-kuma \
louislam/uptime-kuma:2
# 要件: Node.js 20.4以上、Git
# クローン及びセットアップ
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup
# 直接起動
node server/server.js
# または PM2 をバックグラウンド動作に使用
npm install -g pm2
pm2 start server/server.js --name uptime-kuma
| コマンド | 説明 |
|---|
docker run -d -p 3001:3001 louislam/uptime-kuma:2 | Uptime Kuma コンテナを起動 |
docker compose up -d | Docker Compose で起動 |
docker compose down | すべてのサービスを停止 |
docker compose logs -f | コンテナ ログをフォロー |
docker restart uptime-kuma | コンテナを再起動 |
docker stop uptime-kuma | コンテナを停止 |
docker start uptime-kuma | 停止中のコンテナを起動 |
node server/server.js | Docker なしで起動 |
pm2 start server/server.js --name uptime-kuma | PM2 で起動 |
pm2 restart uptime-kuma | PM2 で再起動 |
pm2 stop uptime-kuma | PM2 で停止 |
pm2 logs uptime-kuma | PM2 ログを表示 |
# 最新イメージをプル
docker pull louislam/uptime-kuma:2
# 現在のコンテナを停止及び削除
docker stop uptime-kuma
docker rm uptime-kuma
# 新しいイメージで再作成(ボリュームのデータは保持)
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:2
# プル及び再作成
docker compose pull
docker compose up -d
cd uptime-kuma
git fetch --all
git checkout 2.1.3 --force
npm install --production
npm run download-dist
pm2 restart uptime-kuma
| タイプ | 説明 |
|---|
| HTTP(S) | Webサイト可用性及び応答時間を監視 |
| HTTP(S) キーワード | レスポンス本文内の特定テキストをチェック |
| HTTP(S) JSON クエリ | JSONレスポンス値を検証 |
| TCPポート | TCPポートが開いて応答しているかチェック |
| Ping | ホスト可用性用のICMP ping |
| DNS | DNS レコード解決を監視 |
| Docker コンテナ | コンテナ ヘルス ステータスを監視 |
| Steam ゲーム サーバー | ゲーム サーバー可用性をチェック |
| MQTT | MQTT ブローカー接続性を監視 |
| gRPC | gRPC サービス ヘルス チェック |
| Radius | RADIUS 認証サーバー チェック |
| GameDig | ゲーム サーバー監視(複数プロトコル) |
| Push | ハートビート エンドポイント経由のパッシブ監視 |
| Group | 監視の論理グループ化 |
| サービス | 説明 |
|---|
| Slack | チャネル ウェブフック及びボット通知 |
| Discord | ウェブフックベース チャネル通知 |
| Telegram | ボットAPI通知 |
| Microsoft Teams | インバウンド ウェブフック通知 |
| Mattermost | 自ホスト チャット統合 |
| Rocket.Chat | ウェブフック通知 |
| Google Chat | スペース ウェブフック通知 |
| Matrix | 分散チャット通知 |
| サービス | 説明 |
|---|
| Pushover | モバイル プッシュ通知 |
| Gotify | 自ホスト プッシュ サーバー |
| ntfy | HTTPベースのパブ/サブ通知 |
| Pushbullet | クロスデバイス プッシュ通知 |
| Signal | セキュア メッセージング通知 |
| LINE | LINE Notify 統合 |
| サービス | 説明 |
|---|
| PagerDuty | インシデント アラート及びオンコール |
| Opsgenie | アラート管理及びエスカレーション |
| Squadcast | インシデント管理 |
| Splunk On-Call | VictorOps アラート ルーティング |
| Better Stack | アップタイム及びインシデント管理 |
| サービス | 説明 |
|---|
| SMTP Email | カスタム Email 通知 |
| Webhook | カスタムHTTPエンドポイント呼び出し |
| Home Assistant | スマートホーム オートメーション トリガー |
| Apprise | ユニバーサル通知 ゲートウェイ |
| 変数 | 説明 | デフォルト |
|---|
UPTIME_KUMA_PORT | サーバー ポート | 3001 |
UPTIME_KUMA_HOST | バインド アドレス | :: |
DATA_DIR | データ ストレージ ディレクトリ | ./data |
TZ | タイムゾーン | UTC |
UMASK | ファイル パーミッション マスク | 0000 |
NODE_EXTRA_CA_CERTS | カスタムCA証明書パス | — |
SSL_CERT | SSL 証明書パス | — |
SSL_KEY | SSLプライベート キー パス | — |
| 機能 | 説明 |
|---|
| 複数ページ | 異なるサービス用に個別のステータス ページを作成 |
| カスタム ドメイン | ステータス ページをカスタム ドメイン名にマップ |
| カスタムCSS | カスタムCSSでステータス ページをスタイル |
| インシデント ポスト | ステータス ページに表示されるインシデント レポート作成 |
| メンテナンス | メンテナンス ウィンドウのスケジュール |
| 監視グループ | ステータス ページ上の監視をグループに整理 |
# Python APIクライアントをインストール
pip install uptime-kuma-api
| 操作 | 説明 |
|---|
| 監視追加 | プログラム的に監視を作成 |
| 監視編集 | 監視構成を更新 |
| 監視削除 | 監視を削除 |
| 一時停止/再開 | 監視ステートを切り替え |
| ステータス取得 | 現在の監視ステータスを取得 |
| 通知追加 | 通知プロバイダーを構成 |
| アップタイム取得 | アップタイム統計をクエリ |
# compose.yaml
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
restart: always
ports:
- "3001:3001"
volumes:
- ./data:/app/data
# オプション: Docker コンテナ監視
# - /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=UTC
| 機能 | 説明 |
|---|
| 2FA | ログイン用の二要素認証 |
| リバース プロキシ | Nginx、Caddy、Traefik の背後にデプロイ |
| SSL/TLS | 組み込みSSL またはリバース プロキシ 終了 |
| ログイン レート制限 | ブルートフォース攻撃保護 |
| APIキー | トークンベースのAPI アクセス |
server {
listen 443 ssl;
server_name status.example.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
| コマンド | 説明 |
|---|
docker cp uptime-kuma:/app/data ./backup | データ ディレクトリをバックアップ |
docker cp ./backup/. uptime-kuma:/app/data | バックアップからリストア |
docker volume inspect uptime-kuma | ボリューム マウント ポイントを検索 |
| 問題 | 解決策 |
|---|
| UI にアクセス不可 | ポート バインディング確認: docker port uptime-kuma |
| NFSボリューム エラー | ネットワーク ファイル システムではなくローカル ディレクトリを使用 |
| WebSocket エラー | リバース プロキシ をWebSocket アップグレード用に構成 |
| コンテナが起動しない | ログを確認: docker logs uptime-kuma |
| データ永続化が失われた | -v uptime-kuma:/app/data ボリュームが使用されているか確認 |
| Docker 監視に失敗 | docker.sock をマウント: -v /var/run/docker.sock:/var/run/docker.sock:ro |
| プラットフォーム | ステータス |
|---|
| Linux(x64、ARM) | サポート対象 |
| Windows 10以上(x64) | サポート対象 |
| macOS | サポート対象 |
| Docker Desktop | サポート対象 |
| Kubernetes | Dockerイメージ経由 |
| FreeBSD/OpenBSD | サポート非対象 |
| Replit/Heroku | サポート非対象 |
- データ永続化のためにDocker ボリューム(NFSへのバインド マウントではなく)を使用
- 本番環境使用のためにSSL終了を備えたリバース プロキシの背後にデプロイ
- 最初のログイン後すぐに管理者アカウント用に2FAを有効化
- 外部サービスの監視間隔を60秒以上に設定
- ファイアウォール背後のサービスにはPush 監視タイプを使用
- 冗長性のため最低2つの通知チャネルを構成
- 内部及び外部の利用者向けに個別のステータス ページを作成
- データ ディレクトリは定期的にバックアップ — すべての構成を含む
TZ 環境変数を使用してタイムゾーンを設定してオペレーション センターと一致させる