クイックスタート
15 分でゼロから動く状態まで:サーバーをデプロイし、管理画面を開き、最初の VPS を接続します。
コーディングは不要です。すべてブラウザと SSH ターミナルで完結します。
はじめる前に
用意するもの
| 項目 | 補足 |
|---|---|
| Cloudflare アカウント | 無料登録で可。R2 の有効化が必要(下の注意を参照) |
| GitHub アカウント | ワンクリックデプロイがコードをあなたのリポジトリへコピーし、以後の更新も担います |
| VPS 1 台 | Linux(Debian/Ubuntu/CentOS など)。root または sudo が必要 |
| 15 分 | デプロイとビルドに約 5〜10 分、ノード接続に 1〜2 分 |
得られるもの
- 自分専用の公開ステータスページと管理画面;
- 1 台〜多数の VPS のリアルタイム指標・オンライン状態・TCP Ping・プロキシ可用性;
- 自動更新:ノードは自己更新し、サーバーは公式安定版を定期的に追従します。
よく出てくる 8 つの用語(暗記は不要)
| 用語 | ひとこと説明 |
|---|---|
| Worker | Cloudflare 上のサーバープログラム。API・プローブのスケジュール・ページを担当 |
| D1 | Cloudflare のデータベース。設定・現在状態・SLA 集計を保存 |
| R2 | Cloudflare のオブジェクトストレージ。高頻度の履歴とアーカイブ(先に有効化) |
| Durable Objects(DO) | リアルタイムバッファとステータス配信を担う Cloudflare のステートフル部品 |
| Agent | VPS に導入する探針プログラム(Rust 単一バイナリ)。指標を送信 |
| Manager | root 権限の処理と自動更新を担う Agent の相棒プロセス |
| ターゲット | 監視対象:VPS、Web サイト、プロキシのエンドポイント |
| Latency ノード | 別ネットワーク拠点の測定ノード。地域ごとの遅延測定に使用 |
1. サーバーをデプロイ(ワンクリック)
公開リポジトリの README を開き、Deploy to Cloudflare をクリックして GitHub と Cloudflare を認可し、次を入力します:
| 変数 | 内容 |
|---|---|
ADMIN_USERNAME | 管理画面のアカウント名(任意) |
ADMIN_PASSWORD | 9 文字以上。大文字・小文字・数字・記号を含む |
ADMIN_PATH | 管理画面の入口パス(例:admin) |
TOTP_ENCRYPTION_KEY | 32 文字以上の独立したランダム値。以後ずっと変更しない |
つまずきやすいポイント:新しいアカウントでは、先に Cloudflare コンソールで R2 を有効化してください(無料枠:10 GB ストレージ、月 100 万クラス A と 1000 万クラス B 操作。無料枠でも R2 の契約と支払い方法の登録が必要)。有効化していないと、デプロイが「uses R2, which is available with an R2 subscription」で停止します。D1 と R2 バケットは自動で作成・接続されます。
ビルド完了後:
- Worker の URL を開き、
Worker の URL + 管理パスでログイン(Agent トークンは不要)。 - 各 VPS のトークンは、管理画面が最初にインストールコマンドを生成したときに作成されます。
*.workers.devが Not Found になる場合:これは意図的な保護です(workers.dev は独自ドメインのレート制限と保護を迂回する並行入口のため)。独自ドメインがない場合は、Worker の Settings → Variables and Secrets にテキスト変数ALLOW_WORKERS_DEV=trueを追加して再デプロイすると workers.dev でアクセスできます。ドメインを接続したら削除して入口を絞ってください。公開ページは/、管理画面の入口は設定したADMIN_PATHです。
この手順の完了時に確認できること:管理画面にログインでき、公開ページが表示され、/api/health が ok: true を返す(コマンドは次の節)。
方法 B:コマンドライン(任意)
独自ドメイン、CI、ローカル確認向け:
git clone https://github.com/3257085208/NIE-SLA.git nie-sla && cd nie-sla
npm install
npx wrangler d1 create nie-sla-db # 返った database_id を wrangler.jsonc に記入
npx wrangler r2 bucket create nie-sla-archive
npx wrangler secret put ADMIN_USERNAME # 続けて ADMIN_PASSWORD / ADMIN_PATH / TOTP_ENCRYPTION_KEY / INTERNAL_CRON_SECRET
npm run build # update-manifest.json で固定した資産を dist-one-click に取得
npm run deploy手動/CLI デプロイでは
INTERNAL_CRON_SECRET(32 文字以上のランダム値)を自分で設定してください。未設定だと内部の Durable Object 呼び出しが 401 で失敗し、Agent のテレメトリも即座に失敗します。ワンクリックデプロイは Cloudflare のビルド時にこのシークレットを自動生成・注入します。
独自ドメイン:Cloudflare Dashboard → Workers & Pages → 対象 Worker → Settings → Domains & Routes → Add custom domain。その後、管理画面の「Settings → Agent」で Agent 接続ドメインを変更します。
2. デプロイ後の確認(30 秒)
curl -fsSL https://あなたのドメイン/api/health # 期待:{"ok":true,...}
curl -fsSL https://あなたのドメイン/bin/VERSION # 期待:現行バージョン(例 v1.1.93)
curl -fsSL https://あなたのドメイン/bin/SHA256SUMS # 期待:アーキテクチャ別チェックサムさらに 3 点を確認:
- 管理画面が正しいパスでログインできる;
- 公開ページが表示される;
- Cloudflare コンソールで Cron が毎分実行されている(Workers → 対象 Worker → Logs / Cron Events)。
3. 最初の VPS を接続
- 管理画面の「Probes」で TCP/VPS ターゲットを名前付きで追加して保存。
- そのターゲットの Deploy Agent をクリックし、生成されたコマンドをコピー。
- VPS 上で root として実行。
コマンドにはこのノード専用のトークンが含まれます。1 台のコマンドを別のマシンで使い回さないでください。
インストーラーはアーキテクチャを判別し、manifest とバイナリを検証、バージョンを確認して systemd または OpenRC サービスを導入します。
この手順の完了時に確認できること:数分以内にターゲットが Agent オンラインとバージョンを表示。
テレメトリサービスは低権限ユーザーで動作します。1.0.44 以降 ICMP は使わないため、systemd ユニットもバイナリも CAP_NET_RAW は不要です。旧 icmp:// 行は削除用に一覧へ残りますが、Agent には配信されません。
VPS 上での切り分け:
sudo cftz status # サービスの状態
sudo cftz log 100 # 直近 100 行のログ4. プローブとアラートの設定
- 公開アドレス付きの TCP ターゲットを追加すると、Cloudflare が定期プローブします。IPv6 のみのノードは IPv6 と Cloudflare プローブ(または各言語の該当トピック)を参照。
- Ping 欄で
host:portまたはtcp://host:portは TCP、http:///https://は Agent 側の HTTP プローブ。既定の間隔は 20 秒(5-300秒)。保存済みの 1 秒値は 20 秒に戻ります。 - NodeQuality では HardwareQuality(
y/f/v/n)、IPQuality(y/n)、NetQuality(y/l/n)、回程ルート(y/n)を選択可能。結果は公式 NodeQuality レポートに準じます。 - 「Settings → Alerts」で Telegram かメールを設定し、まずテスト通知を送って受信を確認してからルールを有効化。
- 別拠点から遅延を測るには External Latency ノードを追加し、生成されたインストールコマンドを実行。
5. オンライン更新
ワンクリックで作られたリポジトリは 6 時間ごとに公式安定版を確認します。更新は wrangler.jsonc を保持し、セキュリティスキャン・アプリケーションテスト・Wrangler dry-run を通してからコミットします。
すぐ更新する:デプロイリポジトリ → Actions → NIE-SLA Online Update → Run workflow(入力不要)。
管理画面の「Settings → System update」に現行版・最新版・変更履歴が表示されます。
公式 manifest が 429・5xx・タイムアウトの場合、ワークフローは 6 時間キャッシュか同梱の信頼済み manifest にフォールバックします。「Official source limited, using the current deployment/cached result」は正常な縮退であり、Worker や Agent の停止ではありません。連続リロードは不要です。
ノード(Agent)には独立した経路があります:サーバー版が遅れていても、ノードは公式リリース経路に直接追従して自動更新します。
6. 公開 API の確認
curl -fsSL https://あなたのAPI/api/v1
curl -fsSL 'https://あなたのAPI/api/v1/status?days=30&lite=1'1 つ目は api_version: "v1"、stability: "stable" とエンドポイント一覧を含みます。2 つ目は公開ターゲットを返します。トークンは不要で、ブラウザのクロスオリジン呼び出しには DEVELOPER_API_ORIGINS の設定が必要です。
よくあるつまずき
| 症状 | 原因と対処 |
|---|---|
| 「available with an R2 subscription」で停止 | R2 未開通:Cloudflare コンソール → R2 → 有効化(支払い方法の登録が必要。無料枠は適用されます) |
*.workers.dev が Not Found | 意図的な保護。第 1 節の ALLOW_WORKERS_DEV で一時回避 |
| Agent がオンラインにならない | VPS で sudo cftz status / sudo cftz log 100。コマンドがこのマシン用か確認 |
| Cron の実行記録がない | Worker のデプロイ成否を確認し、再デプロイしてログを見る |
| 更新が動かない | リポジトリの Actions 無効、またはワークフロー欠落:FAQ の「The panel shows a new version but nothing ever updates」 |
| NodeQuality レポートの画像が出ない | NQ 画像/画像ホスト/同一オリジンプロキシの項目。FAQ の該当箇所 |
| パスワードを忘れた | デプロイ時の ADMIN_PASSWORD を使用。変更方法は FAQ |
公開前チェックリスト
- 管理者アカウントでログインでき、パスワードを他サービスと使い回していない。
- TOTP を有効にした場合、復旧手段を安全に保管している。
- 公開ページと管理画面の入口がともに動作する。
- VPS が Agent オンラインとバージョンを表示する。
- 公開ページに非公開の IP・ポート・URL 認証情報が露出していない。
- Telegram かメールのテスト通知が 1 回以上届いている。
- Cloudflare の Cron・D1・R2・Durable Objects に継続的なエラーがない。