FrontierStack ユーザマニュアル マニュアル先頭
デスクトップ版マニュアル モバイル版マニュアル English frontierstack.app ↗

ユーザマニュアル

FrontierStack

デスクトップ版

Apache・データベース・メール・セキュリティなど 1,000 以上のサービスを、Mac とフリート全体でインストール・実行・監視。AI 管理者が舵を取ります。

バージョン 1.0.0 · 初版 · 2026年8月
発行:株式会社エンフォー

目次

はじめに
  1. 1はじめに
  2. 2インストールと初回起動
  3. 3インターフェイス
サービスの運用
  1. 4Web スタック
  2. 5データベースとデータ
  3. 6サービスカタログ
  4. 7サイト・ドメイン・Web
フリート・ネットワーク・セキュリティ
  1. 8サーバ連携:ロケーションとフリート
  2. 9ネットワークと境界
  3. 10セキュリティと堅牢化
  4. 11監視とアラート
自動化と AI
  1. 12スクリプト・cron・自動化
  2. 13AI 管理者
  3. 14MCP と自前 AI からの操作
  4. 15AI スタック
ビジネスとリファレンス
  1. 16ビジネスと業種別ソリューション
  2. 17設定・ライセンス・アップデート
  3. 18キーボード・URL スキーム・トラブルシューティング

第 I

I

はじめに

FrontierStack とは何か、その考え方、そして Mac で動かすまで。

1

第 1

はじめに

Apple が手放したサーバコントロールパネルを、1 台の Mac からフリート全体まで再構築。サーバを実際に把握し修正できる AI が舵を取ります。

Apple が macOS Server.app を終了したとき、Mac ユーザは Web サイトやサービスを手軽に運用する手段を失いました。FrontierStack はそれを取り戻し、さらにその先へ進みます。Apache・PHP・MySQL・PostgreSQL・Nginx をはじめ 1,000 を超えるサービスを、目の前の Mac でも、連携したすべてのサーバでも、インストール・制御・保護・監視します。そして、ツールを使う AI 管理者が舵を取ります。

本マニュアルはデスクトップアプリの完全リファレンスです。iPhone/iPad アプリについては別冊のモバイル版マニュアルを参照してください。まず本章を通してお読みください。その後は必要なパートへお進みください。

1.1FrontierStack とは

FrontierStack はネイティブの macOS アプリです — Web パネルでも、世話の焼けるコンテナでもありません。実際のマシン上の実サービスを、それぞれが標準で備えるツール(Homebrew フォーミュラ、launchd・systemd ユニット、Apache・Nginx の設定、証明書、ファイアウォール、SSH)を使って管理します。次の 3 つを同時に実現します。

  • コントロールパネル。検証・ライブ状態・ワンクリック修正付きで、サービスをインストール・起動・停止・設定 — 現代化した macOS Server の後継です。
  • 監視・通知システム。継続的なヘルススイープがサービス・サイト・証明書・ディスク・フリート全体を見守り、トラブルの最初の兆候を、選んだチャネルへのメッセージに変えます。
  • AI 管理者。あなたの構成を正確かつライブに把握する、ガードレール付きのツール使用アシスタント。何が壊れているか診断し、あなたが承認する修正案を提示し、ローカルでもフリート全体でも実行し、アプリをあなたの構成ぴったりに作り替えます。
スクリーンショット追加予定
図 1.1. FrontierStack のメインウィンドウ:左にサービスのサイドバー、中央にアクティブなペイン、ひと目で分かるライブ状態。撮影手順: いくつかのサービスを起動した状態で Local Health ペインを開き、サイドバーを展開して撮影

1.2AI ファーストの設計

多くのアプリはチャットボックスを横に付け足すだけです。FrontierStack は逆です。AI は、あなたが使うのと同じ操作を行う一級のオペレータです。AI は監査済みの固定されたツール(ログを読む・診断を実行する・サービスを再起動する・証明書を発行する・ファイルを書く)を通じてのみ動作するため、その行為はすべてあなたが手作業でできることであり、システムを変更する操作はすべて、実行前にあなたの承認のため提示されます。

本番サーバを任せられるだけの安全性を支えるのは、3 つの原則です。

  • 既定は読み取り専用。初期状態ではアシスタントは見るだけで触れません。変更とスクリプトは明示的なトグルで解除し、変更を伴う操作はすべて実行前に承認カードを表示します。
  • 秘密情報はモデルに届きません。パスワードや API トークンはローカルの .env ボールトに置きます。スクリプトは名前で参照し、アプリが実行時に(ローカルまたは SSH 経由で)実際の値を注入します。クラウドモデルが見るのは名前だけで、値は決して見ません。ログやファイルは送信前に秘密情報を伏せます。
  • AI は自前で。クラウドモデルでもローカルモデル(Ollama・LM Studio)でも接続できます。MCP 経由で自分のサブスクツール(Claude Code・Cursor)から動かせば、従量課金のトークン請求は一切ありません。
セキュリティAI 管理者、特権ヘルパー、すべてのリモート操作は、あなたが有効化するまでオフです。本マニュアルの内容はどれも勝手には起こりません。各機能はあなたが意図的に有効化するものです。完全な信頼モデルは第 13 章を参照してください。

1.3対象ユーザ

FrontierStack は、Mac でサーバを運用している(あるいは運用したい)すべての方に向いています。

  • MAMP や XAMPP ではなく、クリーンなローカルスタックを使いたい開発者。
  • POS・CRM・EC・メール・ヘルプデスクを Mac mini でセルフホストする小規模事業者。
  • 旧来の Xserve や Mac mini を macOS Server のままリモート管理で活かしたい管理者。
  • 従量課金の SaaS からセルフホストへ移行したい方、あるいは Mac・Linux・BSD・Raspberry Pi のフリートを 1 つの画面から運用したい方。

1.4主要な概念と用語

本マニュアル全体で繰り返し登場する用語を、ここで一度だけ紹介します。

用語意味
サービスFrontierStack がインストール・実行・監視できるもの — Apache、データベース、メールサーバ、コンテナ、ルータ連携など。一覧がカタログです(第 6 章)。
ペインサイドバーから開く、1 つのサービスやツールの画面。
ヘルパー毎回パスワードを求めずに管理操作を行う小さな特権ツール(SMAppService デーモン)。任意。初回起動時にインストールします。
ロケーションMac が今ネットワーク上のどこにいるか(自宅・オフィス・外出先)。ロケーションにより、アラートや到達性がネットワークを意識したものになります(第 8 章)。
連携サーバSSH で接続した別マシン。FrontierStack が診断やスクリプトを実行できます。それらの総体がフリートです。
AI 管理者組み込みのツール使用アシスタント。AI ハーネスとも呼びます。第 13 章で詳説します。
MCPModel Context Protocol — 外部の AI ツール(Claude Code・Cursor)が、同じガード付きツールを通じて FrontierStack を操作できる開かれたインターフェイス(第 14 章)。
秘密情報/ボールトローカルの .env ストアにある名前付きの資格情報。スクリプトは $NAME で参照し、値は Mac に留まります。

1.5本マニュアルの構成

マニュアルは作業の流れに沿っています。

  • パート I — はじめに:インストール、初回起動、インターフェイスの概観。
  • パート II — サービスの運用:Web スタック、データベース、全カタログ、サイトとドメイン。
  • パート III — フリート・ネットワーク・セキュリティ:サーバ連携、ネットワークと境界、堅牢化、監視とアラート。
  • パート IV — 自動化と AI:スクリプトとスケジュール、AI 管理者の全容、MCP、AI スタック。
  • パート V — ビジネスとリファレンス:業種別ソリューション、設定、ショートカット、ライセンス、トラブルシューティング。

まったく初めての方は、第 2 章「インストールと初回起動」へお進みください。AI だけを理解したい方は第 13 章へ進んでも構いませんが、そこでの安全モデルは上記の概念を前提とします。

2

第 2

インストールと初回起動

ダウンロードから動くスタックまで。macOS が求める許可、管理作業を楽にする任意のヘルパー、そして既存の MAMP・XAMPP・Server.app 構成の移行までを案内します。

FrontierStack は他の Mac アプリと同じようにインストールできます — /Applications にドラッグして開くだけです。その先はあなた次第です。macOS が標準で出す操作ごとのパスワードプロンプトのまま動かすことも、一度だけ少数の許可を与えて以後は一切尋ねられないようにすることもできます。本章では初回起動の全体をたどり、続いて既存のローカルスタックを移行してサイトとデータベースを引き継ぐ方法を示します。

2.1システム要件

FrontierStack は署名済みのネイティブ macOS アプリです。必要なものは次のとおりです。

要件詳細
macOSmacOS 13(Ventura)以降。任意のヘルパーは SMAppService を使い、これは macOS 13 以降の API です。
アーキテクチャApple シリコンまたは Intel。アプリは Apple シリコンでは /opt/homebrew(Intel では /usr/local)の Homebrew スタックを管理します。
Homebrew推奨ですが起動には必須ではありません。大半のサービスは Homebrew フォーミュラとしてインストールされ、FrontierStack が代わりに Homebrew をインストールできます(後述)。
管理者アカウントMac の管理者アカウント。サービスのインストールやシステム設定の編集には管理者権限が必要です — 任意のヘルパー経由か、macOS が操作ごとに出すパスワードプロンプト経由のいずれかです。

どれも特別なものではありません。現行の macOS を動かせる程度に新しい Mac なら、FrontierStack も動きます。

2.2ダウンロードと初回起動

アプリをダウンロードし、FrontierStack.app/Applications フォルダに移動してダブルクリックします。アプリは Enfour, Inc.(Apple Developer チーム 6Y87KNMALP)によって署名・公証されているため、macOS は「開発元未確認」の警告なしに開きます。

  1. FrontierStack を開きます。メインウィンドウが表示され、左にサービスのサイドバー、中央にヘルス概要が現れます — 第 1 章で見たレイアウトです。
  2. Homebrew がまだ無い場合、それを必要とするペインはその旨を表示し、インストールを提案します。今でも後でも構いません。
  3. FrontierStack は単一インスタンスを強制します。既に 1 つ開いている状態でもう一度起動しても、2 つ目が立ち上がるのではなく、既存のウィンドウが前面に出てくるだけです。これにより、2 つのウィンドウが同じサービスや設定ファイルを奪い合うのを防ぎます。

初回起動はシステムに何の変更も加えません。アプリはインストール済みのものを読み取って状態を表示するだけで、あなたが指示するまで何も起動・停止・再設定はしません。

スクリーンショット追加予定
図 2.1. サービスを 1 つもインストールしていない初回起動時のメインウィンドウ:左にサイドバー、中央にヘルス概要、サイドバー下部にヘルパーのインストール案内。撮影手順: サービスを何も起動していないクリーンな Mac でアプリを開き、サイドバーを展開し、サイドバー下端の「ヘルパーをインストール」の表示が見える状態で撮影

2.3特権ヘルパー — と macOS が求める許可

サービスの起動・停止やシステム設定(Apache・Nginx・MySQL・DNS・ファイアウォール)の編集は特権操作です。初期状態では、FrontierStack はそれぞれを標準の macOS 認可プロンプト経由で実行します。つまり毎回パスワードを入力します。安全ではありますが、すぐに煩わしくなります。

任意のヘルパーがこの手間を取り除きます。これは小さな特権ツール — SMAppService デーモン — で、アプリが macOS に登録することで、毎回パスワードを再入力せずに管理操作を実行できます。インストールは意図的に行います。サイドバー下端の「インストール」の案内を使うか、ある操作が初めてそれを必要としたときのプロンプトを承認します。

  1. サイドバー下部のヘルパー行で「インストール」をクリックします。
  2. macOS が「ログイン項目と機能拡張」の承認を表示します(または「システム設定 ▸ 一般 ▸ ログイン項目」でバックグラウンド項目の有効化を求めます)。承認してください — これはデーモンの実行を許可するかどうかを macOS が尋ねているのであり、アプリが何かを上書きしているのではありません。
  3. サイドバーの行が、ヘルパーが登録され実行中であることを示す表示に切り替わります。以後、サービスの起動/停止や設定編集は操作ごとのパスワードプロンプトなしで進みます。

ヘルパーはいつでも削除できます。その場合 FrontierStack は操作ごとの管理者プロンプトに戻ります。どちらのモードでも動作します — ヘルパーは純粋に利便性のためのものです。

セキュリティヘルパーはアプリと同じ Enfour, Inc. チーム(6Y87KNMALP)によって署名されており、それこそが SMAppService デーモンとしての登録を可能にします。ヘルパーはアプリが駆動する特権操作のみを実行します。任意であり、意図的にインストールし、削除できます。AI 管理者やすべてのリモート操作と同じく、あなたが有効化するまでオフです。完全な信頼モデルは第 10 章を参照してください。

2.4Homebrew のインストール

カタログの大半 — ウェブサーバ、データベース、キャッシュ、メール、多数の CLI ツール — は Homebrew フォーミュラとしてインストールされます。Homebrew は FrontierStack がそれらのサービスを取得・更新するために使うパッケージマネージャなので、Mac にまだ無ければ早めに用意しておくとよいでしょう。

サイドバーから Homebrew ペインを開きます。Homebrew が無い場合、ペインは「Homebrew isn't installed. It's the package manager this app uses to install services.」と表示し、「Get Homebrew…」ボタンを出します。インストールはアプリのアプリ内コンソールで実行されます。公式の Homebrew インストーラを走らせ、インストーラが管理者権限を必要とする時点であなた自身がコンソールにパスワードを入力します。FrontierStack はそれを取得も保存もしません — プロンプトは Homebrew 自身のものです。

Homebrew が用意できると、ペインは本格的なパッケージマネージャになります。インストール済みフォーミュラ/キャスクとそのバージョンの検索可能な表、「Install formula or cask」フィールド、未更新件数を表示する「Update All」ボタン、行ごとの「Update」/「Uninstall」操作が揃います。AI 管理者は install_homebrewinstall_package ツールで同じ流れを駆動でき、これもパスワードを入力するアプリ内コンソール経由です。

メモそもそもなぜ専用のパッケージマネージャなのか。FrontierStack は独自のコピーを同梱するのではなく、macOS と Homebrew が標準で備えるツールを使ってサービスを管理します。つまり、あなたが動かすバージョンは主流で、更新可能で、コマンドラインで得られるものと同一です — 独自フォークに縛られることはありません。

2.5Command-Line PATH ペイン

FrontierStack はインストール済みツールを、シェルと同じやり方で解決して検出します。ときおり、pippipx・virtualenv・非標準のプレフィックスでインストールしたツールがアプリの見る PATH に無く、ツールが未インストールと報告されることがあります。Command-Line PATH ペインがこれを解決します。

  • シェルプロファイル(例:~/.zprofile)を選びます。追加したディレクトリは、そのファイル内の明示的にマークされた管理ブロックに書き込まれ、PATH の先頭に追加されます — 変更を反映するには新しいターミナルを開いてください。
  • 「Directories to add」では、入力するか「Choose…」でパスを追加できます。最上位のエントリが最初に検索されます。「Current PATH (effective)」はログインシェルの PATH を表示し、アプリが管理するエントリにタグを付けます。
  • PATH Doctor はツールが検出されない理由を診断します。コマンド(例:mlx_lm.servergcloud)を入力すると、アプリが見つけるか、シェルだけが見つけるか、そもそもインストールされていないかを報告します — アプリに欠けているディレクトリにはワンクリックの「Add to managed PATH」が付きます。

2.6インストールウィザード

ゼロから始めるなら、サイドバーのインストールウィザードが動くスタックへの最短ルートです。目的のユースケース — WordPress/PHP、フルスタック JS、Python/Django、Rails、静的サイト、データベース、リバースプロキシ — を選ぶと、その目的に推奨されるコンポーネント(ウェブサーバ、データベース、キャッシュ)が自動選択されます。好みに合わせて選択を調整すると、Homebrew で一式インストールします。

同じペインでは、ネイティブの Apache + MySQL + PHP スタックの状態をひと目で確認でき、Mac に既にあるオールインワンバンドル — XAMPP、MAMP、AMPPS、Local — を検出します。見つかった場合は、並行スタックをインストールするのではなく「セットアップを移行」へ誘導するので、何もかも二重に動かす羽目になりません。

2.7既存スタックの移行

すでに MAMP・XAMPP・Apple の Server.app でローカルにサイトを運用しているなら、作り直す必要はありません。「セットアップを移行」ペインがそれらのスタックを検出し、その構成要素を FrontierStack のネイティブ Homebrew スタックに取り込みます。ウェブファイル、MySQL データベース、PHP 設定、そして各サイトを定義する Apache vhost です。

  1. 「セットアップを移行」を開きます。インストール済みのソース — MAMP/MAMP Pro、XAMPP、Apple Server — をスキャンし、見つかったもの(サイト、データベース、PHP の検出有無)を報告します。(AI 管理者の detect_migration_sources ツールが同じ読み取り専用スキャンを実行します。)
  2. 「Sites to import」一覧を確認します。各候補はサーバ名と待ち受けポートを表示し、きれいに移行できないものは理由とともに「Skipped」に並びます。
  3. 設定については、「Import All Settings」がソースの php.inimy.cnfnginx.conf を対応する Homebrew 設定に上書きコピーします。各ファイルの .pre-mamp.bak バックアップが残るので、比較や復元ができます。
  4. 「Import Selected」を選んで移行を実行します。必要な Homebrew サービスのインストール、ウェブファイルのコピー、MySQL データベースの移行、vhost の取り込みが進む様子が、ペインにライブ進捗として表示されます。
  5. 実行後は確認してください。ソースの設定は旧ツールのパスやポート(例:MAMP の extension_dirdatadirsocket、ポート 8889)を参照していることが多いため、運用に頼る前に取り込んだ設定を点検してください。

AI 管理者は run_migration でこれを一気通貫に駆動できますが、ソースを検出してあなたに確認した後でのみ — しかも変更が有効な場合のみです。

注意移行は大きく、一部は不可逆な操作です。Homebrew サービスをインストールし、対応する Homebrew 設定ファイルを上書きし、データベースと vhost を取り込みます。大切なものはまずバックアップし、「Import Selected」を選ぶ前に必ず検出スキャンを実行して計画を確認してください。.pre-mamp.bak バックアップは設定ファイルを対象とし、データベースは対象外です。

2.8データの保存場所

FrontierStack は自身の状態を予測可能な標準的な場所に保持するため、何に触れているかが常に分かり、バックアップもできます。

対象場所
アプリ設定・データ~/Library/Application Support/FrontierStack/
秘密情報・トークンmacOS キーチェーン、サービス jp.co.enfour.frontierstack 配下
アプリ管理の Apache 設定/opt/homebrew/etc/httpd/frontierstack/ — アプリが所有する専用ディレクトリで、手で編集した Apache 設定とは分離されています
アプリログ~/Library/Logs/FrontierStack/

アプリの Apache 設定を専用の frontierstack/ ディレクトリに置くことで、FrontierStack は手作業で保守している設定を壊さずに安全に vhost を管理できます。バンドル識別子は jp.co.enfour.frontierstack です(ヘルパーと DDNS コンポーネントは .helper および .ddns のサフィックスを使います)。

アプリをインストールし、ヘルパーを決め、Homebrew を整え、古いスタックを移行したら、いよいよ実際に使う準備が整いました。第 3 章「インターフェイス」でウィンドウを詳しく案内します。サイドバー、ペイン、検索、メニューバー、そして毎日使うコントロールです。

3

第 3

インターフェイス

1 つのウィンドウに、1,000 のサービス。本章はその案内です。サイドバー、ペイン、フローティングパレット、検索、ヘルプ、そしてアプリを邪魔にしないための細やかな工夫を見ていきます。

FrontierStack は膨大な種類のサービスを管理しますが、それらを 1 つの見慣れた macOS ウィンドウで提示します。左にサービスのサイドバー、中央に選択中のサービスの画面、そしてツールバーには常時使えるツールが並びます。このレイアウトを一度覚えれば、Apache から Cloudflare ゾーンまで、本書のどのペインも予想どおりの場所に収まります。本章ではインターフェイスを端から端まで案内します。以降の章が単に「Sites ペインを開く」と言うだけで、やり方が分かるようになります。

3.1メインウィンドウ

ウィンドウは標準的な macOS の NavigationSplitView で、3 つの領域から成ります。サービスサイドバー。表示すると選んだすべてのサービスとツールを、カテゴリごとにまとめた、スクロール・折りたたみ可能なリストです。中央アクティブなペイン。サイドバーで選んだものの画面で、独自のヘッダー・タブ・コントロールを持ちます。上部に渡るのがツールバー。そのボタンはどのペインにいても使えます。

ツールバーには右から左へ、検索(虫めがね、⌘F でも)、AI アシスタント(ワンド。フローティングのコマンドパレットを開きます)、現在の作業ディレクトリにターミナルを開く Shell ボタン、macOS がライトでもダークを強制するダークモード切り替え、そして選択中のペインがフロート可能なときの切り離しボタンが並びます。Setup に未保存の変更があると、ここにオレンジの未保存メニューも現れます。

サイドバーの幅は自由に設定できます。仕切りをドラッグすれば、FrontierStack は起動をまたいで記憶します。最後に選んでいたペインも再オープン時に復元され、続きから始められます。

スクリーンショット追加予定
図 3.1. FrontierStack のメインウィンドウ:左にカテゴリ分けされたサービスサイドバー、中央にアクティブなペイン、上部にツールバー。撮影手順: サイドバーに内容のあるペイン(いくつかのサービスとピン留めしたサーバが見える状態)で開き、サイドバーを快適な幅に広げて撮影

サイドバーは 2 段構成です。上部に Overview — アプリ自身の組み込みツール(Local Health、Status Page、Alerts、Domains、Logs、Certificates、Notes、Scripts、Setups、Settings ほか)。その下に、サービスカテゴリごとのセクション — Web ServersDatabasesCachingMailNetworkingSecurity ToolsContainersAI など多数 — それぞれカタログ(第 6 章)から表示を選んだサービスが並びます。各セクションヘッダーのシェブロンをクリックすれば折りたためます。畳んだグループはアプリが記憶します。

各サービス行は、起動中はステータスドットを表示します。サービスを右クリックすると 2 つのクイック操作が出ます。Pin to Top of Section はよく触るサービスをカテゴリの先頭に固定し、Hide はサイドバーから外します。Hide で何かがアンインストールされることはありません — サービスは動き続け、検索から到達できます。リストを散らかさなくなるだけです。

カテゴリの下には、アプリの他の場所でピン留めしたものに応じてセクションが増えます。連携サーバ(どのサービスが動いているかを示す小さなカテゴリアイコン付き)、監視中の Wi-Fi ネットワーク、Cloudflare ゾーン、Kubernetes クラスタ。サイドバー上部のフィルタ欄に入力すれば、すべてのセクションを一度に絞り込めます。

ヒントサイドバーは固定メニューではなく、あなたのメニューです。カタログには 1,000 のサービスがありますが、肝心なのは運用するひと握りだけを表示すること。どんどん Hide しましょう。検索や Presets メニューからいつでも戻せます。

3.3Presets と Setups

サイドバーの表示を決めるのは 2 つの機能です。Presets メニュー(メニューバー)は、ユースケースを丸ごと一気に読み込む近道です。Base — show services for… セクションはサイドバーをシナリオ向けの厳選セット(Web スタック、メールサーバ、ショップ)に切り替え、Add to current view… は今ある表示にグループを追加します。Show All はすべてを表示する逃げ道で、見つからないときに使います。

Setups はさらに踏み込みます。Setup は作業ビュー全体の名前付きスナップショットです — どのサービスを隠し、どれをピン留めし、さらに開いているフローティングパレットとその位置まで含みます。Presets ▸ Save Current as Setup…(または Setups ペイン)で保存し、Presets メニュー上部で切り替えます。アクティブなものにはチェックが付きます。パレットのレイアウトはウィンドウを動かすたびにアクティブな Setup へ自動保存されるので、Setup は常に実際の働き方を反映します。表示サービスを変えると Setup は未保存(dirty)になり、ツールバーにオレンジの未保存バッジと UpdateSave as NewRevert が出ます。

Setup はロケーション(第 8 章)に紐づけることもできます。「Office」の Setup をオフィスのネットワークに紐づければ、到着時に自動で切り替わります — 今いる場所に合った、正しいサービスと正しいパレットへ。

メモPresets・Setups・Hide は純粋にインターフェイスの話です。サービスを起動・停止・変更することは決してなく、何を見るかを決めるだけです。ここでの操作で稼働中のサーバが壊れることはありません。

3.4フローティングパレットとミニパレット

他の作業をしながら 1 つの画面を見えるようにしておきたいことがあります。モニタ系のペインは切り離しフローティングパレットにできます。macOS の NSPanel を用いた、常に最前面に出る小さなユーティリティウィンドウで、メインウィンドウや他のアプリの上に留まります。ツールバーの切り離しボタン(または最前面のパレットを閉じる ⌘⌥⇧W)を使います。Local Health、Containers、Cloud Servers、Wi-Fi Analyzer などがフロートできます。

もっと省スペースにしたいならミニパレットがあります — ペイン全体ではなく、ひと目で分かるコンパクトな要約です。ミニは Local HealthCloudflare ZonesWi-FiPrintersRouter & NetworkContainersScriptsMessage Delivery、AWS にあります。各ミニ行には、詳細が必要なときに対応するペインをメインウィンドウで開くボタンがあります。開いているパレットは Setup の一部なので、保存したビューはフローティングウィンドウを配置どおりに復元します。

3.5コマンド/AI パレット

ツールバーのワンドボタンは AI アシスタントパレットを開きます — ドラッグ可能で常に最前面の NSPanel で、何でも尋ねられる入力欄が 1 つあります(「サイトが落ちている理由は?」「MySQL をチューニングして」「使っているものだけ表示して」)。第 13 章で扱う AI 管理者そのものを、作業の傍らに置けるフローティングウィンドウとして出したものです。他のフローティングパレット同様メインウィンドウの上に留まりますが、他と違って応答し、修正を提案し — あなたの承認のもとで — 実行します。独自の会話履歴と、変更を伴う操作の承認カードを備え、あなたが許可するまで何も実行しません。

FrontierStack は macOS のメニューバーに小さな項目を置けます(Show in Menu Bar で切り替え)。ウィンドウ全体を前面に出さずに操作する一番の近道です。ここから、起動グループの StartStop、コアサーバ(Apache、Nginx、PHP-FPM、MySQL、Postgres)の Restart や稼働中すべての再起動、ブラウザでの localhost オープン、ステータス更新、Launch at Login の設定、アプリの起動・終了ができます。

検索(虫めがね、⌘F)は何にでも到達する最速の手段です。「search services, tools & actions…」と入力し始めると、ペイン・ツール・サービス・操作が入力に応じて一致します — サイドバーから隠したサービスも含めて。結果を選べばそこへ直接移動します。Semantic モードは正確な名前ではなく意味で検索でき(「IP をブロック」「ディスクを空ける」)、FrontierStack での呼び名を知らなくても機能を見つけられます。

ヒントサイドバーに見当たらないペインを開くよう指示されても探し回らないでください — ⌘F を押して名前を打つだけです。検索は隠したペインにも届くので、サイドバーを整理しても損はありません。

3.8ヘルプウィンドウ

⌘? で専用の FrontierStack Help ウィンドウを開きます。アプリの構成を映した、れっきとしたアプリ内ドキュメントの本です。ヘルプは読むだけではありません。各ページには Open in app リンクが付いています。クリックすると FrontierStack がメインウィンドウをその正確なペインやサービスへ移動させます — ヘルプウィンドウは横に開いたまま残るので、手順を読みながら一歩ずつ進められます。多くのペインはヘッダーに小さなヘルプボタンを持ち、該当トピックのヘルプを開きます。

3.9Notes ペイン

Notes は資格情報・ランブック・サービスごとの手順のための、あなた専用の場所です。各ノートはタイトル・サービスタグ・本文を持ち、全体がmacOS キーチェーンで暗号化されます — 平文ファイルには保存しません。決め手となるのはノートごとのロックです。各ノートには Share with AI Administrator トグルがあり、既定はオフです。ノートがロックされている間、AI はそれを文字どおり読めません。アシスタントにその資格情報や手順を使ってほしいときだけ解除します。すると AI の list_notes に現れ、必要に応じて読まれます。

セキュリティShare-with-AI のロックは、あなたの秘密情報とモデルの境界です。ロックされたノートはアシスタントから不可視で — 一覧にも出ず、読まれず、漏れません。タスクに必要な資格情報だけ、ノート単位で意図的に解除してください。共有ノートが AI のツールにどう供給されるかは第 13 章を参照。

3.10Status Page

Status Page ペインは、Local Health と同じ稼働データから静的な index.html を生成して公開します。顧客や同僚がアプリにアクセスせずに何が動いているかを確認できます。公開先を選び(Apache サイトの DocumentRoot 内のフォルダにすれば /status/ のようなパスで配信されます)、ページタイトルを設定し、Include item details を入れるか決めます(詳細行は内部ホストやポートを露呈しうるので、公開ページではオフに)。ページは設定した間隔で、または Generate Now で都度再生成されます。プレーンな静的 HTML なので、別途動かすものはありません。

3.11Local Health とロケーションの概観

日常で要となる 2 つの Overview ペインには、それぞれ専用の章があります。Local Health は「すべて問題ないか?」に答えるボードです。監視中のすべてのサービス・デバイス・サブシステムを UP/DOWN 状態と 1 行サマリーで示します。各ペインから項目を重要(critical)に指定するとボードに加わり、フローティングパレットとミニも兼ねます。ヘルススイープ・しきい値・アラート連動を含む全容は第 11 章です。

Locations は、Mac が今ネットワーク上のどこにいるか — Home、Office、On VPN — を Wi-Fi ネットワークやサブネットから判定して教えます。ロケーションにより監視はネットワークを意識したものになります。認識されない場所にいる間はアプリがAwayとして扱い、ロケーション限定のチェックを一時停止するので、カフェやホテルのネットワークが誤報を出すことはありません。前述のとおり Setup の紐づけにも使います。ロケーションの定義、アラートと到達性のスコープ、フリートを含む完全なモデルは第 8 章です。

レイアウトを覚えたら、いよいよ実践です。次のパートはペインそのものを開いていきます。まずは第 4 章「Web スタック」から。

第 II

II

サービスの運用

目の前の Mac で Web スタック、データベース、サービスカタログ、そしてサイトを動かす。

4

第 4

Web スタック

Apache または Nginx、サイトごとに必要な PHP バージョン、バーチャルホスト、信頼されたローカル HTTPS、そして DNS — Web スタック一式を、設定の手書きなしに 1 つのウィンドウから制御します。

Web サーバは多くのセルフホスト構成の心臓部です。だから FrontierStack はそれを一級の対象として扱います。Apache ペインは Homebrew 版 Apache のインストール・起動・検証・設定を行い、PHPLocalhostCertificatesDNS の各ペインが、開発とホスティングの完全なスタックを仕上げます。あらゆる変更が検証を通るため、タイプミスがサイトを黙って落とすことはありません。

本章では、目の前の Mac で Web サイトを作り、動かすペインを扱います。そのスタックを実ドメインと公開インターネットへ繋ぐのは第 7 章、本番向けに堅牢化するのは第 10 章です。

4.1Apache ペイン

サイドバーから Apache ペインを開くと、Web サーバの状態がひと目で分かります。バージョン、起動の有無、待ち受けポート。上部のボタンが日々使う操作です — StartStopRestartValidate Config。検証は apachectl -t(本物の構文チェック)を実行し、結果を Last Result に表示するので、リロード前に変更が妥当だと確認できます。

FrontierStack は macOS のシステム版ではなく Homebrew 版 Apache を推奨します。Homebrew 版は /opt/homebrew(Intel Mac では /usr/local)以下に置かれ、brew services 経由で毎回 root を求められずに自分の権限で動き、System Integrity Protection に縛られません — だから最新の mod_php がきれいに読み込まれ、スタック全体が 1 つのツールチェーンに揃います。/etc/apache2 のシステム版は OS アップデートで消去され、Apple 同梱の libphp に縛られます。Homebrew 版 Apache が未インストールなら、ペインがワンクリックの Install Homebrew Apache… を提示します。

複数の Apache ビルド(Homebrew 版、旧来のローカルビルド、リモートサーバのもの)を併用する場合は、バイナリ選択(Add Homebrew ApacheAdd Local Build…)で登録し、それぞれのバージョンとポートを見ながら切り替えられます。

メモFrontierStack が Apache に加えた独自の追加はすべて、アプリ管理の設定ツリー /opt/homebrew/etc/httpd/frontierstack/ に置かれ、httpd.conf からの IncludeOptional で取り込まれます。アプリの vhost・MIME タイプ・管理対象 include をそこにまとめることで、手書きの httpd.conf は綺麗なまま保たれ、FrontierStack が何を追加したか常に分かります。

4.2モジュール・ポート・管理対象の設定

Apache ペインの下部には、最も頻繁に編集する設定が、ファイルではなくコントロールとして並びます。

セクション役割
PortsHTTP と SSL の待ち受けポートを設定(既定 80・443)。Nginx が 80/443 を使うなら Apache をそこから外します。ApplyListen ディレクティブを書き換えてリロード。
Apache Modules(Modules…)読み込み済みモジュールを一覧し、有効/無効を切り替え。未使用モジュールの無効化は最も手軽な堅牢化です。
PHP ModuleWeb サイト向けに Apache が読み込む mod_phplibphp.so)のバージョンを選択 — 次節参照。
WebDAV共有フォルダ向けに mod_dav を有効化。任意の Basic 認証ユーザ付きで、管理対象 include に書き込まれます。
Edit MIME Types…FrontierStack 管理の MIME ファイルに AddType マッピングを追加/削除。ディストリの mime.types には触れません。

コントロールとして出ていない項目には、設定行から Edit Managed Config…(FrontierStack の include)と Edit httpd.conf…(メインファイル)を直接編集できます。保存のたびに apachectl -t で検証し、グレースフルにリロードし、新しい設定が構文エラーならロールバックします — 誤った編集は、稼働中のサーバを壊す前に捕捉されます。

注意httpd.conf の手編集は強力で、無防備でもあります。アプリは構文エラーで検証・ロールバックしますが、構文は通るのに document root が誤った場所を指す設定は、なおファイルを露出させ得ます。FrontierStack 独自の追加は管理対象 include を優先し、大きな変更は控えを取ってください。

モジュールを切り替えると、その LoadModule 行を書き換えて再検証します。変更で httpd -t が失敗した場合(代表例は proxy なしで proxy_fcgi を有効化するケース。アプリが自動で proxy も有効化します)、モジュールウィンドウはエラーを表示し、黙って閉じません。修正するか、Save anyway(このまま保存)を選びます。Apache が固まって起動しない場合(Homebrew の典型的な Bootstrap failed: 5: Input/output error。既にロード済み、または sudo brew services が httpd のパスを root 所有にしてしまったのが原因)、ペインの Recovery & reset(復旧とリセット)セクションに 3 段階の対処があります:Restart cleanly(ユーザとシステム両方の launchd ドメインで httpd を停止してから 1 回だけ起動)、Reset config to defaulthttpd.conf をバックアップして Homebrew の既定を復元)、Remove & Reinstall(root 所有のパスを消して formula を再インストール)。いずれもアプリ内コンソールで実行され、sudo プロンプトと出力を確認できます。Service Watchdog のキープアライブが Apache に対して有効な場合、httpd を自動で再起動することがあります(想定内ですが、手動復旧と競合するなら一時停止してください)。

4.3PHP バージョンの選択

PHP ペインを開くと、Mac にインストールされた PHP ランタイムを管理できます。Homebrew は複数のメジャーバージョン(例:[email protected] から最新版まで)を併存させられ、FrontierStack はそれらを、単一のグローバルインストールではなく、切り替える集合として扱います。

選択は 2 つに分かれます。

  • Apache モジュール。Apache ペインの PHP Module セクションの Load for websites ピッカーで、Apache が読み込む libphp.so のバージョンを選びます。変更すると管理対象設定を書き換えて Apache をリロードします。
  • サイトごとの PHP。ローカル開発サーバ(下記 Localhost ペイン)には独自の PHP VersionPHP Binary 欄があり、あるプロジェクトを古い PHP で、別を最新で動かせます — マシンの他の部分が使うものを変えずに。旧来アプリと新規アプリを同時に成り立たせる、いつもの方法です。

Runtime Health ペインはより広い全体像を示します — PHP に加え Python・Node.js・Java・Go・Rust・Ruby・Perl・.NET — 欠落やサポート終了のランタイムを、問題になる前にフラグするセルフチェック付きです。

Runtimes セクションにはフロントエンド向けの React ペインもあります。新規アプリのスキャフォールド(Vite・TanStack Start・Next.js)、任意の React プロジェクトの指定、そして役割別に整理された厳選ライブラリ一覧を提供します — 状態管理(Zustand・Jotai・Redux Toolkit)、データ取得とサーバ状態(TanStack Query — 旧称 React Query — と SWR)、フルスタックフレームワーク(TanStack Start・Next.js)、ルーティング、バリデーション(ArkType・Zod)、フォーム、認証(Clerk)。各行にはドキュメントへのリンク、選択中プロジェクトでの使用状況、そのプロジェクトへのワンクリック npm install が並びます。

4.4サイトとバーチャルホスト

Apache ペインの Websites リストがバーチャルホストの管理場所です。各行にサイト名、バインドアドレス、ポート(例::8080)、そしてライブ状態を示す Running トグルが表示されます。ボタンで Add Site…、編集、複製、無効化、Push to Server…(連携サーバへ vhost をコピー)、ブラウザで開く、が行えます。Import Sites…Copy from… は、MAMP・XAMPP・Apple の Server.app・別の Apache から既存 vhost を取り込み、既定で localhost にバインドします。

サイトの追加・編集では、vhost が必要とする要点を設定します。ServerName(ドメイン)、document root(フォルダを Choose…)、バインドのアドレスとポート。サイトを有効化するとライブ状態ドット付きで一覧に現れます。FrontierStack は vhost を管理対象ツリー下の .conf ファイルに書き込み、検証し、リロードします。vhost・証明書・Cloudflare DNS レコードをまとめて作るには New Site + DNS… を使います — 第 7 章で解説する一括ウィザードです。

スクリーンショット追加予定
図 4.1. バーチャルホストの設定:ServerName、document root、バインドアドレスとポート、TLS と PHP のオプション。撮影手順: Apache ペインを開き、Websites リストでサイトを選択し、ServerName と document root を入力した設定エディタを表示
ヒント開発中はサイトを 127.0.0.1 にバインドすれば、Mac からしか到達できません — 作業中の最も安全な既定です。他のマシンから本当に到達させたいときだけ、バインドアドレスを 0.0.0.0 や LAN IP に変えてください。

4.5サイトの TLS 証明書

Certificates ペインは、サイトに鍵マークを付ける証明書を発行・管理します。用途に応じた 3 つの方法があります。

方法用途
mkcertGet Certificate (mkcert)信頼されたローカル HTTPS。mkcert は Mac が信頼するローカル認証局をインストールするので、https://myapp.test がブラウザ警告なしで動きます — 開発に最適。Install mkcert でまず準備します。
Let’s Encrypt (ACME)実ドメイン向けの、公開・ブラウザ信頼の証明書。acme.sh または certbot 経由。webroot(ドメインが既に HTTP を提供)または Cloudflare 経由の DNS-01(インバウンド HTTP 不要)で発行。Renew All Now と更新 cron で最新に保ちます。
Create Self-Signed Certificateブラウザ警告が許容される内部用・テスト用の手早い証明書。

発行後、Deploy to Apache が証明書をサイトの vhost に組み込みます。Expiry Monitoring セクションは証明書(および Watch で追加した任意のドメイン)を監視し、期限切れの十分前に通知します — HSTS や最新の暗号方針を含むより深い堅牢化は第 10 章です。

セキュリティmkcert のローカル CA はそれを実行する Mac だけが信頼し、Let’s Encrypt 証明書は本物の公開証明書です — 一般公開するサイトに自己署名証明書を使わないでください。DNS-01 発行用の Cloudflare API トークンは CF_TOKEN ボールトシークレットとして保存され、実行時に注入されます。クラウド AI には決して送られません。

4.6.htaccess エディタ

ディレクトリ単位の Apache ルール(リライト・リダイレクト・アクセス制御)は .htaccess ファイルに置かれます。FrontierStack はそれ専用のエディタを、行番号と構文の妥当性チェック付きで提供します。Use Site Root でサイトの document-root の .htaccess を開くか、custom path を指定します。Insert Recipe は、よくある正しいスニペット(フロントコントローラのリライト、HTTPS 強制ブロック)を挿入するので、記憶ではなく動くルールから始められ、保存前に明らかな問題をフラグします。Export PHP Router….htaccess のリライトルールを、組み込み PHP 開発サーバ用のルータファイルに変換します — サイトを Localhost ペインに移すときに便利です。

4.7Nginx とリバースプロキシ

FrontierStack は Nginx を、代替の Web サーバとして、またはアプリの前段のリバースプロキシとして管理します。両方がインストールされていると、Domains ビューはサイトをサーバごとに分類し — Apache のバーチャルホストと Nginx の server ブロックを並べて — 各 Nginx server ブロックの listen ポート・root・TLS 状態を読み取ります。リバースプロキシは、高位ポートで HTTP を話すアプリ(Node・.NET・Python のサービス)の前に立てる標準パターンです。Nginx が 443 で TLS を終端し、アプリへ転送します。Apache も Nginx も既定で 80/443 を欲しがるため、併用する場合は Apache ペインの Ports セクションで一方をそこから外してください。

4.8Localhost・DNS・開発スタック

ローカルの全体像を完成させる、もう 3 つのペインがあります。

  • Localhost — 即席のローカル開発サーバのマネージャ。New Local Server を追加し、Runtime(PHP・Python/Django・Node/Vite…)とフォルダを選び、ポートと任意の ServerName を設定して Start。サーバごとの Environment Globals.test リゾルバmyapp.test がローカルに解決されます。Free Port ヘルパーと localhost を掴んでいるものを止める操作で、よくある競合を解消します。
  • DNS — ローカルの名前解決と権威ホスティング。dnsmasqunboundnsd を実行し、ゾーンファイルをインポート/エクスポートし、レコード変更時にリゾルバをフラッシュして、Mac が古い応答を返さないようにします。
  • LAMP / DevStacks — ワンクリックのスタック。LAMP ペインはプリセット(Choose a Setup)を提供し、揃ったコンポーネント一式をまとめてインストール・起動(Install & StartStart AllStop All)。DevStacks はプロジェクトフォルダのフレームワークを検出し、それを動かす適切なコマンドと npm スクリプトを表示します。

Localhost の概観は、稼働中のローカルサーバをすべて並べて表示するので、世話の焼ける Terminal ウィンドウの壁なしに、多数のサイトを同時に動かせます。

AI が使うのと同じツール
本章の内容はすべて、AI 管理者(第 13 章)にも、MCP 経由の外部 AI ツール(第 14 章)にも、同じガード付き操作を通じて提供されます。vhost_create はバーチャルホストを作り、reload_webserver は Apache または Nginx を検証してグレースフルにリロードし、issue_certificate は Let’s Encrypt 証明書を取得します。いずれも変更を伴うツールなので、それぞれ承認カードを表示し、変更の有効化を必要とします — AI はこれらのペインであなたが行うことを正確に行い、許可されていないことは一切しません。
5

第 5

データベースとデータ

MySQL・PostgreSQL・Redis などを 1 つのウィンドウから運用し、AI にサイトのデータベースを点検・修正させ、すべてのデータをバックアップ・検証・復元可能な状態に保ちます。

Web スタックは、その下にあるデータの質を超えることはできません。FrontierStack はデータベースを一級のサービスとして扱います。インストールして実行し、中身を閲覧し、AI 管理者がサイトのデータベースを平易な言葉で点検・修復し、そして — 多くの構成が忘れがちな部分ですが — 実際に復元できる検証済みのスケジュールですべてをバックアップします。本章では、リレーショナルエンジン、インメモリキャッシュ、新しいベクトル・分析ストア、そしてそれらすべてを守るバックアップの仕組みを扱います。

5.1MySQL/MariaDB ペイン

サイドバーの Databases セクションから MySQL を開きます。ペインはサーバが未導入なら Homebrew でインストールし、Server.app がかつて備えていた操作を提供します。StartStop とライブ状態ランプ、リッスンポート(既定 3306)、サーバ上のデータベース一覧です。MySQL 互換のフォークである MariaDB も同じように管理でき、ペインはインストールされている方を認識します。

ローカル開発は意図的な 1 つの慣習に従います。ローカルの root アカウントはパスワードなしです。これは MAMP/XAMPP の慣行であり、ワンクリック構築と AI の SQL ツールが資格情報の入力なしに動作する理由です。安全なのは、Mac 上の MySQL が 127.0.0.1 のみでリッスンし、そのマシンからしか到達できないからこそです。パスワード付きアカウントや連携サーバ上のデータベースなど、外部から到達する必要が生じた瞬間に、後述の秘密情報ボールトへ切り替えます。

スクリーンショット追加予定
図 5.1. MySQL ペイン:サーバ状態、リッスンポート、開始/停止操作付きのデータベース一覧。撮影手順: サーバを起動し、2〜3 個のデータベースが並んだ状態で MySQL ペインを開いて撮影
メモパスワードなしのローカル root は、目の前の Mac で localhost にバインドされた MySQL にのみ適用されます。これは開発上の利便性であり、ネットワークからの接続を受け付けるサーバへの推奨ではありません。本番データベースには実際のパスワードを設定し、ボールトに保管します。

5.2Database Ops と SQL の実行

Database Ops ペインは、データベースがブラックボックスでなくなる場所です。Replication セクションは、設定済みサーバが MySQL レプリカか PostgreSQL スタンバイかを検出し、遅延を表示します。MySQL は SHOW REPLICA STATUS(IO・SQL スレッド、Seconds_Behind_Source)を読み、PostgreSQL は pg_is_in_recovery() と再生タイムスタンプを使います。レプリケーションの停止やしきい値超過の遅延は、選んだチャネルにアラートを出します — Database Slave 監視プリセットの基礎です。

データの点検や修正には、AI 管理者の run_sql ツールがあります。「この注文の合計がなぜ間違っているのか」「元の重複ユーザより古い重複を削除して」のように平易な言葉で頼むと、ローカルサーバに対して SQL を実行し、結果を表として表示します — MAMP の Claude 連携によく似ています。文がデータを変更し得るため、run_sql変更の有効化を必要とします。読み取り専用のクエリはアシスタントが有効になった時点で動作します。既定はパスワードなしのローカル root で、設計上ローカル専用です。

5.3パスワード付き・リモートのデータベース

ローカル root のショートカットは、ネットワークが始まるまさにその境界で止まります。パスワードが必要なデータベースや、リモート・連携サーバ上のデータベースでは、パスワードをプロンプトやツールに貼り付けることは決してしません。代わりに、AI 管理者の Script secrets (.env) バーに DB_PASSWORDMYSQL_PWD という名前付き秘密として一度だけ追加し、アシスタントは run_script 経由で mysql クライアントを実行し、値を $DB_PASSWORD として参照しながら、名前付きサーバに対して SSH 経由で実行します。実際の値は Mac に留まり実行時に注入され、クラウドモデルが見るのは名前だけで秘密は見ません。

セキュリティデータベースのパスワードを、チャットボックス・SQL ツールの欄・スクリプト本体に貼り付けてはいけません。.env ボールトに追加し、$NAME として参照します。値は実行時にローカルまたは SSH 経由で注入され、AI には決して送られません。これは FrontierStack 全体で使う同じボールトモデルです — 第 13 章を参照してください。

5.4PostgreSQL

高度な SQL・リッチな JSON・全文検索・GIS を求めるプロジェクトには Postgres を開きます。ペインは PostgreSQL(既定ポート 5432)をインストールして実行し、MySQL と並んで同じ開始/停止/状態の操作を備えます。アプリやフレームワークが前提とするなら PostgreSQL を、それ以外なら MySQL/MariaDB が手軽な既定です。両エンジンとも、後述のバックアップジョブと AI ツールの一級の対象であり、PostgreSQL は後述の特化型ストアのいくつかの土台にもなります — 埋め込み用の pgvector、時系列の TimescaleDB、Postgres データベース上に即席 REST API を載せる PostgREST です。

5.5Redis とその他のキャッシュ

セッション・キュー・レート制限・ホットパスのキャッシュは通常、リレーショナルテーブルよりインメモリストアを求めます。FrontierStack は Caching カタログから 2 つの標準を実行します。インメモリのキーバリューストアであり Redis Streams も支える Redis(ポート 6379)と、シンプルな分散キャッシュ用の Memcached(ポート 11211)です。他のサービスと同様にインストール・起動・監視できます。多くの CMS やフレームワークの構成は Redis を MySQL または PostgreSQL と組み合わせます。すべての選択肢はサービスカタログ(第 6 章)に並びます。

5.6ベクトル・分析データベース

2 つの新しいストアの系統が、独自のカタログカテゴリを持ちます。ベクトルデータベースは、検索拡張生成(RAG)や意味検索のための埋め込みを保持します。AI スタック(第 15 章)がモデルに自分のドキュメントへのアクセスを与える方法です。分析データベースは、トランザクション的な読み書きではなく、大規模データの高速な集計のために作られた列指向・時系列エンジンです。

エンジン種類ポート
MySQL / MariaDBリレーショナル3306
PostgreSQLリレーショナル5432
Redisインメモリキャッシュ/ストリーム6379
Memcachedインメモリキャッシュ11211
Qdrantベクトル(RAG/埋め込み)6333
Chromaベクトル(埋め込み)8000
Weaviateベクトル(ハイブリッド検索)8080
Milvusベクトル(分散)19530
pgvectorベクトル(Postgres 拡張)5432
ClickHouse列指向 OLAP 分析8123
InfluxDB時系列8086
TimescaleDB時系列(Postgres 拡張)5432
Apache Druidリアルタイム OLAP8888

完全にインプロセスのベクトル検索には FAISS(ライブラリ、ポートなし)もあります。フレームワークが前提とするエンジンを選んでください。各ペインは同じカタログの仕組みで一つひとつをインストール・実行します。

ベクトルデータベースとは
ベクトルデータベースはテキストを数値の埋め込みとして保存し、キーワードではなく意味で検索できるようにします。RAG の背後にある記憶です。AI スタックがドキュメントを埋め込み、ベクトルをここに保存し、最も関連する箇所を取り出してモデルの回答の根拠とします。pgvector はそれを既存の PostgreSQL の中に保ち、Qdrant・Chroma・Weaviate・Milvus はより大きなコレクション向けの専用ストアです。

5.7データパイプラインと ETL

これらのストアの間でデータを移動・整形することは、それ自体が一つの分野です。Data Pipelines & ETL カタログカテゴリが概観レベルでこれを扱います。数百のコネクタを持つ抽出・ロードの AirbyteMeltano、SQL ベースの変換・モデリングの dbt、そして作業をスケジューリングする DagsterPrefectKestra などのオーケストレーターです。これらは本格的なプラットフォームで、FrontierStack はインストール・実行して Web UI を提示しますが、パイプラインのロジックは各ツールの中にあります。プログラマブルなデータパイプライン DAG には、Workflow Orchestration カテゴリの Apache Airflow もあります。

5.8バックアップ:ダンプ・概要ペイン・CCC

テスト済みバックアップのないデータベースは、未来の障害です。FrontierStack はこれに 2 方向から取り組みます。Database Ops では、サーバごとに検証済みのダンプスケジュールを定義します。名前、エンジン(MySQL か PostgreSQL)、ホスト、ポート、ユーザ、データベース(空欄=すべて)、バックアップディレクトリです。期限の来たジョブはアプリ起動中に自動実行され、Run Now は即座に 1 回実行します。各実行はダンプ以上のことを行います — mysqldump は一貫した InnoDB スナップショットのため --single-transaction で実行され、続いて Verify が gzip の整合性とダンプが完了マーカーで終わっていること(切り詰められた・書きかけのファイルを検出)を確認し、.md5 サイドカーを書き、保持数にローテートし、鍵ベースの SSH で結果をオフサイトへ rsync します。

AI 管理者は同じ操作をツールとして公開します。db_dump はデータベースをターゲット上の .sql ファイルにダンプし(mysqldump または pg_dump を使用)、backup_now は設定・サイト・データフォルダのタイムスタンプ付き tar.gz を作成します。どちらも変更を伴うため、承認と変更の有効化が必要です。DB パスワードには $NAME のボールト秘密を参照し、貼り付けた値は決して使いません。

Backups 概要ペインは、すべての仕組みをまとめ、古さがひと目で分かるようにします。Time Machine の状態、Carbon Copy Cloner のタスク、アプリ管理の Apache 設定スナップショット、Git による設定のバージョン履歴、スケジュール済み自動エクスポートです。Carbon Copy Cloner ペインは CCC のタスクと履歴をその ccc コマンドラインツール経由で読み取り、タスクを必要に応じて Run できます。Time Machine と CCC はどちらも Alerts エンジンに供給されます — しきい値内に実行されていないバックアップや、失敗した CCC タスクは、選んだチャネルにアラートを出します(第 11 章)。

5.9復元 — そして復元の安全性

バックアップは復元のために存在し、復元こそが危険な半分です。AI の restore ツールは .tar.gz アーカイブを展開するか、.sql ダンプをデータベースにインポートします。ダンプのインポートは稼働中のデータベースを上書きし、アーカイブの展開はその場でファイルを上書きするため、restore変更を伴い、破壊的になり得ます。常に変更の有効化付きの明示的な承認が必要で、SQL インポートは DB パスワードを $NAME のボールト秘密として参照します。

注意復元は破壊的です。.sql ダンプのインポートはターゲットデータベースの現在の内容を置き換え、自動の取り消しはありません。復元の前には、ロールバックできるよう現在の状態の新しいダンプを取り(db_dump または Run Now)、正しいデータベース・正しいサーバを向いていること — 誤って本番ではないこと — を確認してください。

5.10壊れたデータベースのリカバリ

データベースが単に停止するより悪い状態——起動しない、テーブルが破損している——になることがあります。FrontierStack は AI 管理者(第 13 章)に、手作業で使うのと同じツールを、いつもの承認カードのうえで与えます。mysql_check_tablespg_check_tablesmysqlcheckpg_amcheck を実行して破損・クラッシュしたテーブルを見つけます。repair をオンにすると先に mysqldumppg_dump でバックアップを取ってから修復(--auto-repairREINDEX)するので、修正は取り消し可能です。mysql_service_controlpg_service_control は、systemd・launchd・Homebrew・service(8) をまたいで、ローカルでも SSH 経由でも、サーバの起動・停止・再起動・状態確認を行います。

難しいケースにはガイド付きのスキル——「Recover Broken MySQL」「Recover Broken PostgreSQL」——があり、手順全体をたどります。エラーログを読み、原因を診断し、読めるものをすべてダンプし、新しいデータディレクトリに再構築し、壊れたテーブルを修復または作り直し、再起動します——常に古いデータディレクトリはコールドバックアップとして名前を変えて退避し、決して削除せず、破損を伴う各ステップの前に確認します。リモートホストでは、サーバペインのデータベース行にある赤い Emergency ボタンが最短の入り口です。そのホスト向けの適切なリカバリスキルを読み込んだ状態でアシスタントを開きます。

注意データベースの修復・復元・再構築は取り返しがつかないため、FrontierStack はこれらの実行に高性能モデルを要求します——小さなモデルやオンデバイスモデルはログを読んで診断できますが、破損を伴うステップはフロンティアモデルにハードゲートされています(第 13 章参照)。そして安全網は上記のバックアップです。再構築は再読み込みするダンプの品質次第なので、スケジュール実行のダンプを健全に保ってください。

5.11ORM とアプリネイティブのツール:Drizzle と Convex

最後に、2 つのツールがアプリケーションのスキーマ定義の場であなたを迎えます。Drizzle ORM ペインは Drizzle プロジェクト(そのテーブル・マイグレーション・バックエンドの方言)を検出し、drizzle-kit タスクを代行します — スキーマから SQL を GenerateMigrate、スキーマを直接 Push、既存データベースを Pull(イントロスペクト)、そしてデータ閲覧用に Drizzle Studio を開きます。Convex ペインは、組み込みデータベースを備えるリアクティブバックエンドの Convex を管理します。npx convex dev で関数を監視・プッシュするか、Docker でセルフホストのバックエンドを立ち上げます。どちらも Node.js を必要とし、未導入ならペインが Homebrew でインストールします。これらはアプリケーション自身のデータ層を扱います。上記のダンプとバックアップは、それらが書き込むものを引き続き守ります。

6

第 6

サービスカタログ

FrontierStack がインストール・実行・監視できる全サービスをカテゴリ別に。

FrontierStack は 112 カテゴリにわたる 1545+ サービスのカタログを備えています。各項目はアプリから検出・インストール・起動・設定・監視でき、AI 管理者はそのすべてを操作できます。本章はそのフィールドガイドです。各カテゴリと所属サービス、そして全サービスの 1 行説明を掲載します。サービス説明はアプリのラベルと一致させるため英語のままにしています。

各サービスには frontierstack.app/services/ に専用ページがあり、ポート・既定の Web UI・Homebrew フォーミュラを掲載しています。

6.1Overview

Local Health

built-in tool

Status Page

built-in tool

Alerts

built-in tool

Sites

built-in tool

Logs

built-in tool

Certificates

built-in tool

Tools

built-in tool

Scripts & Cron

built-in tool

Startup Items

built-in tool

Homebrew

built-in tool

Messaging Gateways

built-in tool

Notifications

built-in tool

Apple Services

built-in tool

Terminal Style

built-in tool

Setups

built-in tool

Paired Devices

built-in tool

Licences

built-in tool

Settings

built-in tool

6.2Setup & Migration

Migrate Setups

built-in tool

Apple Server Migration

built-in tool

Site Transfer

built-in tool

Install Wizard

built-in tool

6.3Locations & Places

Locations

built-in tool

Places

built-in tool

Device Discovery

built-in tool

Data Map

built-in tool

6.4Fleet & Remote

Remote Tools

built-in tool

Fleet Run

built-in tool

Remote KVM

built-in tool

GL.iNet KVM

built-in tool

Git Server

built-in tool

Remote Control & Lock

built-in tool

Server Clone

built-in tool

Headless Setup

built-in tool

Print Production

built-in tool

Screens

Polished VNC client for Mac & iOS (Edovia)

Cockpit

Browser console for Linux servers and Raspberry Pi (port 9090, web UI)

Windows Admin Center

Browser-based management for Windows Server fleets (port 443, web UI)

PiKVM

Open-source KVM-over-IP (Raspberry Pi) (port 443, web UI)

JetKVM

Compact, low-cost KVM-over-IP device (port 80, web UI)

TinyPilot

KVM-over-IP appliance (web UI) (port 443, web UI)

NanoKVM

Sipeed open KVM-over-IP (RISC-V) (port 80, web UI)

GL.iNet Comet (GL-RM1)

Compact KVM-over-IP with a browser console (port 80, web UI)

GL.iNet Comet Pro (GL-RM10)

KVM-over-IP with a built-in smart power plug (port 80, web UI)

Raritan Dominion KX

Enterprise KVM-over-IP switch (web UI) (port 443, web UI)

ATEN KVM over IP

KVM-over-IP switches & dongles (web UI) (port 443, web UI)

Jump Desktop

Fast, secure remote desktop (RDP/VNC/Fluid)

RustDesk

Open-source remote desktop with optional self-host relay (port 21115, web UI)

MeshCentral

Self-hosted web RMM and remote control (port 443, web UI)

Apache Guacamole

Clientless RDP, VNC and SSH gateway (port 8080, web UI)

Windows Remote Desktop

RDP access to Windows machines (port 3389)

WinRM / PowerShell Remoting

Remote command channel for Windows servers (port 5986)

Tactical RMM

Open-source RMM for Windows-focused fleets (port 443, web UI)

AnyDesk

Cross-platform remote desktop

6.5Networking

Traffic

built-in tool

Router & Network

built-in tool

Power over Ethernet

built-in tool

UniFi

built-in tool

SFTP

built-in tool

WebDAV

built-in tool

Time Capsule

built-in tool

Internet Health

built-in tool

Service Scan

built-in tool

Wi-Fi Analyser

built-in tool

BIND 9 (named)

Authoritative/recursive DNS server (port 53)

netboot.xyz

Network-boot OS installers via PXE/iPXE (port 3000, web UI)

Zeroconf / Bonjour

Zero-configuration service discovery (mDNS/DNS-SD) (port 5353)

6.6VPN

VPN

built-in tool

ZeroTier Controller

built-in tool

Tailnet

built-in tool

ZeroTier

Zero Trust SD-WAN / virtual networks — agent + API

ZeroTier Controller (self-hosted)

Run your own ZeroTier network controller (no Central) (port 9993)

NetBird

Open-source Zero Trust networking (self-hostable)

Twingate

Zero Trust remote access (VPN replacement)

CloudConnexa

OpenVPN's cloud-delivered VPN / ZTNA (formerly OpenVPN Cloud) (web UI)

Netmaker

Fast WireGuard mesh networks (self-hosted)

WireGuard

Modern, fast VPN — host your own, or the mesh base layer (port 51820)

OpenVPN

The classic open-source SSL/TLS VPN (port 1194)

Proton VPN

Privacy VPN (WireGuard/OpenVPN, Secure Core, kill switch)

Headscale

Self-hosted Tailscale control server (open-source) (port 8080, brew: headscale)

Nebula

Lightweight overlay mesh (Slack/Defined Networking)

OpenZiti

Zero-trust overlay fabric with SDKs (self-hosted)

Firezone

WireGuard-based zero-trust access gateway

tinc

Classic self-routing mesh VPN (open-source)

n2n

Peer-to-peer layer-2 VPN over a supernode (ntop)

innernet

WireGuard mesh with CIDR-based access (tonari)

strongSwan

IKEv2/IPsec VPN server (port 500)

wg-easy

WireGuard VPN with a simple web UI (port 51821, web UI)

TP-Link LightLink VPN

TP-Link remote-access VPN — managed via the Navi Desktop app

Tailscale

WireGuard mesh VPN (brew: tailscale)

Tunnelblick

Free OpenVPN client for macOS

6.7Routers & Firewalls

macOS Firewall

built-in tool

OPNsense

Open-source firewall/router OS (REST API) (port 443, web UI)

pfSense

FreeBSD firewall/router OS (REST via package) (port 443, web UI)

PoE Switch (RFC 3621)

Managed PoE switch — port power, budget & cycling over SNMP (port 161, web UI)

MikroTik (RouterOS)

RouterOS devices — REST API (v7+) (port 443, web UI)

UniFi

Ubiquiti Cloud Gateway / Dream Machine + Network controller (port 443, web UI)

UniFi OS Server

Self-hosted UniFi OS — run the full stack on your own Mac or Linux box (port 11443, web UI)

Peplink

SD-WAN routers with multi-WAN failover/bonding (port 443, web UI)

Cradlepoint

Cellular/5G edge routers (NCOS + NetCloud) (port 443, web UI)

OpenWrt

Open-source router firmware (LuCI / ubus) (port 80, web UI)

Firewalla

Home/SMB security router (cloud MSP API)

IPFire

Hardened open-source Linux firewall (web UI) (port 444, web UI)

VyOS

Linux network OS — unified CLI + HTTPS API (port 443, web UI)

Untangle / Arista NG Firewall

Debian network gateway — web admin (commercial) (port 443, web UI)

Sophos Firewall

Next-gen firewall appliance — web UI + API (commercial) (port 4444, web UI)

FortiGate

Fortinet next-gen firewall — REST API (commercial) (port 443, web UI)

Palo Alto Networks

PAN-OS next-gen firewall — XML/REST API (commercial) (port 443, web UI)

Cisco Secure Firewall

Cisco NGFW (Firepower/ASA) — FMC/FDM API (commercial) (port 443, web UI)

WatchGuard Firebox

Fireware firewall appliance — web UI + Cloud API (commercial) (port 8080, web UI)

UFW (Uncomplicated Firewall)

Easy iptables/nftables host firewall for Linux servers (manage over SSH)

6.8Web Servers

Apache

built-in tool

Nginx

built-in tool

Vercel

built-in tool

Railway

built-in tool

Vite

built-in tool

Localhost

built-in tool

Caddy

Automatic-HTTPS web server / reverse proxy (port 80, brew: caddy)

Laravel Herd

One-click PHP dev environment (Mac app) (port 80)

Apache Tomcat

Java servlet/JSP application server (port 8080, web UI, brew: tomcat)

Microsoft IIS

Windows web server and application platform (port 80, web UI)

OpenLiteSpeed

High-performance web server with web admin UI (port 7080, web UI)

Angular CLI

Scaffold, serve & build Angular apps (port 4200, web UI)

6.9DNS

Dynamic DNS

built-in tool

DNS

built-in tool

Domain Registrars

built-in tool

AdGuard Home

Network-wide ad/tracker-blocking DNS (self-hosted) (port 3000, web UI)

Pi-hole

Network-wide ad/tracker-blocking DNS sinkhole (port 80, web UI)

Nebula Sync

Sync configuration across Pi-hole instances

Kea DHCP

ISC's modern DHCPv4/DHCPv6 server (REST + DB back-ends) (port 8000)

ISC DHCP

Classic ISC dhcpd (EOL — migrate to Kea)

Dnsmasq

Lightweight DNS forwarder + DHCP + TFTP (port 53, brew: dnsmasq)

udhcpd (BusyBox)

Tiny DHCP server (BusyBox / embedded)

DNSimple

Managed DNS + domain registrar — live zone/record management (web UI)

Infoblox NIOS (DDI)

Enterprise DNS / DHCP / IPAM appliance (DDI) (port 443, web UI)

Windows Server DHCP

DHCP Server role on Windows Server

6.10Runtimes

Runtime Health

built-in tool

PHP

built-in tool

Python

built-in tool

Node.js

built-in tool

Java

built-in tool

Go

built-in tool

Rust

built-in tool

Ruby

built-in tool

Perl

built-in tool

.NET

built-in tool

Supabase Edge Functions

Deno serverless functions on the edge (port 54321)

code-server

VS Code in the browser (self-hosted) (port 8080, web UI, brew: code-server)

Next.js

React framework served by a Node process (SSR/SSG) (port 3000)

SvelteKit (Svelte)

Svelte app framework served by a Node process (SSR/SSG) (port 3000)

Nuxt (Vue)

Vue framework served by a Node process (SSR/SSG) (port 3000)

Astro

Content-first framework — zero JS by default; popular headless-WordPress front end (port 4321)

Tailwind CSS

Utility-first CSS — standalone build CLI (no Node)

.NET (ASP.NET Core)

Run ASP.NET Core & Blazor apps (Kestrel) (port 5000)

Wasmtime

Bytecode Alliance WebAssembly runtime (WASI)

Wasmer

WebAssembly runtime with a package registry

WasmEdge

Lightweight WASM runtime for cloud/edge & AI (CNCF)

wasmCloud

Distributed WebAssembly platform (CNCF) (port 4222, web UI)

Fermyon Spin

Serverless WebAssembly apps & HTTP microservices (port 3000)

6.11Databases

Database Health

built-in tool

MySQL

built-in tool

MySQL Clusters

built-in tool

Postgres

built-in tool

Database Ops

built-in tool

Cloud SQL

built-in tool

Drizzle ORM

built-in tool

Prisma

built-in tool

Airtable

built-in tool

Supabase

built-in tool

MongoDB

Document (NoSQL) database (port 27017, brew: mongodb-community)

Microsoft SQL Server

Microsoft relational database for Windows and Linux (port 1433)

Oracle Database

Enterprise relational database (port 1521, web UI)

CockroachDB

Distributed SQL database (port 26257, web UI)

Apache Cassandra

Distributed wide-column database (port 9042, brew: cassandra)

ScyllaDB

High-performance Cassandra-compatible database (port 9042)

Neo4j

Graph database with Cypher query language (port 7474, web UI, brew: neo4j)

Apache CouchDB

Document database with HTTP API and sync (port 5984, web UI, brew: couchdb)

Couchbase Server

Distributed document, key-value and search database (port 8091, web UI)

PlanetScale

Hosted MySQL with database branching (cloud API) (port 3306)

Neon

Serverless Postgres — autoscaling & branching (cloud API) (port 5432)

Turso

Distributed SQLite (libSQL) at the edge (cloud API) (port 8080)

PostgREST

Instant REST API over a PostgreSQL database (port 3000)

PocketBase

Open-source backend in one file (SQLite + auth + realtime) (port 8090, web UI)

Firebase

Google's backend-as-a-service — Firestore, Auth, Storage, Functions (cloud) (port 4000, web UI)

Patroni

HA PostgreSQL — automatic failover (port 8008, web UI)

6.12Vector Databases

Qdrant

Fast vector DB for embeddings & RAG (self-hosted) (port 6333, web UI)

Chroma

Developer-friendly embedding database (self-hosted) (port 8000)

Weaviate

Vector DB with built-in vectorizers & hybrid search (self-hosted) (port 8080)

Milvus

Scalable, distributed vector database (self-hosted) (port 19530)

pgvector

Vector search inside PostgreSQL (extension) (port 5432)

FAISS

Fast in-process vector similarity search (library)

6.13Analytics Databases

InfluxDB

Time-series database for metrics and IoT (port 8086, web UI, brew: influxdb)

DuckDB

In-process OLAP database — the SQLite of analytics

ClickHouse

Columnar OLAP database for fast analytics (port 8123)

Apache Druid

Real-time analytics database (OLAP) (port 8888, web UI)

TimescaleDB

Time-series database (PostgreSQL extension) (port 5432)

6.14Data Pipelines & ETL

Airbyte

Open-source ELT with 300+ connectors (self-hosted / cloud) (port 8000, web UI)

Meltano

Open-source ELT built on Singer taps & targets (CLI) (port 5000, web UI)

dbt

SQL-based data transformation & modeling (self-hosted / cloud) (port 8080, web UI)

Dagster

Asset-oriented data orchestrator (self-hosted / cloud) (port 3000, web UI)

Prefect

Modern Python workflow orchestration (self-hosted / cloud) (port 4200, web UI)

Kestra

Event-driven orchestration & scheduling, YAML flows (self-hosted) (port 8080, web UI)

Redpanda Connect (Benthos)

Declarative stream-processing & connectors (self-hosted CLI) (port 4195)

NATS JetStream Pipelines

Persistent streams & consumers for event pipelines (self-hosted) (port 8222, brew: nats-server)

6.15Caching

Redis

In-memory key-value store (port 6379, brew: redis)

Memcached

Distributed memory cache (port 11211, brew: memcached)

Elasticsearch

Search & analytics engine (Elastic) (port 9200, web UI, brew: elasticsearch-full)

Meilisearch

Fast, typo-tolerant search engine (port 7700, web UI, brew: meilisearch)

OpenSearch

Search & analytics engine (port 9200, web UI, brew: opensearch)

Photon

Self-hosted OpenStreetMap geocoder (search-as-you-type) (port 2322)

6.17Backup

Backups

built-in tool

Time Machine

built-in tool

Carbon Copy Cloner

built-in tool

Synology Active Backup for Business

Centralized backup for PCs, servers, VMs & SaaS (Synology) (port 5001, web UI)

Databasus

Self-hosted database backup & point-in-time recovery (web UI)

Restic

Fast, encrypted, deduplicated backups

rclone

Sync & mount 70+ cloud storages

Dropbox (Backup Target)

Use Dropbox as an encrypted off-site backup destination (restic / rclone)

Veeam Backup & Replication

Enterprise VM, server and cloud backup (port 9392, web UI)

BorgBackup

Deduplicating encrypted backups over SSH

Kopia

Encrypted snapshots to cloud or local storage (port 51515, web UI)

Duplicati

Web UI backups to cloud storage (port 8200, web UI)

6.18Storage & NAS

iCloud+

built-in tool

Xsan

built-in tool

Supabase Storage

S3-compatible object storage from Supabase (port 54321, web UI)

Nextcloud

Files, sync, office & app platform (port 80, web UI)

Syncthing

Peer-to-peer continuous file sync (port 8384, web UI, brew: syncthing)

TrueNAS

ZFS NAS OS — pools, snapshots, replication (self-hosted) (port 443, web UI)

ZimaOS / CasaOS

Personal-cloud NAS OS for ZimaCube / ZimaBoard (self-hosted) (port 80, web UI)

Synology DSM

Synology NAS appliance (DSM) (port 5001, web UI)

QNAP QTS

QNAP NAS appliance (QTS/QuTS hero) (port 8080, web UI)

Ceph

Distributed object/block/file storage cluster (self-hosted) (port 8443, web UI)

GlusterFS

Scale-out network filesystem (self-hosted)

iSCSI (SAN)

Block storage over TCP/IP — initiator & target (port 3260) (port 3260)

NVMe / NVMe-oF

NVMe SSDs & NVMe-over-Fabrics targets (TCP/RDMA/FC) (port 4420)

Fibre Channel (SAN)

FC SAN fabric — HBA ports, WWNs, multipath

RDMA / RoCE / iWARP

Remote Direct Memory Access fabrics — RoCE & iWARP

InfiniBand Fabric

InfiniBand HCA/fabric — ports, SM, port-error counters

NVIDIA NVLink

GPU-to-GPU interconnect — per-link state & bandwidth

NVIDIA NVSwitch

NVLink switch fabric — Fabric Manager service

Liqid (Composable)

Composable PCIe/CXL fabric — pool & attach GPUs/NVMe (web UI)

GigaIO FabreX

PCIe/CXL memory fabric — composable GPU pooling (web UI)

WEKA

Parallel filesystem for AI/HPC (GPUDirect) (port 14000, web UI)

ownCloud

Self-hosted file sync & share (port 80, web UI)

Seafile

File sync & share with client-side encryption (self-hosted) (port 8000, web UI)

Resilio Sync

P2P file sync (BitTorrent-based) (port 8888, web UI)

Dropbox

Cloud file sync & share (app + API) (web UI)

Samba

SMB file sharing (+ Time Machine) (port 445, brew: samba)

Netatalk

AFP file sharing for legacy Macs and Xserve estates (port 548)

File Browser

Web file manager for a directory (port 8080, web UI)

Filestash

Web file manager for S3/SFTP/FTP/WebDAV/… (port 8334, web UI)

Unraid

NAS/server OS — storage array, VMs & Docker (port 80, web UI)

6.19Object Storage & S3-Compatible

MinIO

S3-compatible object storage (port 9000, web UI, brew: minio)

SeaweedFS

Fast distributed object/file store (self-hosted) (port 8888, web UI)

Garage

Lightweight self-hosted S3 object store (Deuxfleurs) (port 3900)

Ceph RGW (RADOS Gateway)

S3/Swift object gateway on a Ceph cluster (self-hosted) (port 7480)

OpenStack Swift

Highly-available object store (OpenStack, self-hosted) (port 8080)

Cloudflare R2

S3-compatible object storage with zero egress fees (cloud) (web UI)

Backblaze B2

Low-cost cloud object storage, S3-compatible (cloud) (web UI)

Wasabi

Hot cloud object storage, S3-compatible, no egress fees (cloud) (web UI)

RustFS

High-performance S3-compatible object storage (Rust) (port 9000, web UI)

6.20Mail

Mail Server

built-in tool

Message Delivery

built-in tool

Proton

Encrypted mail, VPN, drive & passwords (cloud) (port 1025, web UI)

HEY

37signals hosted email & calendar (Imbox, Screener, Paper Trail) (web UI)

Rspamd

Fast spam-filtering system (self-hosted) (port 11334, web UI)

Apache SpamAssassin

Rule-based spam classifier (self-hosted) (port 783)

MailScanner

Email security framework / gateway (self-hosted)

Proxmox Mail Gateway

Anti-spam/AV email gateway appliance (self-hosted) (port 8006, web UI)

mailcow

Dockerized full mail-server suite (self-hosted) (port 443, web UI)

Modoboa

Mail hosting & management platform (self-hosted) (port 443, web UI)

OpenDKIM

DKIM signing & verification milter (self-hosted) (port 8891)

OpenDMARC

DMARC policy filter & reporting (self-hosted) (port 8893)

Postfix

SMTP mail transfer agent (port 25)

Dovecot

IMAP/POP3 mail delivery server (port 143)

Stalwart Mail Server

All-in-one secure mail server (SMTP/IMAP/JMAP) (port 8080, web UI)

Maddy Mail Server

Composable single-binary mail server (SMTP/IMAP)

6.21Mailing Lists

Mailing Lists

built-in tool

Mailchimp

Hosted email marketing & audiences (cloud) (web UI)

Brevo

Email/SMS marketing + transactional (cloud) (web UI)

MailerLite

Simple newsletter & subscriber lists (cloud) (web UI)

Klaviyo

E-commerce email/SMS & segmentation (cloud) (web UI)

Campaign Monitor

Designer-friendly email campaigns (cloud) (web UI)

Mailgun

Developer transactional email + lists (cloud) (web UI)

SendGrid

Twilio's email API & marketing lists (cloud) (web UI)

Amazon SES

AWS low-cost bulk/transactional email (cloud) (web UI)

Postmark

Fast, reliable transactional email (cloud) (web UI)

Resend

Developer-first transactional email API (cloud) (web UI)

MailPace

Fast, privacy-friendly transactional email (cloud) (web UI)

Nylas

Email/calendar/contacts API platform (cloud) (web UI)

Listmonk

Self-hosted high-performance newsletter manager (port 9000, web UI)

Mautic

Self-hosted marketing automation (port 80, web UI)

Mailtrain

Self-hosted Node.js newsletter app (port 3000, web UI)

Postal

Self-hosted full mail/delivery platform (port 5000, web UI)

6.22Email Deliverability & Reputation

Email Delivery

built-in tool

DMARC Aggregate Reporting

Collect & parse DMARC RUA reports (self-hosted: parsedmarc)

BIMI

Brand logo in the inbox via DNS + VMC (standard)

MTA-STS & TLS-RPT

Enforce SMTP TLS and get TLS failure reports (standard)

GlockApps

Inbox-placement & spam-filter testing (cloud) (web UI)

MXToolbox

DNS, blacklist & email health lookups (cloud) (web UI)

Google Postmaster Tools

Gmail sender reputation & spam-rate data (cloud) (web UI)

Mailhardener

All-in-one email-security monitoring & reporting (cloud) (web UI)

EasyDMARC

DMARC management & deliverability platform (cloud) (web UI)

dmarcian

DMARC reporting & deployment platform (cloud) (web UI)

6.23Message Queues & Streaming

Supabase Realtime

Postgres change streams over WebSockets (port 54321, web UI)

NATS

High-performance messaging + JetStream (self-hosted) (port 4222, brew: nats-server)

Apache Kafka

Distributed event streaming (self-hosted) (port 9092, brew: kafka)

Redpanda

Kafka-compatible streaming, no JVM/ZooKeeper (port 9092)

RabbitMQ

AMQP broker with optional MQTT and a separate management API (port 5672, web UI on 15672, brew: rabbitmq)

Apache Pulsar

Distributed pub-sub & queuing with tiered storage (port 6650, web admin on 8080)

Apache RocketMQ

Low-latency distributed messaging (ordered, transactional) (broker port 10911; NameServer 9876)

Redis Streams

Lightweight log/stream with consumer groups (Redis) (port 6379, brew: redis)

Celery

Distributed task queue for Python (workers + broker)

6.24Push Services

APNs

built-in tool

ntfy

Self-hostable pub-sub push (HTTP) (port 80, web UI, brew: ntfy)

Gotify

Self-hosted push server + Android app (port 80, web UI)

OneSignal

Hosted multi-channel push (cloud) (web UI)

Firebase (FCM)

Google's cross-platform push (cloud) (web UI)

Airship

Enterprise customer-engagement push (cloud) (web UI)

Matrix Notifications

Push via the Matrix chat protocol (web UI)

Synapse

Self-hosted Matrix homeserver (port 8008, brew: matrix-synapse)

Element

Flagship Matrix chat client

UnifiedPush

Open push standard (Google-free) (web UI)

PushDeer

Open-source, no-app-fuss push (web UI)

Pushover

Simple paid push to iOS/Android/desktop (web UI)

Apprise

One CLI/library → 80+ push services

6.25Chat & Collaboration

Discord

Community chat & voice (cloud) (web UI)

Slack

Team chat & workflows (cloud) (web UI)

Buzz

Group chat for humans + AI agents (Block; cloud or self-hosted) (web UI)

Matrix (Synapse + Element)

Open, federated chat — self-hosted (Docker) (port 8008, web UI)

Mattermost

Open-source Slack alternative (self-hosted) (port 8065, web UI)

Rocket.Chat

Open-source team chat platform (self-hosted) (port 3000, web UI)

Zulip

Threaded team chat (self-hosted or cloud) (port 80, web UI)

Ergo (IRCd)

Modern single-binary IRC server (IRCv3, built-in services) (port 6667)

InspIRCd

Modular C++ IRC server (self-hosted) (port 6667)

UnrealIRCd

Popular full-featured IRC server (self-hosted) (port 6667)

Solanum (IRCd)

The IRCd that runs Libera.Chat (charybdis fork) (port 6667)

ZNC (IRC bouncer)

IRC bouncer — stay connected, replay history (port 6697, web UI)

The Lounge

Self-hosted web IRC client (always-on) (port 9000, web UI)

KiwiIRC

Web IRC client + gateway (self-hosted) (port 7778, web UI)

Atheme (IRC services)

NickServ/ChanServ services for TS6 IRCds

Anope (IRC services)

IRC services (NickServ/ChanServ) for many IRCds

Libera.Chat

Public IRC network (FOSS communities) — connect, not self-host (port 6697)

Open OSCAR Server

Self-hostable AIM/ICQ (OSCAR) server — run your own AIM (port 5190)

AIM OSCAR Server

Alternative OSCAR server — make your own AIM chat network (port 5190)

Telegram

Cloud messaging with a powerful Bot API (cloud) (web UI)

TeamSpeak

Low-latency voice server (self-hosted) (port 9987)

Mumble

Open-source low-latency voice (self-hosted) (port 64738)

Jitsi Meet

Open-source video conferencing (self-hosted) (port 8443, web UI)

SimpleX Chat

Private messenger with no user IDs (self-hostable relays)

Session

Onion-routed private messenger (no phone number)

Prosody

Lightweight XMPP (Messages) server (port 5222, brew: prosody)

6.26SMS & iMessage Gateways

Gammu (gammu-smsd)

Send/receive SMS via a GSM modem (self-hosted)

Kannel

Open-source SMS/WAP gateway (self-hosted) (port 13013)

ModemManager

Linux modem daemon — SMS via mmcli (self-hosted)

SMS Gateway for Android

Turn an Android phone into an SMS HTTP API (self-hosted) (web UI)

SMSSync

Android SMS↔webhook relay (self-hosted)

Android + Tasker

DIY SMS gateway via Tasker automation (self-hosted)

Home Assistant SMS

SMS notify/receive in Home Assistant (Gammu)

AirMessage

Self-hosted iMessage bridge — server on this Mac (port 1359)

BlueBubbles

Self-hosted iMessage bridge — server on this Mac (web UI)

6.27Business Messaging

KakaoTalk AlimTalk

Kakao business notification templates — Korea (cloud) (web UI)

LINE Official Account

Customer messaging & loyalty on LINE (web UI)

WhatsApp Business Platform

WhatsApp business messaging — templates, catalogues (live) (web UI)

WeChat Official Account

WeChat business account — China (broadcasts, menus, mini-programs) (web UI)

Zalo Official Account

Zalo business account — Vietnam (broadcasts & chat) (web UI)

KakaoTalk Channel

Kakao business channel — Korea (friend broadcasts & chat) (web UI)

Viber Business Messages

Branded business messages on Viber (web UI)

Facebook Messenger

Messenger business messaging (Meta) (web UI)

Instagram Messaging

Instagram DM API for business (Meta) (web UI)

Apple Messages for Business

Store↔customer chat inside iMessage (web UI)

RCS Business Messaging

Branded rich business messaging (SMS successor) (web UI)

Attentive

SMS & email marketing for retail/DTC (web UI)

Postscript

SMS marketing for Shopify stores (web UI)

Omnisend

Email & SMS marketing automation (e-commerce) (web UI)

SimpleTexting

Business SMS/MMS marketing & two-way texting (web UI)

ManyChat

Chat marketing bots — Instagram/Messenger/WhatsApp (live) (web UI)

Respond.io

Omnichannel customer-conversation inbox (web UI)

Gupshup

Conversational messaging API (WhatsApp & more) (web UI)

WATI

WhatsApp Business team inbox & broadcasts (web UI)

Charles

Conversational commerce on WhatsApp (web UI)

Trengo

Multichannel team inbox for customer chat (web UI)

Intercom

Customer messaging & proactive marketing (live) (web UI)

Gorgias

E-commerce helpdesk with chat & proactive messages (web UI)

6.28Calendars

Calendar Discovery

built-in tool

Calendar Health

built-in tool

Event Server Monitoring

built-in tool

ICS Feeds

built-in tool

Radicale

Lightweight CalDAV/CardDAV server (port 5232, web UI)

Baïkal

PHP CalDAV/CardDAV server (SabreDAV) (port 80, web UI)

Nextcloud Calendar

Calendar app on a Nextcloud server (web UI)

DAViCal

PHP/PostgreSQL CalDAV server (port 80, web UI)

SOGo

Groupware (CalDAV/CardDAV/ActiveSync) (port 20000, web UI)

Apple Calendar Server

Migrate the old macOS Server CalDAV (port 8443)

Google Calendar

Hosted calendar (CalDAV / API) (web UI)

Outlook Calendar

Microsoft 365 calendar (Graph API) (web UI)

Calendly

Hosted scheduling / booking links (web UI)

Cal.com

Open-source scheduling (self-hostable) (web UI)

6.29Identity & Accounts

Accounts

built-in tool

Open Directory

Apple's built-in LDAP / Kerberos directory (port 389)

Dropbox Business

Team management & audit-log APIs for Dropbox Business (cloud) (web UI)

Keycloak

Open-source identity & access management (SSO) (port 8080, web UI)

FreeIPA

Open-source identity management (LDAP/Kerberos, self-hosted) (port 443, web UI)

Authentik

Self-hosted identity provider (Docker) (port 9000, web UI)

Okta

Workforce identity & SSO — live API health (web UI)

Microsoft Entra ID

Azure AD — cloud identity & SSO (Graph health) (web UI)

Google Workspace

Google's identity & productivity suite (Admin SDK) (web UI)

AD FS

Active Directory Federation Services (on-prem SSO)

Authenticate.com

Identity verification & KYC API (cloud) (web UI)

6.30Customer Identity

WorkOS

B2B auth — SSO, Directory Sync, AuthKit (live) (web UI)

Auth0

Hosted authentication platform (Okta) (web UI)

Clerk

Hosted auth & user management for web apps (cloud) (web UI)

Supabase Auth

Auth from the Supabase stack (cloud or local) (port 54321, web UI)

Better Auth

Framework-agnostic auth library for TypeScript apps

FusionAuth

Self-hostable CIAM / auth server (OAuth2/OIDC/SAML) (port 9011, web UI)

Ory Kratos

Headless identity & user management (self-hosted) (port 4433)

Ory Hydra

OAuth2 & OpenID Connect provider (self-hosted) (port 4444)

Zitadel

Self-hostable identity platform (OIDC/SAML, multi-tenant) (port 8080, web UI)

Authelia

SSO + 2FA auth gateway for your services (port 9091, web UI)

6.31Decentralized Identity

Hyperledger Aries (ACA-Py)

Issue/verify Verifiable Credentials over DIDComm (self-hosted)

walt.id

Open-source SSI stack — issuer, verifier & identity wallet (web UI)

Veramo

JS/TS framework for DIDs & Verifiable Credentials

6.32Version Control

Git

built-in tool

Gitea

Lightweight self-hosted Git service (port 3000, web UI, brew: gitea)

Forgejo

Community fork of Gitea (Codeberg) (port 3000, web UI, brew: forgejo)

GitHub

The Git host — live account dashboard (cloud) (web UI)

GitLab

Full DevOps platform — repos, MRs, registry (cloud or self-hosted) (port 443, web UI)

GitHub Enterprise

Self-hosted / managed GitHub for organizations (port 443, web UI)

Bitbucket

Atlassian Git hosting — Cloud or self-hosted (Data Center) (port 443, web UI)

Codeberg

Free community Git hosting (Forgejo, nonprofit) (port 443, web UI)

SourceHut

Lightweight, email-driven Git suite (cloud or self-hosted) (port 443, web UI)

AWS CodeCommit

Managed private Git repositories on AWS (API) (port 443, web UI)

Pierre

Fast code review & collaboration on Git (cloud) (web UI)

Graphite

Stacked-PR code review on top of GitHub (cloud + CLI) (web UI)

Phabricator / Phorge

Self-hosted code review & repos (now maintained as Phorge) (port 443, web UI)

SourceForge

Open-source project hosting & downloads (cloud) (port 443, web UI)

Google Code (archive)

Defunct — read-only archive for migrating old projects (web UI)

Subversion (SVN)

Apache Subversion — centralized version control (self-hosted) (port 3690)

Jujutsu (jj)

Git-compatible VCS with a simpler, more powerful model

gh-dash

Terminal dashboard for GitHub PRs & issues (gh extension)

code.storage

Code hosting / storage platform (cloud) — see code.storage (web UI)

Entire

Code collaboration platform (cloud) — see entire.io (web UI)

Gitea Actions Runner

CI runner for Gitea/Forgejo Actions

Webhook (git-deploy)

Push-to-deploy via webhooks (port 9000, brew: webhook)

6.33CI/CD

Woodpecker CI

Lightweight container-native CI (port 8000, web UI)

GitHub Actions

CI/CD in GitHub — live build & deploy monitor (cloud) (web UI)

CodeRabbit

AI code reviewer for pull requests (cloud + CLI/IDE) (web UI)

GitLab CI/CD

Pipelines built into GitLab (cloud or self-hosted) (web UI)

CircleCI

Cloud CI/CD with fast parallelism (cloud) (web UI)

Depot

Remote build acceleration — Docker & GitHub Actions runners (cloud) (web UI)

Bitbucket Pipelines

CI/CD built into Bitbucket Cloud (cloud) (web UI)

Travis CI

Hosted CI for open source & teams (cloud) (web UI)

Buildkite

Hybrid CI — your agents, their dashboard (cloud) (web UI)

Jenkins

The classic self-hosted automation server (port 8080, web UI, brew: jenkins-lts)

Drone CI

Container-native CI server (self-hosted) (port 80, web UI)

Concourse

Pipeline-centric CI with reproducible builds (self-hosted) (port 8080, web UI)

TeamCity

JetBrains CI/CD server (self-hosted or cloud) (port 8111, web UI)

GoCD

Open-source CI/CD with value-stream pipelines (self-hosted) (port 8153, web UI)

Argo CD

GitOps continuous delivery for Kubernetes (self-hosted) (port 8080, web UI)

Flux CD

GitOps toolkit for Kubernetes (self-hosted)

Spinnaker

Multi-cloud continuous delivery (self-hosted) (port 9000, web UI)

Azure DevOps

Azure Pipelines, Repos, Boards & Artifacts (cloud) (web UI)

Buildkite Agent

Self-hosted runner for Buildkite pipelines

Jenkins Agent

Build node that connects to a Jenkins controller

GitHub Actions Runner

Self-hosted runner for GitHub Actions

Blacksmith

Managed high-performance CI runners for GitHub Actions (cloud) (web UI)

GitLab Runner

Self-hosted runner for GitLab CI/CD (brew: gitlab-runner)

6.34Build & Compile

Build & Render Farm

built-in tool

Workbox

Google's service-worker libraries for PWAs

Vite PWA Plugin

Zero-config PWA for Vite (vite-plugin-pwa)

Next.js PWA

PWA/service-worker support for Next.js

Nuxt PWA Module

PWA module for Nuxt (@vite-pwa/nuxt)

Xcode Build / Xcode Cloud

Apple's build system (xcodebuild) + Xcode Cloud CI

Bazel

Fast, scalable multi-language build system (Google)

Tuist

Xcode project generation & build optimization

Buck2

Meta's fast, hermetic multi-language build system

CMake

Cross-platform build-system generator (C/C++)

Ninja

Small, very fast build backend

Meson

Fast, user-friendly build system (Ninja backend)

Gradle

JVM/Android build automation with build cache

Apache Maven

Java build & dependency management

distcc

Distribute C/C++ compiles across machines

Icecream (icecc)

Distributed compiler with central scheduler

Bazel Remote Execution

Run Bazel actions on a remote farm (RBE)

BuildGrid

Open-source Remote Execution API server (self-hosted)

Incredibuild

Commercial distributed build acceleration

ccache

Compiler cache for C/C++ rebuilds

sccache

Shared compiler cache (C/C++/Rust) with cloud backends

Bazel Remote Cache

Shared HTTP/gRPC cache for Bazel (self-hosted) (port 8080)

Tuist Cache

Binary caching for Xcode builds (Tuist)

6.35Internal Developer Portals

Backstage

Spotify's open-source developer portal framework (self-hosted) (port 7007, web UI)

Port

No-code internal developer portal (cloud) (web UI)

Cortex

Service catalogue with scorecards & maturity (cloud) (web UI)

OpsLevel

Service maturity & ownership portal (cloud) (web UI)

Humanitec

Platform orchestrator for internal platforms (cloud + agent) (web UI)

Score

Open workload spec for portable deployments (CLI)

Roadie

Managed (hosted) Backstage (cloud) (web UI)

6.36Infrastructure as Code

Terraform

HashiCorp's declarative infrastructure as code (CLI)

OpenTofu

Open-source, community fork of Terraform (CLI)

Pulumi

Infrastructure as code in real languages (CLI / cloud)

Ansible

Agentless configuration management & automation (CLI)

Chef

Policy-as-code configuration management (Progress Chef)

Puppet

Declarative configuration management at scale (Perforce)

Salt

Event-driven remote execution & config management (CLI)

Packer

Build identical machine images for any platform (CLI)

AWS CloudFormation

Native AWS infrastructure as code (templates / CLI) (web UI)

AWS CDK

Define AWS infra in code, synth to CloudFormation (CLI)

6.37API Testing & Synthetic Monitoring

Postman

API platform — build, test, mock & monitor (app / cloud) (web UI)

Bruno

Open-source, offline, git-friendly API client (app / CLI)

Insomnia

API client for REST, GraphQL & gRPC (app)

Grafana k6

Developer-centric load & performance testing (CLI)

Artillery

Load testing & smoke tests for APIs and services (CLI)

Checkly

Monitoring-as-code — API checks & browser synthetics (cloud + CLI) (web UI)

Changedetection.io

Website change detection & notifications (port 5000, web UI)

6.38Proxies & Load Balancers

Reverse Proxy

built-in tool

Debug Share

built-in tool

ProxySQL

High-performance MySQL proxy (port 6033, brew: proxysql)

MySQL Router

Routing for MySQL InnoDB Cluster (port 6446)

Nginx Proxy Manager

Web-UI reverse proxy (Docker) (port 81, web UI)

keepalived

VRRP virtual IP failover + LVS load balancing

6.39Proxy Gateways

HAProxy

TCP/HTTP load balancer & proxy (brew: haproxy)

Traefik

Container-native reverse proxy & LB (port 8080, web UI, brew: traefik)

Squid

Caching forward proxy (HTTP/HTTPS/FTP) (port 3128, brew: squid)

3proxy

Tiny multi-protocol proxy (HTTP/SOCKS) (port 3128)

Tinyproxy

Lightweight HTTP/HTTPS forward proxy (port 8888, brew: tinyproxy)

6.40CDN & Edge

Cloudflare

built-in tool

Akamai

Enterprise CDN, security & edge compute (cloud) (web UI)

Fastly

Real-time CDN with VCL/Compute edge (cloud) (web UI)

Imperva

WAF-first CDN & DDoS protection (cloud) (web UI)

Amazon CloudFront

AWS CDN tied to S3/EC2 origins (cloud) (web UI)

Google Cloud CDN

GCP CDN on global load balancing (cloud) (web UI)

Azure Front Door

Microsoft's global entry point: CDN + WAF + LB (cloud) (web UI)

6.41Hosting

Hostinger

built-in tool

DigitalOcean

built-in tool

Vultr

built-in tool

Linode (Akamai)

built-in tool

Hetzner

built-in tool

Sakura Cloud

built-in tool

ConoHa

built-in tool

Cloudways

built-in tool

SiteGround

built-in tool

WP Engine

built-in tool

Kinsta

built-in tool

Pressable

built-in tool

Contabo

built-in tool

Cloud Servers

built-in tool

Abacus SuperComputer

Always-on Ubuntu VM from Abacus.AI (2 vCPU / 8 GB, SSH + root) (web UI)

Fly.io

Deploy apps as microVMs on Fly's global edge (cloud CLI)

Coolify

Self-hosted PaaS (Heroku/Netlify/Vercel alt.) (port 8000, web UI)

Dokploy

Open-source deployment platform (PaaS) (port 3000, web UI)

CapRover

Self-hosted PaaS on Docker Swarm (port 3000, web UI)

Kamal

Deploy containers to your own servers over SSH (37signals)

Dokku

Minimal self-hosted PaaS (git push deploy)

6.42AWS Control

S3 Buckets

built-in tool

EC2 Instances

built-in tool

Lightsail

built-in tool

CloudFront/CDN

built-in tool

Route 53 DNS

built-in tool

RDS Databases

built-in tool

DynamoDB

built-in tool

CloudWatch Logs

built-in tool

SNS Topics

built-in tool

Billing Alerts

built-in tool

IAM Key Warnings

built-in tool

6.43FinOps & Cloud Cost

Infracost

Cost estimates for Terraform, in CI (self-hosted CLI / cloud)

OpenCost

CNCF open-source Kubernetes cost monitoring (self-hosted) (port 9003, web UI)

Kubecost

Kubernetes cost visibility & optimization (self-hosted / cloud) (port 9090, web UI)

CloudZero

Cloud cost intelligence & unit economics (cloud) (web UI)

Vantage

Multi-cloud cost reporting & optimization (cloud) (web UI)

Finout

No-agent FinOps platform with unified cost (cloud) (web UI)

CloudHealth

Multi-cloud cost & governance (VMware/Broadcom, cloud) (web UI)

AWS Cost Explorer

Native AWS cost analysis & forecasting (API) (web UI)

GCP Cloud Billing

Google Cloud billing reports, budgets & BigQuery export (API) (web UI)

Azure Cost Management

Native Azure (and AWS) cost analysis & budgets (API) (web UI)

6.44Containers

Containers

built-in tool

Kubernetes Clusters

built-in tool

Docker

built-in tool

OrbStack

built-in tool

Vagrant

built-in tool

Kamal

built-in tool

Proxmox VE

Open-source virtualization — KVM VMs + LXC containers (port 8006, web UI)

VMware vSphere

Enterprise virtualization — ESXi hypervisor + vCenter (port 443, web UI)

Microsoft Hyper-V

Windows Server hypervisor (Type-1)

XCP-ng

Open-source Xen hypervisor (XenServer alternative) (port 443, web UI)

Nutanix

HCI platform — AHV hypervisor + Prism management (port 9440, web UI)

Scale Computing HyperCore

SC//HyperCore HCI appliance (HC3) — REST API on :443 (port 443, web UI)

VergeOS

Verge.io — integrated virtualization, storage and networking (port 443, web UI)

HPE Morpheus

Hybrid-cloud management & orchestration (REST API) (port 443, web UI)

Platform9

Managed Kubernetes / private cloud (SaaS control plane) (port 443, web UI)

Azure Local

Azure Stack HCI successor — monitored via Azure ARM, no local API (web UI)

OpenShift Virtualization

Run VMs alongside containers on OpenShift (KubeVirt) (web UI)

OpenStack

Open-source private-cloud IaaS platform (web UI)

VMware vMotion

Live-migrate running VMs between ESXi hosts

Proxmox VE Live Migration

Live-migrate KVM VMs across Proxmox cluster nodes

Hyper-V Live Migration

Move running Hyper-V VMs between hosts with no downtime

Watchtower

Auto-update running Docker containers

Podman

Daemonless, Docker-compatible containers

Apple Container

Apple's native `container` tool — Linux containers in per-container VMs

Lima

Linux virtual machines (container machines) on macOS

Colima

Container runtimes on macOS via Lima (Docker/containerd/k8s)

OrbStack

Fast Docker & Linux machines for macOS

Kubernetes

The container orchestrator (kubectl) (port 6443)

Helm

The Kubernetes package manager (charts)

Dev Containers (VS Code)

Reproducible dev environments in a container

K3s

Lightweight certified Kubernetes (self-hosted) (port 6443)

minikube

Local single-node Kubernetes for development

kind

Kubernetes IN Docker — disposable clusters

k3d

k3s in Docker — lightweight multi-node clusters

k0s

Zero-friction single-binary Kubernetes (port 6443)

MicroK8s

Canonical's low-ops Kubernetes (snap) (port 16443)

RKE2

Rancher's security-focused Kubernetes (Gov-grade) (port 6443)

Talos Linux

API-managed immutable OS purpose-built for Kubernetes (port 50000)

kubeadm

The official cluster bootstrapper (vanilla K8s) (port 6443)

OpenShift / OKD

Red Hat's enterprise Kubernetes platform (port 6443, web UI)

Rancher Desktop

Desktop Kubernetes + container runtime for Mac

nerdctl

Docker-compatible CLI for containerd

Docker Swarm

Docker-native clustering (docker swarm / stack) (port 2377)

Portainer

Web UI for Docker & Kubernetes (self-hosted) (port 9443, web UI)

Rancher

Multi-cluster Kubernetes management (self-hosted) (port 443, web UI)

Nomad

HashiCorp workload orchestrator (self-hosted) (port 4646, web UI)

6.45Service Mesh (Kubernetes)

Istio

Envoy-based service mesh for Kubernetes

Linkerd

Lightweight, fast CNCF service mesh

Consul Connect

HashiCorp Consul service mesh & discovery (port 8500, web UI)

Cilium Service Mesh

eBPF-based, sidecarless service mesh & CNI

Kuma

Universal service mesh (Kong, CNCF) (port 5681, web UI)

Gloo Mesh

Istio-based multi-cluster service mesh (solo.io)

NGINX Service Mesh

Lightweight service mesh on NGINX/NGINX Plus (F5)

AWS App Mesh

Managed Envoy service mesh on AWS (ECS/EKS/EC2)

Kong Gateway

Cloud-native API gateway on Envoy/Nginx (self-hosted / cloud) (port 8001)

Tyk

Open-source API gateway & management (self-hosted / cloud) (port 8080, web UI)

Apache APISIX

Dynamic, high-performance API gateway (self-hosted) (port 9180, web UI)

Envoy Gateway

Gateway API management plane for Envoy Proxy (self-hosted)

6.46Apps & CMS

WordPress

built-in tool

WordPress Sites

built-in tool

Convex

built-in tool

RevenueCat

built-in tool

Drupal

built-in tool

Joomla

built-in tool

Statamic

built-in tool

Grav

built-in tool

Kirby

built-in tool

Craft CMS

built-in tool

ClassicPress

WordPress fork without the block editor (web UI)

Backdrop CMS

Drupal 7 fork for small-to-medium sites (web UI)

Bedrock (Roots)

Composer-managed WordPress boilerplate

Trellis (Roots)

Ansible server provisioning for WordPress

WordPress Playground

WordPress running in WebAssembly — no server needed (port 9400, web UI)

Ghost

Modern publishing & newsletter platform (port 2368, web UI)

Webflow

Visual website builder & hosted CMS (cloud) (web UI)

Framer

Design-first website builder with hosted CMS (cloud) (web UI)

Instatic

Self-hosted visual CMS with an AI page editor (open-source) (port 3001, web UI)

6.47Knowledge & Memory

Obsidian

built-in tool

Vault Notes

built-in tool

GraphRAG

Graph-based retrieval-augmented generation (Microsoft)

Graphify

Turn a codebase into a queryable knowledge graph (AI coding-assistant skill)

Logseq

Local-first outliner & PKM (Markdown/Org)

Notion

All-in-one workspace — docs, wikis, databases (cloud)

DokuWiki

Flat-file PHP wiki — the closest macOS Server “Wiki” replacement (port 80, web UI)

MediaWiki

The wiki engine behind Wikipedia (PHP/MySQL) (port 80, web UI)

Wiki.js

Modern self-hosted wiki (Node.js) (port 3000, web UI)

BookStack

Self-hosted docs/wiki organised as books (PHP) (port 6875, web UI)

Outline

Self-hosted team knowledge base (real-time) (port 3000, web UI)

Trilium Notes

Hierarchical personal notes (self-hosted server + app) (port 8080, web UI)

Zotero

Reference & research manager (app + API)

Readwise

Highlights sync & read-later (cloud API)

Memos

Lightweight, privacy-first notes/memo hub (port 5230, web UI)

Linkding

Minimal, fast self-hosted bookmark manager (port 9090, web UI)

Karakeep

AI bookmark/read-it-later (formerly Hoarder) (port 3000, web UI)

Wallabag

Self-hosted read-it-later (Pocket alternative) (port 80, web UI)

Docmost

Open-source collaborative wiki & docs (Confluence/Notion alt.) (port 3000, web UI)

AFFiNE

Docs + whiteboard + database (Notion/Miro alt.) (port 3010, web UI)

AppFlowy

Open-source Notion alternative (docs/boards/DBs) (web UI)

Joplin Server

Sync server for Joplin notes (E2EE) (port 22300, web UI)

Shiori

Simple self-hosted bookmark manager (Go) (port 8080, web UI)

6.48E-Commerce

Store Health

built-in tool

Sales Channels

built-in tool

Square

built-in tool

WooCommerce

WordPress e-commerce plugin (PHP) (web UI)

Adobe Commerce (Magento)

Enterprise PHP commerce platform (port 80, web UI)

Shopware

Symfony-based commerce platform (PHP) (port 80, web UI)

Saleor

GraphQL-first headless commerce (Python) (port 8000, web UI)

Medusa

Node.js headless commerce engine (port 9000, web UI)

Vendure

Node.js/GraphQL headless commerce (port 3000, web UI)

Stripe

Payments & checkout API (cloud) (web UI)

PayPal

Online payments & checkout (cloud) (web UI)

DOKU

Indonesian payment gateway (cards, e-wallets, VA, QRIS) (web UI)

Mollie

European payments (iDEAL, cards, SEPA) (cloud) (web UI)

Paddle

Merchant-of-record for software sales (cloud) (web UI)

Lemon Squeezy

Digital-products storefront & MoR (legacy — moving to Stripe) (web UI)

Braintree

PayPal's card/wallet gateway (GraphQL API) (cloud) (web UI)

PAY.JP

Japanese card payments API (cloud) (web UI)

KOMOJU

Japanese multi-method payments (konbini, cards, wallets) (web UI)

Adyen

Enterprise payments platform (webhook/report-driven) (web UI)

Wise

Multi-currency business account & payouts (cloud) (web UI)

GMO Payment Gateway

Japan's largest PSP (per-order API; no list API) (web UI)

Shopify

Hosted commerce platform & channel (cloud) (web UI)

Amazon

Amazon marketplace selling channel (cloud) (web UI)

FedEx

Shipping rates, labels & tracking (cloud) (web UI)

UPS

Shipping rates, labels & tracking (cloud) (web UI)

DHL

Shipping rates, labels & tracking (cloud) (web UI)

eBay Seller Hub

eBay marketplace selling channel (cloud) (web UI)

Etsy

Handmade/vintage & POD marketplace (cloud) (web UI)

Walmart Marketplace

Walmart marketplace selling channel (cloud) (web UI)

QR & Link Health

built-in tool

BL.INK

Enterprise link management (cloud) (web UI)

Bitly

Links, QR codes, analytics (cloud) (web UI)

Rebrandly

Branded short domains (cloud) (web UI)

Short.io

Teams, custom domains (cloud) (web UI)

Dub.co

Modern marketing links & QR (open-source core) (web UI)

QR Code Generator PRO

Dynamic QR codes (cloud) (web UI)

Beaconstac (Uniqode)

QR analytics & management (cloud) (web UI)

Flowcode

Marketing QR dashboards (cloud) (web UI)

Scanova

QR campaign management (cloud) (web UI)

QR TIGER

Dynamic QR management (cloud) (web UI)

GS1 Digital Link

Own your product-QR resolver (self-host or SaaS) (web UI)

6.50Student Information Systems

PowerSchool SIS

K-12 student information system (cloud) (web UI)

PowerSchool Attendance

Attendance tracking within PowerSchool (cloud) (web UI)

Blackbaud SIS

Independent/private-school SIS (cloud) (web UI)

FACTS SIS

Private/faith-based school SIS (cloud) (web UI)

Infinite Campus

K-12 SIS & state reporting (cloud) (web UI)

Veracross

All-in-one independent-school platform (cloud) (web UI)

openSIS

Open-source student information system (self-hosted) (web UI)

RosarioSIS

Open-source SIS (PHP/PostgreSQL, self-hosted) (web UI)

SchoolPass

Attendance, dismissal & safety (cloud) (web UI)

RFID/NFC Attendance

Tap-card attendance with RFID/NFC readers (self-hosted) (web UI)

6.51Learning Management

Canvas LMS

Instructure Canvas — courses, assignments, grading (web UI)

Blackboard Learn

Higher-ed LMS (cloud) (web UI)

Schoology

K-12 LMS by PowerSchool (cloud) (web UI)

Google Classroom

Google's classroom & assignment tool (cloud) (web UI)

Moodle

Open-source LMS (self-hosted, PHP) (web UI)

Open edX

MOOC-scale open LMS (self-hosted) (web UI)

ILIAS

Open-source LMS (self-hosted, PHP) (web UI)

BigBlueButton

Open-source virtual classroom (self-hosted) (web UI)

Zoom

Video meetings & online classes (app)

Google Meet

Google's video meetings (cloud) (web UI)

ExamSoft

Secure exam delivery & analytics (cloud) (web UI)

ProctorU

Online exam proctoring (cloud) (web UI)

TAO Testing

Open-source assessment platform (self-hosted) (web UI)

6.52Digital Library

EBSCOhost

Research databases & e-journals (cloud) (web UI)

ProQuest

Dissertations, e-journals & databases (cloud) (web UI)

JSTOR

Academic journals & books archive (cloud) (web UI)

Koha

Open-source integrated library system (self-hosted) (web UI)

DSpace

Open-source institutional repository (self-hosted) (web UI)

Greenstone

Open-source digital-library builder (self-hosted) (web UI)

6.53Campus & School Ops

aSc Timetables

School timetable generator (desktop)

Mimosa Scheduling

Timetabling / scheduling software (desktop)

FET Timetabling

Open-source automatic timetabling (self-hosted/desktop)

Slate Admissions

Admissions & enrolment CRM (cloud) (web UI)

OpenApply

Admissions & enrolment for K-12 (cloud) (web UI)

Finalsite Enrolment

School websites & enrolment (cloud) (web UI)

FACTS Tuition Management

Tuition billing & payment plans (cloud) (web UI)

Flywire Education Payments

Cross-border tuition payments (cloud) (web UI)

StarRez

Student housing & residential life (cloud) (web UI)

eRezLife

Residence life & housing management (cloud) (web UI)

Ellucian Banner

Higher-ed ERP / student system (cloud or self-hosted) (web UI)

Workday Student

Cloud ERP for higher education (cloud) (web UI)

ParentSquare

School-home communication (cloud) (web UI)

Remind

Teacher-family messaging (cloud) (web UI)

Asset Panda

Asset & device tracking (cloud) (web UI)

Incident IQ

K-12 IT helpdesk & asset management (cloud) (web UI)

ClassLink

Education SSO & rostering (cloud) (web UI)

6.54Sourcing & Suppliers

AliExpress

Global supplier marketplace for drop-shipping (cloud) (web UI)

Alibaba

B2B wholesale sourcing (cloud) (web UI)

CJdropshipping

Sourcing + warehousing + fulfilment (cloud) (web UI)

Spocket

US/EU-supplier drop-ship marketplace (cloud) (web UI)

Zendrop

Drop-ship sourcing & auto-fulfillment (cloud) (web UI)

SaleHoo

Vetted supplier directory (cloud) (web UI)

DSers

AliExpress order automation (official) (cloud) (web UI)

Printful

Print-on-demand & fulfilment (cloud) (web UI)

Printify

Print-on-demand marketplace (cloud) (web UI)

Gelato

Global/local print-on-demand network (cloud) (web UI)

Gooten

Print-on-demand fulfilment platform (cloud) (web UI)

6.56Shipping & Fulfilment

Drop-shipping Health

built-in tool

AfterShip

Universal shipment tracking across 1,000+ carriers (cloud) (web UI)

ShipStation

Multi-channel order & label management (cloud) (web UI)

Easyship

Global shipping rates, duties & labels (cloud) (web UI)

Shippo

Multi-carrier rates, labels & tracking API (cloud) (web UI)

Pirate Ship

Free, discounted USPS/UPS labels (cloud) (web UI)

6.57Inventory Sync

SkuVault

Warehouse & inventory management (cloud) (web UI)

Cin7

Inventory & order management (cloud) (web UI)

Zoho Inventory

Multi-channel inventory & order management (cloud) (web UI)

Katana Cloud Inventory

Manufacturing & inventory control (cloud) (web UI)

6.58Profit Analytics

Triple Whale

E-commerce profit & attribution dashboard (cloud) (web UI)

Lifetimely

P&L and LTV analytics for Shopify (cloud) (web UI)

BeProfit

Profit & expense tracking dashboard (cloud) (web UI)

6.59Mesh Networking

RNS Nodes

built-in tool

Reticulum

Cryptography-based mesh networking stack (any medium)

Nomad Network (NomadNet)

Resilient comms over Reticulum (pages, files, messaging)

Sideband

LXMF messaging app over Reticulum (desktop/mobile)

Meshtastic

LoRa mesh radio for text & location (off-grid)

RNode LoRa Devices

Open LoRa radio interface for Reticulum (flash & configure)

Yggdrasil

Self-arranging encrypted IPv6 mesh (experimental)

cjdns / Hyperboria

Encrypted IPv6 mesh routing (source-routed)

B.A.T.M.A.N.-adv

Layer-2 community Wi-Fi mesh routing (Linux)

OLSR (olsrd)

Optimized Link State Routing for MANETs

Babel (babeld)

Robust distance-vector mesh routing protocol

Briar

P2P messaging over Tor, Wi-Fi & Bluetooth

AREDN

Amateur-radio high-speed mesh (ham licence)

qaul

Internet-independent P2P mesh messaging app

Serval Mesh

Off-grid mesh comms (Serval Project)

Ratspeak

Private, account-free mesh messaging (Reticulum-based)

6.60Anonymity Networks

Tor

Onion-routing anonymity network (client/relay/bridge/onion service) (port 9050, brew: tor)

I2P

Garlic-routed network — router, tunnels, eepsites, messaging (port 7070, web UI)

6.61Secrets & Vaults

Vault Links

built-in tool

Bitwarden

Password manager — cloud or official self-host (web UI)

Vaultwarden

Self-hosted Bitwarden-compatible server (Docker) (port 8222, web UI)

HashiCorp Vault

Secrets, PKI & dynamic credentials (self-hosted) (port 8200, web UI)

Step CA

Your own private certificate authority (self-hosted) (port 8443)

Let's Encrypt

Free TLS certificates via ACME — health & renewal monitor

Infisical

Open-source secrets for app configs (cloud or self-hosted) (port 8080, web UI)

Doppler

Hosted secrets & config manager (cloud) (web UI)

1Password SCIM Bridge

Automated 1Password user provisioning (self-hosted bridge) (port 3002)

1Password

Password manager with developer secrets API (cloud) (web UI)

Keeper Security

Password manager & Secrets Manager (cloud API) (web UI)

6.62Monitoring

Disk Health

built-in tool

Service Guardian

built-in tool

Grafana

Dashboards for any data source (self-hosted) (port 3000, web UI, brew: grafana)

Prometheus

Time-series metrics & alerting (self-hosted) (port 9090, web UI, brew: prometheus)

Alertmanager

Route and deduplicate Prometheus alerts (self-hosted) (port 9093, web UI)

Node Exporter

Unix host metrics for Prometheus (self-hosted) (port 9100, web UI, brew: node_exporter)

Windows Exporter

Windows host metrics for Prometheus (remote) (port 9182, web UI)

Zabbix

Enterprise monitoring — agents, SNMP, triggers (self-hosted) (port 8080, web UI)

Nagios Core

The classic check-based monitor (self-hosted) (port 80, web UI)

Checkmk

Auto-discovering IT monitoring (self-hosted) (port 8080, web UI)

Healthchecks.io

Cron & heartbeat monitoring (cloud or self-hosted) (web UI)

Datadog

Hosted metrics, logs, traces and synthetics (SaaS) (web UI)

New Relic

Hosted APM, infrastructure and logs (SaaS) (web UI)

Sentry

Error tracking and performance monitoring (web UI)

Honeycomb

Observability for high-cardinality events and traces (web UI)

Dynatrace

Enterprise observability and AIOps platform (web UI)

Matomo

Full-featured self-hosted web analytics (port 80, web UI)

Plausible

Lightweight, privacy-first analytics (port 8000, web UI)

Umami

Simple, privacy-focused analytics (Node) (port 3000, web UI)

GoAccess

Real-time access-log analyser (CLI/HTML)

Netdata

Real-time system metrics dashboard (port 19999, web UI, brew: netdata)

Uptime Kuma

Self-hosted uptime monitor (port 3001, web UI)

Scrutiny

S.M.A.R.T. drive health dashboard (port 8080, web UI)

Glances

Cross-platform system monitor (web/API) (port 61208, web UI)

Beszel

Lightweight server monitoring hub + agents (port 8090, web UI)

Speedtest Tracker

Scheduled internet speed tests + history (port 80, web UI)

UptimeRobot

Cloud uptime/SSL monitoring with status pages (web UI)

NUT (Network UPS Tools)

UPS monitoring server (upsd) for many devices (port 3493)

Homepage

Self-hosted services dashboard (gethomepage.dev) (port 3000, web UI)

PeaNUT

Modern web dashboard for NUT UPS servers (port 8080, web UI)

6.63Security Tools

Security

built-in tool

Malware Audit

built-in tool

Security Audit

built-in tool

EDR Fleet

built-in tool

Fail2ban

Bans IPs after suspicious activity (intrusion prevention) (brew: fail2ban)

Wazuh

Open-source SIEM & XDR (self-hosted) (port 443, web UI)

Suricata

High-performance IDS/IPS engine (self-hosted)

Snort

The classic network IDS (self-hosted)

LuLu

Free open-source outbound firewall (macOS app)

Burp Suite

Web app security testing — intercepting proxy & scanner (macOS app) (port 8080)

Yakit

Open-source web security testing platform & MITM (macOS app)

Strix

AI-assisted penetration testing from the local CLI

Fuzzilli

Coverage-guided JavaScript engine fuzzer (reviewed local binaries)

OWASP ZAP

Open-source web-app security scanner (DAST) — spider, active scan, proxy (port 8080)

Little Snitch

Commercial network monitor & firewall (macOS app)

Murus

GUI front-end for the macOS pf firewall (app)

Radio Silence

Lightweight macOS outbound firewall (app)

Vallum

Per-app outbound firewall & throttle (app)

Hands Off!

Per-app network + disk access control (app)

NetBarrier

Two-way macOS firewall (Intego, app)

ClamAV

Open-source antivirus engine (self-hosted) (brew: clamav)

YARA

Pattern-matching engine for malware (self-hosted)

AbuseIPDB

Crowd-sourced IP reputation / blocklist (cloud API) (web UI)

Phishing Catcher

Catch phishing domains from CT logs (self-hosted)

URLhaus

Malware-URL feed & lookup API (cloud · abuse.ch) (web UI)

OpenPhish

Live phishing-URL feed (cloud) (web UI)

MISP

Threat-intelligence sharing platform (self-hosted) (port 443, web UI)

CAPE Sandbox

Malware sandbox w/ config extraction (self-hosted) (port 8000, web UI)

Cuckoo Sandbox

Automated malware-analysis sandbox (self-hosted) (port 8090, web UI)

YARA-X

YARA rewritten in Rust — faster CLI scanner (self-hosted)

Volatility 3

Memory-forensics framework (self-hosted)

capa

Detect capabilities in executables (self-hosted)

oletools

Analyse malicious Office docs / OLE (self-hosted)

radare2

Reverse-engineering framework / disassembler (self-hosted)

binwalk

Firmware / embedded-file carving & analysis (self-hosted)

Nuclei

Template-based vulnerability scanner (self-hosted CLI)

OpenCTI

Cyber threat-intelligence platform (self-hosted) (port 8080, web UI)

TheHive

Security incident-response platform (self-hosted) (port 9000, web UI)

Cortex

Observable analysers & responders engine (self-hosted) (port 9001, web UI)

IntelOwl

OSINT / threat-intel analysis platform (self-hosted) (port 443, web UI)

AlienVault OTX

Open Threat Exchange IOC feed (cloud) (web UI)

Security Onion

NSM + SIEM + IDS Linux distro (self-hosted) (port 443, web UI)

GRR Rapid Response

Remote live-forensics / IR framework (self-hosted) (port 8000, web UI)

OpenEDR

Open-source endpoint detection & response (self-hosted) (web UI)

Santa

macOS binary allowlisting / blocklisting (self-hosted)

KnockKnock

Reveal persistently installed Mac software (self-hosted)

BlockBlock

Monitor & block persistence in real time (self-hosted)

ThreatLocker

Zero Trust app allowlisting & endpoint control (agent + cloud portal)

OPSWAT MetaDefender

Multi-engine malware scanning & file CDR (self-hosted / API) (port 8008, web UI)

osquery

Query your endpoint like a database (agent)

Fleet

Self-hosted osquery fleet manager (web UI + API) (port 8080, web UI)

Velociraptor

Endpoint visibility & DFIR hunting (self-hosted) (port 8889, web UI)

Zeek

Network security monitor / traffic analysis (self-hosted)

OpenVAS / Greenbone

Vulnerability scanning (self-hosted) (port 9392, web UI)

CrowdStrike Falcon

Cloud-native EDR/XDR (macOS sensor + API)

SentinelOne

Autonomous EDR/XDR (macOS agent + API)

Microsoft Defender for Endpoint

Microsoft EDR for macOS (agent + Graph API)

Sophos Central

Endpoint protection / MDR (macOS agent + API)

Bitdefender GravityZone

Endpoint protection / EDR (macOS agent + API)

Malwarebytes

Anti-malware (macOS app; business via Nebula API)

Huntress

Managed EDR/MDR for SMB & MSPs (agent + API)

Jamf Protect

Mac-native endpoint security (agent + API)

LimaCharlie

API-first SecOps cloud / EDR (agent + API)

Airlock Digital

Application allowlisting & execution control (agent + API)

Admin By Request

Endpoint privilege management / just-in-time admin (agent + API)

CyberArk EPM

Endpoint Privilege Manager (agent + API)

BeyondTrust EPM

Endpoint Privilege Management for Mac (agent + API)

AutoElevate (CyberFOX)

MSP privilege elevation & local-admin control (agent + API)

VirusTotal

Multi-engine file/URL reputation (API)

Cloudmersive

Virus-scan & content-protection API (cloud / self-host)

Hybrid Analysis

Malware sandbox (Falcon Sandbox) — API

Kolide

Device trust & posture (osquery-based agent + API)

AdGuard

Ad/tracker blocker app + AdGuard DNS & VPN (commercial)

CyberChef

The cyber-Swiss-army-knife for data (web UI)

6.64Secrets Scanning & Supply Chain Security

Snyk

Developer security — code, deps, containers & IaC (cloud + CLI) (web UI)

Dependabot

Automated dependency-update & security PRs (GitHub) (web UI)

Renovate

Automated dependency updates, any platform (self-hosted / app)

Trivy

All-in-one vuln, secret, IaC & SBOM scanner (self-hosted CLI)

Grype

Fast vulnerability scanner for images & SBOMs (self-hosted CLI)

Syft

Generate SBOMs from images & filesystems (self-hosted CLI)

Cosign

Sign & verify container images and artifacts (self-hosted CLI)

Sigstore

Keyless signing ecosystem — Cosign, Fulcio, Rekor (self-hosted / public)

Chainguard

Minimal, low/zero-CVE container images (cloud + chainctl) (web UI)

Socket

Proactive dependency / supply-chain attack detection (cloud + CLI) (web UI)

GitGuardian

Secrets detection across code & CI (cloud + ggshield CLI) (web UI)

Gitleaks

Open-source secrets scanner for git repos (self-hosted CLI)

TruffleHog

Find & VERIFY leaked secrets across code, git history, cloud & CI (self-hosted CLI)

OSV-Scanner

Dependency vulnerability scanner backed by OSV.dev (self-hosted CLI)

Lynis

Host security auditing & hardening for Unix/Linux/macOS (self-hosted CLI)

Semgrep Supply Chain

SAST + reachable-dependency (SCA) scanning (self-hosted CLI / cloud)

6.65Policy, Compliance & Governance

Vanta

Automated compliance — SOC 2, ISO 27001, HIPAA, GDPR (cloud) (web UI)

Drata

Continuous compliance automation & audit readiness (cloud) (web UI)

Secureframe

Compliance automation across 40+ frameworks (cloud) (web UI)

Sprinto

Compliance automation for fast-moving teams (cloud) (web UI)

Thoropass

Compliance + audit in one (formerly Laika, cloud) (web UI)

Hyperproof

Compliance operations & evidence management (cloud) (web UI)

OneTrust

Privacy, GRC & data governance suite (cloud) (web UI)

LogicGate Risk Cloud

No-code GRC & risk workflow platform (cloud) (web UI)

AuditBoard

Connected risk, audit & compliance platform (cloud) (web UI)

Eramba

Open-source GRC platform (self-hosted) (port 443, web UI)

SimpleRisk

Open-source risk management (self-hosted) (port 443, web UI)

OpenGRC

Open-source governance, risk & compliance (self-hosted) (port 8080, web UI)

OpenControl

Compliance-as-code documentation toolkit (self-hosted CLI)

Open Policy Agent (OPA)

General-purpose policy engine, Rego (self-hosted CLI) (port 8181)

Conftest

Test config files against OPA/Rego policies (CLI)

OPA Gatekeeper

OPA policy admission controller for Kubernetes (self-hosted)

Kyverno

Kubernetes-native policy engine, no new language (self-hosted)

HashiCorp Sentinel

Policy as code for the HashiCorp stack (CLI)

Checkov

Static policy scanning for IaC (self-hosted CLI)

Prowler

Open-source multi-cloud security & compliance scanner (CLI)

Scout Suite

Multi-cloud security-auditing tool (CLI)

CloudQuery

Cloud asset inventory as SQL (self-hosted CLI)

Steampipe

Query cloud APIs with SQL + compliance mods (CLI)

Cloud Custodian

Rules engine for cloud governance & remediation (CLI)

AWS Config

Native AWS resource configuration & compliance (API) (web UI)

AWS Security Hub

Aggregated AWS security findings & standards (API) (web UI)

OpenFGA

Open-source fine-grained authorization (Zanzibar-style, self-hosted) (port 8080)

Authzed / SpiceDB

Zanzibar-style permissions database (self-hosted / cloud) (port 50051)

Permify

Open-source fine-grained authorization service (self-hosted) (port 3476)

Aserto / Topaz

Authorization built on OPA + Zanzibar (self-hosted / cloud) (port 8383)

immudb

Immutable, cryptographically-verifiable database / audit log (self-hosted) (port 3322)

Securiti

Data privacy, security & governance platform (cloud) (web UI)

BigID

Data discovery, privacy & governance at scale (cloud) (web UI)

DataGrail

Privacy platform — DSR & data mapping automation (cloud) (web UI)

Transcend

Privacy & data-rights automation, incl. AI governance (cloud) (web UI)

MineOS

Data-governance & privacy operations platform (cloud) (web UI)

Osano

Consent management & privacy compliance (cloud) (web UI)

OpenMetadata

Open-source metadata, catalogue & lineage platform (self-hosted) (port 8585, web UI)

DataHub

Open-source metadata platform & data catalogue (self-hosted) (port 9002, web UI)

Amundsen

Open-source data discovery & metadata engine (self-hosted) (port 5000, web UI)

Apache Atlas

Metadata & governance for the Hadoop/data ecosystem (self-hosted) (port 21000, web UI)

Microsoft Purview

Data governance, compliance, retention & eDiscovery (cloud) (web UI)

Google Vault

Retention, legal hold & eDiscovery for Google Workspace (cloud) (web UI)

Smarsh

Communications capture, archiving & supervision (cloud) (web UI)

Logikcull

Self-service eDiscovery & legal hold (cloud, Reveal) (web UI)

Everlaw

Cloud litigation & eDiscovery platform (cloud) (web UI)

6.66MDM & Device Management

Apple Business Manager

built-in tool

Kandji

Apple MDM + endpoint security & compliance (agent + API)

Mosyle

Apple MDM + endpoint security (agent + API)

Jamf Pro

Apple MDM — device management & compliance (agent + API)

Microsoft Intune

Cross-platform MDM/MAM in Microsoft 365 (cloud + Graph API)

Addigy

Cloud Apple MDM for MSPs & IT teams (agent + API)

SimpleMDM

Straightforward Apple MDM with a clean REST API (cloud)

JumpCloud

Cloud directory + cross-platform MDM & SSO (agent + API)

Fleet (Apple MDM)

Open-source MDM + osquery for cross-platform device ops (self-hosted) (port 8080, web UI)

Munki

Open-source macOS software deployment (self-hosted)

MicroMDM

Open-source, self-hosted Apple MDM server — the Profile Manager replacement (port 8080)

NanoMDM

Minimal, scalable open-source Apple MDM server (port 9000)

AutoPkg

Automated macOS software packaging (CLI)

6.67Logging & Observability

Graylog

Centralized log management (self-hosted) (port 9000, web UI)

Logstash

ELK's ingest & transform pipeline (self-hosted) (port 9600, brew: logstash-full)

Kibana

ELK's search & dashboard UI (self-hosted) (port 5601, web UI, brew: kibana-full)

Loki

Grafana's log store — like Prometheus, for logs (self-hosted) (port 3100, brew: loki)

Vector

High-performance logs/metrics pipeline (self-hosted) (port 8686, brew: vector)

Fluent Bit

Ultra-light log forwarder (self-hosted) (port 2020, brew: fluent-bit)

Splunk

Enterprise log search, SIEM and observability (port 8000, web UI)

Elastic Cloud

Hosted Elasticsearch, Kibana and observability (web UI)

Dozzle

Live Docker container log viewer (port 8080, web UI)

6.68Incident Management & On-Call

PagerDuty

On-call scheduling & incident response (cloud API) (web UI)

Opsgenie

Alerting & on-call by Atlassian (cloud API) (web UI)

incident.io

Slack-native incident response & on-call (cloud API) (web UI)

Rootly

Slack-native incident management (cloud API) (web UI)

6.69Status Pages

Statuspage

Atlassian's hosted status pages (cloud API) (web UI)

Better Stack

Uptime monitoring, incidents & status pages (cloud API) (web UI)

Gatus

Automated health checks + status page (port 8080, web UI)

6.70Mining

Mining Rigs

built-in tool

Braiins OS+

Open ASIC firmware (Antminer) — autotuning + API (port 4028, web UI)

Hive OS

Cloud mining fleet OS & dashboard (web UI)

Awesome Miner

Windows-based mining management for large fleets (web UI)

LuxOS / Foreman

ASIC firmware (LuxOS) & Foreman fleet management (port 4028, web UI)

6.71AI / LLMs

AI Administrator

built-in tool

AI Models

built-in tool

Ollama

built-in tool

LM Studio

built-in tool

Model Costs

built-in tool

Skill Manager

built-in tool

Open WebUI

built-in tool

RAG Manager

built-in tool

Vector Databases

built-in tool

Firecrawl

built-in tool

Crawl4AI

built-in tool

Apify

built-in tool

Playwright

built-in tool

Browserbase

built-in tool

MLX

Apple-silicon model serving via MLX — CLI server or the oMLX menu-bar app (port 8080)

TurboFieldfare

Gemma 4 26B-A4B on Apple Silicon in ~2 GB of RAM (port 8080)

Cerebras

Very fast hosted inference on wafer-scale hardware (web UI)

MLX (Apple)

Apple's ML framework for Apple Silicon

vLLM

High-throughput LLM inference server (OpenAI-compatible) (port 8000)

llama.cpp Server

Lightweight local LLM server (OpenAI-compatible) (port 8080)

Mojo (Modular MAX)

Modular's AI language + MAX inference server (OpenAI-compatible) (port 8000)

LocalAI

Self-hosted, OpenAI-compatible inference server (port 8080, web UI)

Jan

Private, offline AI desktop app (OpenAI-compatible) (port 1337)

PrivateGPT

Ask questions of your documents, 100% offline (RAG) (port 8001, web UI)

IBM watsonx.ai

IBM's enterprise AI platform — Granite + third-party models (cloud/on-prem) (web UI)

Mem0

Memory layer for AI agents — self-hosted (Docker) or cloud (port 8888, web UI)

CrewAI (open source)

Multi-agent crews — Python framework + CLI (local)

Open Computer

Virtual OS for AI agents — QEMU VM per agent (Mintplex Labs) (web UI)

LiteLLM

Proxy/gateway for 100+ LLM APIs (OpenAI-compatible) (port 4000, web UI)

Tetrate Agent Router

Hosted LLM router — one OpenAI-compatible API (cloud) (web UI)

AnythingLLM

All-in-one self-hosted RAG chat app (port 3001, web UI)

Hugging Face

Model hub, Inference API & local tooling (web UI)

ChatLLM Teams

Abacus.AI's multi-model team chat & agent workspace (cloud) (web UI)

LibreChat

Self-hosted multi-provider AI chat UI (port 3080, web UI)

NotebookLM

Google's source-grounded research notebook (cloud) (web UI)

Open Notebook

Open-source, self-hosted NotebookLM alternative (port 8502, web UI)

OpenCode

Open-source AI coding agent (terminal)

Goose

Open-source local AI agent (CLI + desktop)

6.72AI Clusters

Exo Cluster

built-in tool

GPU Fabric

built-in tool

Petals

BitTorrent-style distributed inference of big models

Distributed Llama

Tensor-parallel Llama across cheap nodes (root + workers) (port 9998)

Slurm

HPC workload manager / job scheduler (port 6817)

Ray

Distributed compute for AI (training/serving/tuning) (port 8265, web UI)

Apache Spark

Distributed big-data processing engine (port 8080, web UI)

Dask

Parallel computing for Python (scales pandas/NumPy) (port 8787, web UI)

JupyterLab

Interactive notebooks for data & AI (Python) (port 8888, web UI)

Run:ai

GPU orchestration & fractional GPUs on Kubernetes (NVIDIA) (web UI)

NVIDIA Base Command Manager

GPU/HPC cluster provisioning & management (ex-Bright) (port 8081, web UI)

6.73Agent Platforms

Agent Platforms

built-in tool

Agent Registry

built-in tool

Task Queue

built-in tool

Model Router

built-in tool

Repository Connectors

built-in tool

Agent Sessions

built-in tool

Agent Jobs

built-in tool

OpenClaw

built-in tool

Hermes

built-in tool

Odysseus

built-in tool

DeerFlow

built-in tool

CoWork OS

built-in tool

OpenAI Codex Runtime

built-in tool

Claude Code CLI

built-in tool

Gemini CLI

built-in tool

Factory Droid

built-in tool

OpenCode

built-in tool

Goose

built-in tool

LangGraph Platform

built-in tool

CrewAI Enterprise

built-in tool

Microsoft AutoGen

built-in tool

Genspark

built-in tool

Agent Zero

built-in tool

NVIDIA NemoClaw

built-in tool

OpenHuman

built-in tool

Apple Intelligence

built-in tool

Sandcastle

Orchestrate sandboxed coding agents (isolated containers)

SuperAGI

Open-source autonomous-agent framework (self-hosted) (port 3000, web UI)

OpenHands (OpenDevin)

Open-source autonomous AI software engineer (self-hosted) (port 3000, web UI)

E2B

Secure cloud sandboxes for AI agents (spin up / clone / kill) (web UI)

Browserbase

Headless browser infrastructure for AI agents (cloud sessions) (web UI)

Manus

Autonomous general AI agent (cloud API) (web UI)

Devin

Cognition's AI software engineer (cloud API) (web UI)

GitHub Copilot

AI pair programmer — live org seat/usage monitor (web UI)

OpenAI Operator

OpenAI's browser-using agent (cloud) (web UI)

Hyperagent

Airtable's fleet-of-agents platform (cloud) (web UI)

Herdr

Agent multiplexer — tmux for AI coding agents (terminal)

ChatGPT Work Sites

OpenAI's work agent + published Sites/web apps (alpha) (web UI)

Lakebed

Agent-native runtime for full-stack TypeScript capsules (alpha) (port 3000, web UI)

6.74ML Workbench

MLflow

ML experiment tracking & model registry (self-hosted) (port 5000, web UI)

pandas

The standard Python DataFrame library

Polars

Fast multicore DataFrame library (Rust core)

scikit-learn

Classic machine-learning library for Python

XGBoost

Gradient-boosted decision trees (high-accuracy tabular ML)

PyTorch

Deep-learning framework (GPU/MPS accelerated)

Kaggle

Datasets, notebooks & competitions (CLI)

Kubeflow

ML toolkit & pipelines on Kubernetes (web UI)

ClearML

Experiment tracking, orchestration & MLOps (self-hostable) (port 8080, web UI)

Weights & Biases (Local)

Self-hosted experiment tracking & dashboards (port 8080, web UI)

DVC Studio

Data/model version control + experiment dashboard (web UI)

6.75AI Governance & Safety

Langfuse

Open-source LLM observability & tracing (self-hosted / cloud) (port 3000, web UI)

Helicone

LLM observability & gateway — logs, costs, caching (self-hosted / cloud) (web UI)

Arize Phoenix

Open-source LLM tracing & evaluation (self-hosted) (port 6006, web UI)

OpenLLMetry

OpenTelemetry instrumentation for LLM apps (SDK)

Promptfoo

Prompt/RAG testing, evals & LLM red-teaming (self-hosted CLI)

Ragas

Evaluation framework for RAG pipelines (Python)

Guardrails AI

Input/output validation guardrails for LLMs (Python)

NeMo Guardrails

Programmable guardrails for LLM conversations (NVIDIA, Python)

Lakera Guard

Real-time GenAI security — prompt-injection firewall (cloud / self-host) (web UI)

Protect AI

AI/ML security — model scanning & ML supply chain (cloud + OSS) (web UI)

garak

LLM vulnerability scanner / red-teaming (self-hosted CLI)

TruLens

Evaluation & tracking for LLM apps — feedback functions (Python) (web UI)

WhyLabs

AI observability & data/LLM monitoring (cloud + whylogs) (web UI)

Fiddler AI

AI observability & model monitoring with explainability (cloud) (web UI)

Credo AI

AI governance, risk & compliance platform (cloud) (web UI)

Holistic AI

AI governance, risk & audit platform (cloud + OSS) (web UI)

6.76GPU Infrastructure

NVIDIA DCGM

NVIDIA Data Center GPU Manager — telemetry & health (port 5555)

DCGM Exporter

Export NVIDIA GPU metrics to Prometheus (port 9400)

6.77Speech AI

Handy

Free local push-to-talk speech-to-text (Whisper)

Wispr Flow

AI voice dictation that types into any app

Voicebox

Open-source local voice-to-text for macOS

Whisper

OpenAI's speech-to-text model (Python)

Whisper.cpp

Fast C/C++ Whisper inference (CPU/Metal)

Faster Whisper

CTranslate2 Whisper — up to 4× faster

Coqui TTS

Open-source text-to-speech & voice cloning (port 5002, web UI)

Piper TTS

Fast, local neural text-to-speech

VibeVoice

Microsoft's long-form, multi-speaker TTS

Kokoro TTS

Small, fast, high-quality open-weight TTS (82M)

6.78Image & Video AI

ComfyUI

Node-graph Stable Diffusion / video workflows (port 8188, web UI)

AUTOMATIC1111 WebUI

Stable Diffusion web UI (txt2img/img2img) (port 7860, web UI)

InvokeAI

Pro Stable Diffusion studio (Unified Canvas) (port 9090, web UI)

Fooocus

Simplest Stable Diffusion — type a prompt, get art (port 7865, web UI)

6.79MCP

MCP Servers

built-in tool

Fleet Skill

built-in tool

MCP Server

built-in tool

6.80Self-Hosted Apps

PhotoPrism

AI-powered photo library (port 2342, web UI)

ResourceSpace

Open-source digital asset management (self-hosted) (port 80, web UI)

Pimcore

Open-source PIM / DAM / CMS platform (self-hosted) (port 80, web UI)

Paperless-ngx

Scan, OCR & archive documents (port 8000, web UI)

Paperless-AI

AI auto-tagging & chat for Paperless-ngx (port 3000, web UI)

FreshRSS

Self-hosted RSS reader (PHP) (port 80, web UI)

Miniflux

Minimalist RSS reader (Go) (port 8080, web UI, brew: miniflux)

Mixpost

Self-hosted social media scheduling (port 80, web UI)

Mealie

Self-hosted recipe manager & meal planner (port 9000, web UI)

Tandoor

Recipe manager & meal planner (port 8080, web UI)

Grocy

Groceries & household ERP (port 80, web UI)

Dashy

Feature-rich homelab dashboard (port 4000, web UI)

Heimdall

Simple application start page (port 80, web UI)

Homer

Static, fast services dashboard (YAML) (port 8080, web UI)

6.81Web3

The Graph

built-in tool

Foundry

Fast Solidity toolkit (forge/cast/anvil) (port 8545)

Anvil

Local Ethereum testnet (Foundry) (port 8545)

Solidity

Smart-contract compiler (solc)

Hardhat

Ethereum dev environment (Node.js) (port 8545)

Ganache

Personal Ethereum blockchain (dev) (port 8545)

IPFS

Distributed file system (Kubo) (port 5001, web UI, brew: ipfs)

Ceramic

Decentralized data network (ComposeDB) (port 7007)

6.82Crypto

Bitcoin Core

Full Bitcoin node (bitcoind) (port 8332)

Ethereum Node

go-ethereum (geth) execution node (port 8545)

BTCPay Server

Self-hosted Bitcoin payment processor (port 23000, web UI)

XMRig

Monero (RandomX) CPU/GPU miner

6.83RPC Services

Alchemy

built-in tool

Infura

built-in tool

6.84Tools

Apache Tika

Content detection & text/metadata extraction (port 9998)

Gotenberg

Stateless API to convert documents to PDF (port 3000)

LanguageTool

Self-hosted grammar & style checker (offline Grammarly alternative) (port 8081)

SearXNG

Private metasearch engine (self-hosted) (port 8080, web UI)

Stirling-PDF

Self-hosted PDF toolbox (merge/split/OCR…) (port 8080, web UI)

IT-Tools

Handy developer/IT utilities in one page (port 80, web UI)

Excalidraw

Virtual hand-drawn whiteboard (port 80, web UI)

Penpot

Open-source design & prototyping (Figma alt.) (port 9001, web UI)

Whoogle Search

Private, ad-free Google results proxy (port 5000, web UI)

6.85Home Automation

Apple Home

built-in tool

Power Control

built-in tool

Nori / SuperNori AI

AI family hub display + proactive family AI agent (cloud + device) (web UI)

Home Assistant

Open-source home automation hub (port 8123, web UI)

Node-RED

Flow-based automation wiring (port 1880, web UI, brew: node-red)

Homebridge

Bridge non-HomeKit devices to Apple Home (port 8581, web UI)

ESPHome

Firmware for ESP IoT devices (Home Assistant) (port 6052, web UI)

openHAB

Vendor-neutral automation platform (port 8080, web UI)

6.86Cameras

motionEye

Web frontend for motion (DIY NVR) (port 8765, web UI)

RTSP Cameras

Any RTSP-streaming IP camera (port 554)

ONVIF Cameras

Standards-based camera discovery & control (port 80, web UI)

go2rtc

Camera stream restreamer (RTSP/WebRTC/HLS) (port 1984, web UI)

Tapo Cameras

TP-Link Tapo Wi-Fi cameras (RTSP/ONVIF) (port 554)

Frigate

NVR with real-time object detection (port 5000, web UI)

Scrypted

High-performance camera hub (port 11080, web UI)

Shinobi

Open-source video management (CCTV) (port 8080, web UI)

ZoneMinder

Full-featured CCTV / video surveillance (port 8095, web UI)

Agent DVR

Cross-platform NVR with AI detection (self-hosted) (port 8090, web UI)

Blue Iris

Powerful Windows NVR (run on a Windows host) (port 81, web UI)

6.87IoT

SwitchBot

built-in tool

Zigbee

built-in tool

Zigbee2MQTT

Bridge Zigbee devices to MQTT (no vendor hub) (port 8080, web UI)

Z-Wave (Z-Wave JS UI)

Control Z-Wave devices via MQTT + web UI (port 8091, web UI)

Matter

Commission & control Matter devices (port 5580)

Thread

Low-power mesh for Matter devices

OpenThread Border Router

Run your own Thread border router (self-hosted)

Bluetooth (BLE)

BLE sensors & trackers

Bluetooth Beacons

iBeacon / Eddystone proximity beacons (BLE)

TP-Link Kasa & Tapo

Kasa & Tapo plugs/bulbs/strips + the kasa CLI

Amazon Alexa

Voice assistant ecosystem

Google Home

Google Home / Nest ecosystem

HomePod

Apple smart speaker & Home hub (AirPlay 2 / Matter / Thread)

6.88MQTT Brokers

MQTT Message Bus

built-in tool

Mosquitto

Eclipse MQTT broker (port 1883, brew: mosquitto)

EMQX

Scalable, clustered MQTT broker (port 1883, web UI, brew: emqx)

HiveMQ

Enterprise MQTT broker (Java) (port 1883, web UI)

6.89POS Systems

Toast POS

Restaurant POS platform (cloud) (web UI)

Lightspeed

Retail & hospitality POS (cloud) (web UI)

Floranext

All-in-one florist software — POS, e-commerce & orders (cloud) (web UI)

6.90CRM & Loyalty

Salesforce

The enterprise CRM (cloud) (web UI)

HubSpot

CRM + marketing/sales hubs (cloud) (web UI)

Zoho CRM

Affordable full-suite CRM (cloud) (web UI)

SuiteCRM

Self-hosted open-source CRM (PHP) (port 80, web UI)

EspoCRM

Lightweight self-hosted CRM (PHP) (port 80, web UI)

Odoo CRM

CRM inside the open-source ERP (Python) (port 8069, web UI)

Pipedrive

Sales-pipeline-first CRM (cloud) (web UI)

Square Loyalty

Points & rewards on Square (cloud) (web UI)

Loyalzoo

Digital loyalty for independents (cloud) (web UI)

Thanx

Guest engagement & loyalty for restaurants (web UI)

Punchh

Enterprise restaurant loyalty (PAR, cloud) (web UI)

VoucherVault

Self-hosted vouchers, gift cards & loyalty (port 8000, web UI)

6.91Helpdesk & Ticketing

Zammad

Open-source helpdesk & ticketing (self-hosted) (port 8080, web UI)

osTicket

Classic open-source support ticket system (PHP/MySQL) (port 80, web UI)

Freshdesk

Cloud helpdesk / customer support (API) (web UI)

6.92IT Assets

GLPI

Asset inventory & ITSM with CMDB (PHP/MySQL) (port 80, web UI)

Snipe-IT

Open-source IT asset management (PHP/MySQL) (port 80, web UI)

AssetTiger

Cloud asset tracking with barcodes (API) (web UI)

Lansweeper

IT asset discovery & inventory (cloud/on-prem API) (web UI)

Workwize

Global IT equipment lifecycle & logistics (cloud API) (web UI)

6.93Project Management

Jira

Issue tracking & agile project management (cloud API) (web UI)

Linear

Fast issue tracking for product teams (cloud, GraphQL API) (web UI)

Taiga

Open-source agile project management (self-hosted) (port 80, web UI)

OpenProject

Open-source PM with Gantt & roadmaps (self-hosted) (port 80, web UI)

Plane

Open-source Jira alternative (self-hosted) (port 80, web UI)

Leantime

Open-source PM for non-project managers (PHP/MySQL) (port 80, web UI)

Basecamp

Project management & team collaboration (cloud API) (web UI)

monday.com

Work OS — boards, projects & workflows (cloud API) (web UI)

Vikunja

Self-hosted to-do / task manager (port 3456, web UI)

Planka

Realtime kanban board (Trello alternative) (port 1337, web UI)

Kimai

Self-hosted time tracking (port 8001, web UI)

Focalboard

Self-hosted project boards (Trello/Notion alt.) (port 8000, web UI)

6.94PMS

Channel Manager

built-in tool

SuiteOp

built-in tool

Symplehost

AI property management for short-term rentals (cloud) (web UI)

Breezeway

Property operations & services for STRs (cloud) (web UI)

Operto

Smart-lock & guest-experience automation for STRs (cloud) (web UI)

PriceLabs

Dynamic pricing & revenue management for STRs (cloud) (web UI)

Beyond

Dynamic pricing, insights & direct booking for STRs (cloud) (web UI)

Wheelhouse

Dynamic pricing & market analytics for STRs (cloud) (web UI)

AirDNA

Short-term-rental market data & analytics (cloud) (web UI)

RankBreeze

Airbnb listing optimization & rank tracking (cloud) (web UI)

Truvi

Direct-booking website builder for STRs (cloud) (web UI)

Hostaway

Short-term-rental PMS & channel manager (cloud API) (web UI)

Guesty

STR property-management platform (Open API) (web UI)

OwnerRez

Vacation-rental PMS for owners & small managers (v2 API) (web UI)

Lodgify

Direct-booking website builder + channel manager (web UI)

Uplisting

STR PMS / channel manager (invite-only API) (web UI)

Streamline VRS

Enterprise vacation-rental management (partner-gated API) (web UI)

RemoteLock

Cloud access control for smart locks (REST API) (web UI)

Minut

Noise & occupancy sensors for rentals (Enterprise API) (web UI)

NoiseAware

Noise monitoring for rentals (partner-provisioned API) (web UI)

Hospitable

Guest-messaging automation & STR management (cloud) (web UI)

Hostfully

STR property-management platform & digital guidebooks (cloud) (web UI)

Boostly

SMS marketing & direct-booking growth for STRs (cloud) (web UI)

Cloudbeds

Hotel PMS, booking engine & channel manager (cloud) (web UI)

Beds24

PMS & channel manager with a deep API (cloud) (web UI)

AirHost

Japanese STR PMS & channel manager (cloud) (web UI)

HappyGuest

Digital guest directory & concierge for hospitality (cloud) (web UI)

Alexa Smart Properties

Managed Alexa for hotels & senior living (cloud) (web UI)

QloApps

Open-source hotel reservation system (port 80, web UI)

HotelDruid

Hotel/B&B management & bookings (port 80, web UI)

OpenHotel PMS

Open property-management system (web UI)

BookStack

Wiki/docs for SOPs & property info (port 80, web UI)

Easy!Appointments

Open-source appointment scheduling (port 80, web UI)

Turno

Vacation-rental cleaning & turnover scheduling (cloud) (web UI)

Rentals (Laravel)

Custom Laravel vacation-rental app (port 80, web UI)

6.95Meeting Rooms & Desk Booking

Skedda

Desk & space booking (cloud API) (web UI)

Robin

Room scheduling & desk booking (cloud API) (web UI)

Envoy Workplace

Workplace, visitor & desk management (cloud API) (web UI)

YAROOMS

Meeting room & desk booking (cloud API) (web UI)

OfficeSpace

Space management & desk/room booking (cloud API) (web UI)

Condeco (Eptura)

Enterprise room & desk booking (cloud API) (web UI)

DeskFlex

Desk & room reservation system (cloud API) (web UI)

Matrix Booking

Room, desk & resource booking (cloud API) (web UI)

6.96Coworking & Shared Spaces

OfficeRnD

Coworking & flex-space management (cloud API) (web UI)

Nexudus

Coworking management & white-label platform (cloud API) (web UI)

Optix

App-first coworking management (cloud API) (web UI)

Cobot

Coworking space management (cloud API) (web UI)

6.97Facilities & Maintenance

IBM Maximo

Enterprise asset management & CMMS (cloud/self-managed API) (web UI)

FMX

Facilities management & maintenance (cloud API) (web UI)

Archibus

IWMS — facilities, real estate & assets (API) (web UI)

6.98Accounting & ERP

Money Forward Cloud

Japanese cloud accounting & back office (cloud) (web UI)

freee

Japanese cloud accounting & HR (cloud) (web UI)

Xero

Cloud accounting for small business (cloud) (web UI)

ERPNext

Open-source ERP — accounting, inventory, HR (self-hosted) (port 8080, web UI)

Odoo

Open-source ERP suite — self-hosted (Python + PostgreSQL) (port 8069, web UI)

QuickBooks

Intuit cloud accounting (cloud) (web UI)

Plaid

Bank account linking & financial data (cloud API)

Expensify

Expense & receipt management (cloud API) (web UI)

Firefly III

Self-hosted personal finance manager (port 8080, web UI)

Actual Budget

Fast local-first envelope budgeting (port 5006, web UI)

Ghostfolio

Open-source wealth/investment tracker (port 3333, web UI)

Invoice Ninja

Self-hosted invoicing & payments (port 80, web UI)

Maybe

Open-source personal finance / net worth (port 3000, web UI)

6.99Healthcare

OpenEMR

Open-source EHR & practice management (PHP/MySQL) (port 80, web UI)

OpenMRS

Open-source medical record platform (Java) (port 8080, web UI)

GNU Health

Hospital & health information system (Python/Tryton) (port 8000, web UI)

LibreHealth

Open-source EHR / toolkit (PHP/MySQL) (port 80, web UI)

Orthanc

Lightweight DICOM server / PACS (REST API) (port 8042, web UI)

OpenDolphin

Open-source EHR / electronic karte (Japan) (port 8080, web UI)

ORCA

Japan Medical Association receipt/billing system (port 8000, web UI)

6.100Automation & Workflows

Automatio.ai

AI no-code web automation & scraping (cloud) (web UI)

Zite

AI app & workflow builder (cloud) (web UI)

AppSheet

Google no-code app builder from a spreadsheet/DB (cloud) (web UI)

Make (Integromat)

Visual scenario automation + AI agents — 3,000+ apps (cloud) (web UI)

Zapier

Cloud iPaaS — connect 7,000+ apps (cloud) (web UI)

n8n

Source-available workflow automation (self-hosted) (port 5678, web UI)

Pipedream

Developer-first workflow automation (cloud) (web UI)

Power Automate

Microsoft cloud + desktop automation (cloud) (web UI)

Activepieces

Open-source no-code automation (self-hosted) (port 8080, web UI)

Windmill

Scripts → workflows & internal apps (self-hosted) (port 8000, web UI)

Huginn

Self-hosted agents that watch & act (self-hosted) (port 3000, web UI)

Flowise

Drag-and-drop LLM app builder (self-hosted) (port 3000, web UI)

Langflow

Visual builder for LLM/agent flows (self-hosted) (port 7860, web UI)

Dify

Open-source LLMOps / AI app platform (self-hosted) (port 80, web UI)

Elgato Stream Deck

Hardware macro keypad with LCD keys

Touch Portal

Turn a phone/tablet into a macro deck (no extra hardware)

Bitfocus Companion

Open-source control surface for larger automation workflows (port 8000, web UI)

X-keys

Programmable keypads for NOCs & operations

Matric

Phone macro deck with live metric tiles

QMK / VIA

Open keyboard firmware + live key remapping

6.101Workflow Orchestration

Temporal

Durable execution platform for reliable workflows (port 8233, web UI)

Restate

Durable execution for resilient services (single binary) (port 9070, web UI)

Apache Airflow

Programmatic data-pipeline orchestration (DAGs) (port 8080, web UI)

6.102HRIS Integration

Unified.to (HRIS API)

Unified API across HRIS providers (web UI)

Apideck (HRIS API)

Unified HRIS API & integration platform (web UI)

Truto

Unified API for HRIS & more (cloud) (web UI)

Bindbee

Unified HRIS / employment API (cloud) (web UI)

6.103VoIP & Telephony

Asterisk

The open-source PBX engine (self-hosted) (port 5060, brew: asterisk)

FreePBX

Web GUI distro on Asterisk (self-hosted, Linux) (port 80, web UI)

FreeSWITCH

Carrier-grade softswitch (self-hosted) (port 5060)

FusionPBX

Multi-tenant web GUI on FreeSWITCH (self-hosted) (port 443, web UI)

Issabel PBX

Unified-communications distro on Asterisk (self-hosted) (port 443, web UI)

Kamailio

High-performance SIP server/proxy (self-hosted) (port 5060)

OpenSIPS

SIP proxy/router for large platforms (self-hosted) (port 5060)

PBXact

Sangoma's commercial PBX (appliance/cloud) (port 80, web UI)

Plivo

Voice & SMS API platform (cloud) (web UI)

Telnyx

Carrier-grade voice, SIP trunking & numbers (cloud) (web UI)

Bird (MessageBird)

Omnichannel CPaaS — SMS, voice, WhatsApp (cloud) (web UI)

Sinch

Global SMS, voice & verification CPaaS (cloud) (web UI)

Twilio Voice

Programmable voice calls & TwiML (cloud) (web UI)

VitalPBX

Modern Asterisk-based PBX distro (self-hosted) (port 443, web UI)

Vonage APIs

Voice, SMS & video APIs (cloud, ex-Nexmo) (web UI)

Wazo Platform

API-first open telecom platform (self-hosted) (port 443, web UI)

Yate

Flexible telephony engine — SIP/H.323/SS7 (self-hosted) (port 5060)

3CX

Commercial software PBX (self-hosted or hosted) (port 443, web UI)

6.104Contact Centre & IVR

Twilio Studio

Drag-and-drop IVR & call-flow builder (cloud) (web UI)

Twilio Flex

Programmable contact centre (cloud) (web UI)

Amazon Connect

AWS cloud contact centre (cloud) (web UI)

Genesys Cloud

Enterprise CX platform — Architect IVR (cloud) (web UI)

Five9

CCaaS with strong outbound dialing (cloud) (web UI)

Talkdesk

AI-forward cloud contact centre (cloud) (web UI)

RingCentral Contact Center

CCaaS on the RingCentral platform (cloud) (web UI)

8x8 Contact Center

UCaaS + CCaaS in one platform (cloud) (web UI)

Vonage Contact Center

Salesforce-centric contact centre (cloud) (web UI)

Dialpad Ai Contact Center

AI-native contact centre & real-time coaching (cloud) (web UI)

Aircall

Lightweight cloud call centre for teams (cloud) (web UI)

CloudTalk

Cloud calling for support & sales (cloud) (web UI)

GoTo Connect

Phone system + contact centre (cloud) (web UI)

Zoom Contact Center

Omnichannel CC on the Zoom platform (cloud) (web UI)

Freshdesk Contact Center

Freshworks phone channel (ex-Freshcaller, cloud) (web UI)

Zendesk Talk

Voice channel inside Zendesk Support (cloud) (web UI)

Intermedia Contact Center

CCaaS bundled with Intermedia Unite (cloud) (web UI)

6.105SEO & Marketing

Analytics

built-in tool

IndexNow Manager

built-in tool

Cloudflare Analytics

Privacy-first web & edge analytics (cloud) (web UI)

Ahrefs

Backlinks, keywords & rank tracking (cloud) (web UI)

Google Search Console

Search performance, indexing & sitemaps (cloud) (web UI)

Google Analytics

GA4 web & app analytics (cloud) (web UI)

PageSpeed Insights / CrUX

Core Web Vitals & Lighthouse scores per URL (cloud) (web UI)

Plausible Analytics

Privacy-first, self-hostable web analytics (port 8000, web UI)

Umami

Simple, self-hosted, privacy-focused analytics (port 3000, web UI)

Matomo

Full GA-style analytics, self-hosted (web UI)

GoatCounter

Minimal, open-source web analytics (port 8081, web UI)

PostHog

Self-hostable product analytics suite (port 8000, web UI)

Bing Webmaster Tools

Bing search performance & URL submission (cloud) (web UI)

Yandex Webmaster

Yandex search performance & indexing (cloud) (web UI)

Semrush

Keywords, competitors & site audit (cloud) (web UI)

Moz

Domain Authority & backlinks (cloud) (web UI)

Majestic

Backlink index — Trust & Citation Flow (cloud) (web UI)

DataForSEO

SERP, keyword & backlink data API (cloud) (web UI)

SerpApi

Real-time SERP scraping API (cloud) (web UI)

Yahoo! JAPAN Ads & Search

Japan's #2 search/ads ecosystem (cloud) (web UI)

Ptengine

Analytics + heatmaps, popular in Japan (web UI)

KARTE

Real-time user/CX analytics (PLAID, JP) (web UI)

AdEbis (アドエビス)

Ad attribution & marketing analytics (JP) (web UI)

Naver Search Advisor

Naver's Search Console (KR) — IndexNow partner (web UI)

Naver Analytics

Naver's free web analytics (KR) (web UI)

Beusable

Heatmap & UX analytics (KR) (web UI)

Airbridge

Mobile attribution & analytics (AB180, KR) (web UI)

adbrix

Mobile attribution & analytics (IGAWorks, KR) (web UI)

Google Lighthouse

Audit performance, PWA, SEO & accessibility

Shlink

Self-hosted URL shortener with REST API & analytics (port 8080, web UI)

YOURLS

Your Own URL Shortener (PHP) (port 80, web UI)

Kutt

Modern open-source URL shortener (port 3000, web UI)

Polr

Minimalist self-hosted link shortener (Laravel) (port 80, web UI)

Dub.co

Open-source link management for marketing teams (port 8888, web UI)

Nahpet

Self-hosted URL shortener with custom domains & analytics (port 3000, web UI)

Flink (URL Shortener)

Self-hosted shortener that keeps the path after the alias (port 8080, web UI)

Chhoto URL

Tiny, fast self-hosted URL shortener (Rust) (port 4567, web UI)

6.106Conversion Rate Optimization

Optimizely

Enterprise A/B testing & experimentation (cloud) (web UI)

VWO

A/B testing, heatmaps, surveys (cloud) (web UI)

AB Tasty

Personalization & experimentation (cloud) (web UI)

Statsig

Modern experimentation & feature flags (cloud, API) (web UI)

GrowthBook

Self-hosted A/B testing & feature flags (open-source) (port 3100, web UI)

Mixpanel

Product analytics & funnels (cloud) (web UI)

Amplitude

Product analytics & journeys (cloud) (web UI)

Hotjar

Heatmaps & session recording (cloud) (web UI)

Microsoft Clarity

Free heatmaps & session recording (cloud) (web UI)

FullStory

Digital experience & session replay (cloud) (web UI)

Lucky Orange

Heatmaps, recordings, live chat (cloud) (web UI)

Mouseflow

Session replay & heatmaps (cloud) (web UI)

Heap

Autocapture funnels & journeys (cloud) (web UI)

Contentsquare

Experience analytics & journeys (cloud) (web UI)

UserVoice

Product feedback & feature requests (cloud) (web UI)

Canny

Feature-request boards (cloud, API) (web UI)

Survicate

Website & in-product surveys (cloud) (web UI)

Qualtrics

Experience-management surveys (cloud) (web UI)

LaunchDarkly

Enterprise feature-flag management (cloud, API) (web UI)

Unleash

Self-hosted feature-flag management (open-source) (port 4242, web UI)

6.107Social Media

Buffer

Social media scheduling & publishing (cloud API) (web UI)

Postiz

Open-source, self-hosted social media scheduler (port 5000, web UI)

Postly

AI-powered social media publishing platform (web UI)

Post Planner

Content discovery & social scheduling (web UI)

Postcron

Multi-platform social media scheduler (web UI)

Publer

Social media scheduling & analytics (web UI)

Hootsuite

Social media management suite (cloud API) (web UI)

Later

Visual social scheduling (Instagram-first, cloud API) (web UI)

Metricool

Social analytics, scheduling & ads (cloud API) (web UI)

SocialPilot

Social scheduling for teams & agencies (cloud API) (web UI)

Mastodon

Self-hosted federated microblogging (ActivityPub) (web UI)

strfry

Fast C++ Nostr relay (single binary, one-click Docker) (port 7777)

nostr-rs-relay

Rust Nostr relay on SQLite (one-click Docker) (port 8080)

Nostream

TypeScript Nostr relay — Postgres, paid relays (Docker Compose) (port 8008)

HAVEN

Personal Nostr relay suite + Blossom media (Docker Compose) (port 3355, web UI)

Blossom Server

Nostr media/blob server — images & files (one-click Docker) (port 3000, web UI)

Pixelfed

Federated photo sharing (Instagram alt.) (port 80, web UI)

Lemmy

Federated link aggregator (Reddit alt.) (port 8536, web UI)

Misskey

Federated microblogging (rich Mastodon alt.) (port 3000, web UI)

6.108Media Servers

MediaMTX

RTSP/RTMP/HLS/WebRTC/SRT media server (port 8554, brew: mediamtx)

SRS

Simple Realtime Server — RTMP/WebRTC/SRT (port 1935, web UI)

Owncast

Self-hosted live streaming + chat (port 8080, web UI)

Restreamer

Restream one input to many platforms (port 8080, web UI)

Icecast

Audio streaming server (net radio) (port 8000, web UI, brew: icecast)

AzuraCast

Complete self-hosted radio station (port 80, web UI)

Jellyfin

Free home media server (Plex alternative) (port 8096, web UI, brew: jellyfin)

Plex Media Server

Popular home media server (port 32400, web UI)

Emby

Media server with live TV/DVR (port 8096, web UI)

PeerTube

Federated, P2P video platform (ActivityPub) (port 9000, web UI)

Navidrome

Self-hosted music server (Subsonic-compatible) (port 4533, web UI)

Audiobookshelf

Self-hosted audiobook & podcast server (port 13378, web UI)

Tvheadend

TV streaming server & DVR (DVB/IPTV) (port 9981, web UI)

TSDuck

MPEG transport-stream toolkit (CLI)

Wowza Streaming Engine

Commercial streaming server (RTMP/SRT/HLS) (port 8088, web UI)

Immich

Self-hosted photo & video backup (Google Photos alt.) (port 2283, web UI)

Channels DVR Server

Whole-home DVR for live TV & streaming (self-hosted) (port 8089, web UI)

Jellyseerr

Media request manager (Jellyfin/Plex/Emby) (port 5055, web UI)

Bazarr

Automatic subtitles for Sonarr/Radarr (port 6767, web UI)

Tdarr

Distributed media transcoding/health automation (port 8265, web UI)

Komga

Comics & manga server (self-hosted) (port 25600, web UI)

Kavita

Fast ebook/comic/manga server (port 5000, web UI)

RomM

Self-hosted ROM manager & player (port 8080, web UI)

Overseerr

Media request manager for Plex (port 5055, web UI)

Ombi

Media request system (Plex/Emby/Jellyfin) (port 3579, web UI)

Airsonic-Advanced

Self-hosted music streaming (Subsonic API) (port 4040, web UI)

Calibre-Web

Web reader/manager for a Calibre ebook library (port 8083, web UI)

Tautulli

Plex monitoring, history & stats (port 8181, web UI)

6.109Download Automation

qBittorrent

Open-source BitTorrent client with Web UI (self-hosted) (port 8080, web UI)

Transmission

Lightweight BitTorrent client + daemon (self-hosted) (port 9091, web UI)

SABnzbd

Usenet (NZB) downloader with Web UI (self-hosted) (port 8080, web UI, brew: sabnzbd)

NZBGet

Lightweight, efficient Usenet downloader (self-hosted) (port 6789, web UI)

Sonarr

Automated TV series management (self-hosted) (port 8989, web UI)

Radarr

Automated movie management (self-hosted) (port 7878, web UI)

Lidarr

Automated music collection management (self-hosted) (port 8686, web UI)

Readarr

Automated book & audiobook management (self-hosted) (port 8787, web UI)

Prowlarr

Indexer manager for the *arr stack (port 9696, web UI)

Tube Archivist

Self-hosted YouTube archive (index + watch) (port 8000, web UI)

Pinchflat

Self-hosted YouTube media downloader/archiver (port 8945, web UI)

6.110AV & Stage

AV Feeds

built-in tool

Dante (Audinate)

Audio-over-IP networking (AoIP)

Q-SYS

QSC's AV processing & control platform (port 1710, web UI)

QLC+

Open-source DMX lighting control (port 9999, web UI)

grandMA3

MA Lighting console / onPC show control

grandMA2

MA Lighting grandMA2 console / onPC

Depence²

Real-time 3D previz & show control (Syncronorm)

PixMob

Crowd LED wearables for stadium light shows

Xylobands

RF-controlled LED wristbands for events

OBS Studio

Live production, streaming & recording (port 4455)

NDI

Video-over-IP for production (NDI) (port 5959)

Resolume Arena / Avenue

VJ / media-server software (port 8080, web UI)

MadMapper

Projection mapping & LED control

Liquidsoap

Scriptable radio/audio stream engine

MPV

Scriptable media player (CLI)

Kodi

Media centre with JSON-RPC remote (port 8080, web UI)

VLC

Player with HTTP/telnet remote interfaces (port 8080, web UI)

Yodeck

Cloud digital signage (Pi players) (web UI)

Screenly / Anthias

Digital signage — cloud or open source (port 80, web UI)

Google Cast / YouTube Cast

Chromecast casting & control (port 8009)

ArKaos GrandVJ / XT

Live VJ mixing & video mapping

ArKaos MediaMaster (ChamSys)

Stage media server for lighting desks

Syphon

GPU frame sharing between Mac apps

SRT (tools)

Secure Reliable Transport for live video (port 9710)

WebRTC (WHIP/WHEP)

Sub-second video in any browser (port 8889)

AirServer

Turn this Mac into an AirPlay/Cast/Miracast receiver

Reflector

AirPlay/Cast screen receiver (Squirrels)

Chrome Remote Desktop

Free remote control of this Mac (web UI)

Riverside.fm

Remote podcast & video recording studio (cloud) (web UI)

6.111Render Farm

AWS Deadline / Deadline 10

Render farm queue manager (VFX/3D)

OpenCue

Open-source render manager (self-hosted)

Qube!

Commercial render farm / job manager (PipelineFX)

6.112Tracking & Telematics

Traccar

Open-source GPS tracking server (self-hosted) (port 8082, web UI)

OwnTracks

Private self-hosted location tracking (MQTT/HTTP) (port 8083, web UI)

TeslaMate

Self-hosted Tesla data logger (Docker) (port 4000, web UI)

Samsara

Fleet telematics platform (cloud API) (web UI)

Geotab

Fleet telematics (MyGeotab API) (web UI)

Fleetio

Fleet maintenance management (cloud API) (web UI)

Onfleet

Last-mile delivery management (cloud API) (web UI)

Bouncie

Connected-car OBD tracker (cloud API) (web UI)

AutoPi

Programmable vehicle IoT dongle (cloud API) (web UI)

flespi

Telematics IoT gateway & MQTT broker (cloud API) (web UI)

7

第 7

サイト・ドメイン・Web

Mac 上の vhost からレジストラ、DNS、CDN、検索エンジンまで — ドメインが本当に健全かを一目で示し、そうでないときに直すためのツール群を 1 つのペインに。

動く Web サイトとは、ただ Apache が起動していること以上のものです。ドメインが名前解決され、証明書が有効で、正しいマシンが応答し、その前に CDN が立ち、検索エンジンがその存在を知っている必要があります。FrontierStack はそのすべてを Sites ペインと小さなツール群に集約し、レジストラ・DNS・TLS・CDN・ホスト・SEO という連鎖全体を 1 つのウィンドウから可視化し、修正できるようにします。本章はスタックの上にある Web を扱います。vhost と証明書そのものは第 4 章を参照してください。

7.1Sites ペインと Domain Health

サイドバーから Sites を開きます。最上部には Domain Health セクション、つまり FrontierStack が把握するすべてのホスト名を集めたライブダッシュボードがあります。定義済みのローカル Apache・Nginx vhost、連携サーバ上の vhost、トークンにあるすべての Cloudflare ゾーン、レジストラ監視のすべてのドメインです。各ドメインには状態バッジ付きの行が並び、行の Check、またはヘッダーの Check All を押すと、アプリがドメインを端から端まで検査し、バッジを緑または橙に色付けします。

このダッシュボードの目的は、1 つの問いに確実に答えることです — このドメインは本当に配信されているか、どこから配信されているか? 検査は公開インターネットに対して実行されるため(実際の DNS 検索、実際の HTTP リクエスト、実際の TLS ハンドシェイク)、ローカルの設定確認では決して見えない障害を捉えます — 誤った IP を指すレコード、期限切れの証明書、「pending」のまま固まった Cloudflare ゾーン、名前解決はできるが 502 を返すサイト。

検査項目測定方法問題の見え方
DNSホスト名の実リゾルバ検索(hostdig)と返る IP。レコードなし、または自分のサーバでないアドレス。
HTTPステータスコードを記録するライブリクエスト(curl -w %{http_code})。200–399 以外 — 404、502、リダイレクトループ。
SSL/TLS証明書の終了日を読む TLS ハンドシェイク(openssl s_clientx509 -enddate)。バッジに残日数を表示。期限切れ、まもなく期限切れ、または名前不一致。
HTTP/3サーバが Alt-Svc ヘッダで HTTP/3 を告知しているとティール色のバッジが付きます。Apache 自体は HTTP/3 を持たないため、Apache サイトでこのバッジを得る通常の方法はドメインの Cloudflare ゾーンペインにある HTTP/3 トグルです(ブラウザはエッジと QUIC で通信し、オリジンは h1/h2 のまま)。HTTP/3 は UDP 443 を使うことに注意——TCP のみのファイアウォールではブラウザは黙って HTTP/2 にフォールバックします。h3 を配信しているはずのサイトにバッジがない——エッジ設定がオフか、UDP 443 がブロックされています。
Cloudflareトークンから取得するゾーンの状態とプラン。例:active · Proレジストラでネームサーバを切り替えていないため「pending」のゾーン。
配信ホスト応答した IP と Server ヘッダーから判定。リモートを期待したのに「This Mac (Apache)」、あるいはオリジンを隠す「Cloudflare」。
スクリーンショット追加予定
図 7.1. Sites ペイン最上部の Domain Health ダッシュボード。各ドメインの DNS/HTTP/SSL バッジと配信ホスト。撮影手順: capture: Sites ペインを最上部までスクロールし、Domain Health セクションに 3〜4 個のドメイン、緑と橙が混在するバッジ、1 つに「CF: active · Pro」と配信ホストのラベルを表示した状態
メモダッシュボードはサイトを保存するのではなく、読み取ります。ローカル vhost は Sites の設定に、リモート vhost は各連携サーバの Apache スナップショットに、それ以外は Cloudflare とレジストラ監視に存在します。サイトを追加し、サーバを連携し、Cloudflare トークンを貼り付ければ、次の検査でここに現れます。

7.2ドメイン所有権の証明

ベンダーは、所有者にしか作成できない DNS TXT レコードの公開を求めることでドメインの所有を確認します — ACME の DNS-01 チャレンジと同じ「DNS による証明」ですが、レコードの形式はベンダーごとに異なります。Domain Health 行の確認(Verify)ボタンはその形式を 1 か所に集約します。サービス — Google(Search Console/Workspace)、Microsoft 365、Meta、Apple Business Manager、Atlassian、OpenAI、Stripe、GitHub 組織、またはカスタムレコード — を選び、ベンダーのコンソールからトークンを貼り付けると、FrontierStack が TXT レコードをドメインの Cloudflare ゾーンに直接公開します。ドメインが Cloudflare トークンにない場合は、DNS ホストに追加すべきレコードをそのまま提示します。トークンだけを貼り付けても自動補完されます(Google で abc123 を貼ると google-site-verification=abc123 になります)。

シートには apex にすでに公開されている確認レコードも表示されます — このドメインが現在どのサービスに証明済みかの簡易監査です。Check DNS は公開 DNS(1.1.1.1)に新しいレコードを照会するので、ベンダー側で「確認」を押す前に証明が見えているか確かめられます。

証明書については、Let's Encrypt サービスペイン(セキュリティとシークレットカテゴリー)がもう一方のドメイン証明の常時ヘルスチェックです。ACME API・Let's Encrypt のステータスページ・ドメインの実際の証明書を監視し、ACME クライアントは残り 30 日で更新するため、証明書の更新遅延を警告します — certbot/acme.sh の自動更新の故障を、訪問者が期限切れ警告を目にする数週間前に捉えます。

7.3AI SEO と「Fix My Site」

ドメイン行のバッジのうち 2 つは、単なる診断ではなくボタンで、問題を AI 管理者に引き渡します。Fix My Site は壊れた、あるいは不調なサイトを受け取り、決まった手順でアシスタントを動かします — Host ヘッダー付きでサイトをローカルに curl して障害を再現し、関連ログを読み、Apache・PHP・データベースの稼働を確認し、最も可能性の高い根本原因と具体的な次の手順を提示します。Allow changes がオフなら助言のみ、オンなら可逆的な修正(サービス再起動、設定ファイルの誤値修正、データベース修復)を適用できます。WordPress 向けの派生版もあり、定番の白画面、「Error establishing a database connection」、壊れたパーマリンク、固まったメンテナンスモードに対応します。

SEO アクションは端末上の読み取り専用監査を実行します — アシスタントがホームページ・robots.txt・サイトマップを取得し、100 点満点で採点し、短いレポート(タイトル、メタディスクリプション、見出し、クロール可能性、構造化データ)を書き出します。結果は SEO レポートシートで開き、所見を読んで対処できます。

ヒントAI SEO と Fix My Site は単発・読み取り専用のハーネスを再利用するため、追加コストはかからず、変更を明示的に有効化しない限りサーバには一切触れません。コンテンツ変更の前後で SEO 監査を実行し、スコアの変化を確認しましょう。

7.4ワンクリック CMS インストール(Apps & CMS)

CMS のインストールは最初の一日にすぎません。残りを受け持つのが WordPressサイトです。ホスト(このMacまたは任意のフリートサーバ)を選び、一般的なウェブルート配下の wp-config.php を検索すると、そのマシン上の全 WordPress が、コア・プラグイン・テーマのバージョンと更新待ちの項目とともに一覧表示されます。すべて更新は、何かに触れる前にデータベースを書き出します。不具合のあるプラグイン更新は復旧できますが、失われたデータベースは戻らないからです。整合性を検査は、コアファイルを WordPress.org が公開するチェックサムと照合します。改ざんやバックドアを最も手早く見つける方法です。無料の WPScan トークンを追加すれば、インストール済みプラグインとコアを脆弱性データベースと照合し、修正が未公開のものを明示します。マルチサイトではサブサイトも一覧します。残る作業は、通常なら SSH とうろ覚えのコマンドを要するものばかりです。ロックアウトされた管理者のパスワード再設定、ドメイン移行のための検索置換(WP-CLI はシリアライズされた PHP 内の URL も正しく書き換えます。単純な SQL 置換ではデータが壊れるため、必ず予行演習から)、ステージングへの複製、データベースの書き出しと最適化です。複製はファイルをコピーし、複製側に専用のデータベースを与え、その中の URL を書き換え、検索エンジンよけを設定します。ステージングが本番に書き込んだり、検索順位で上回ったりすることはありません。すべて SSH 経由の WP-CLI で動作し、WP-CLI が無いホストにはインストールを提案します。サイトをピン留めすると、更新待ち・整合性検査の失敗・新たな脆弱性をアラートが知らせます。

WordPress が自前のマシンではなくマネージドホスティングにある場合も、ホスティングの各ペインがサイトを一覧します。WP EngineKinstaCloudwaysPressable は API 経由でインストール(環境・主要ドメイン・状態)を取得し、Cloud Servers で VPS インスタンスと並べて集約されるため、運用中のすべてを 1 つのインベントリで把握できます。これらはマシンではなくサイトなので、電源操作はありません。

Apps & CMS セクションは、セルフホスト CMS を Apache/PHP/MySQL スタックに 1 つのフローでインストールします。各アプリは専用ペインを持ちます:WordPressDrupalJoomlaStatamicGravKirbyCraft CMS。インストーラはアプリをダウンロード(Composer ベースの Statamic・Craft は composer create-project)してドキュメントルートに展開し、データベースが必要なもの(WordPress・Drupal・Joomla・Craft)はデータベースとユーザを作成して設定を所定の場所に書き出します。フラットファイル CMS(GravKirbyStatamic)はデータベース不要です。続いてアプリのセットアップ/管理ページ(/wp-admin/install.php/admin/panel/cp/admin/install など)を開いてアカウントを作成でき、周辺の vhost・PHP・信頼された HTTPS は FrontierStack が設定します。インストール先フォルダは、Apache が既に管理しているサイトをメニューから選ぶ(ドメイン・ドキュメントルート・ポートを自動入力)か、選択…で新しい空フォルダを指定できます。新しいフォルダには対応する vhost が作成され、既存サイトのドメインなら更新されます。不具合時は上記の Fix My Site(AI) でデバッグします。

7.5Domain Registrar 監視

Sites はドメインが今日動くかを教えます。Domain Registrars ペイン(DNS カテゴリ)は、それが動き続けるかを教えます。ドメインを追加すると FrontierStack は次の 3 つをスケジュールで監視し、いずれかがずれるとアラートを発します。

  • 有効期限 — 登録の終了日、レジストラ、ネームサーバ。RDAP で取得(whois フォールバックあり)。レジストラを問わずあらゆるドメインで機能します。
  • DNS — ドメインがまだ名前解決されるか(dig)。
  • SSL — 証明書の有効期限。openssl で直接確認。

更新警告は、有効期限がリマインダー期間内、すでに過ぎている、または自動更新がオフのときに発火します。対応レジストラでは、ペインがドメイン一覧と自動更新の状態を API で取り込めます — GoDaddy、Porkbun、Gandi、Value Domain、Route 53(AWS CLI 経由)、Cloudflare(Cloudflare トークンを再利用)。使える一覧 API がないレジストラ(Namecheap、Squarespace、Onamae)は手動で追加しますが、RDAP は引き続き監視します。

注意失効したドメインは、再起動では直らない唯一の障害です — 一度切れると数時間で他者に取得されかねません。余裕のあるリマインダー期間(30〜60 日)を設定し、レジストラのアラートを実際に読むチャネルに接続してください。これはアプリ全体で最も安価な保険です。
ドメインの購入
同じペインに Register a new domain フォームがあります。名前を入力して空き状況と価格を確認し、Porkbun または Namecheap で登録します — 購入手順は必ず先にプレビューし、確認したときだけ課金されます。AI も domain_check(読み取り専用)と domain_register ツールで実行でき、後者は明示的な確認の背後にゲートされています。登録には、保存済みのレジストラ認証情報と、一度だけ記入する登録者連絡先プロフィールを再利用します。

7.6Cloudflare:ゾーン・DNS・キャッシュ・トンネル

Cloudflare ペインは、API トークンを貼り付け、どのゾーンをサイドバーに表示するかを選ぶ場所です。Pin to sidebar したゾーンはそれぞれ独自のペインになり、そのゾーンの Cloudflare/DNS/HTTP/SSL 健全性、DDoS・ボット保護、WAF ルール、Workers、CDN 分析、開発モード、キャッシュパージ(全体・URL リスト・プレフィックス単位)を備えます。トークンのスコープは慎重に — 読み取り専用トークンはゾーンを一覧できますが、DNS 編集、証明書の DNS-01 検証、開発モード、キャッシュパージ、ゾーン作成にはそれぞれ専用の権限が要り、新規ゾーンの作成にはアカウントレベルZone · Zone · Edit 権限が必要です。ペインは Cloudflare のトークンテンプレートに直接リンクし、「トークンをテスト」ボタンは実際の API を検査して、トークンがこれらの権限のうちどれを持ち、どれを欠くかを一覧表示します(読み取りは直接実行、書き込みは意図的に無効なリクエストで検査するため、何も変更されません)。Dashboard ボタンは現在のゾーンの Cloudflare Web コンソールへディープリンクします。

ピン留めしたゾーンに警告が出たり HTTP チェックが応答しなくなったときは、ペインの診断ボタンが、色付きドットで終わらせずに原因を突き止めます。配信経路の各レイヤを順に調べます — Cloudflare 上のゾーン状態、公開ネームサーバ、DNS 解決、エッジ経由の HTTPS(Cloudflare の 52x エラーを解読:521 オリジン停止、522 タイムアウト、524 アプリまたはデータベースのハング、525/526 オリジン TLS)、オリジンサーバのポート 80/443 への直接プローブ、そして FrontierStack がそのドメインを配信していると把握しているマシン(この Mac ならローカルの Web サーバ、連携サーバならオンホストモニタのサービス状態 — 停止中の mysql はレポートにそのまま現れます)。公開経路が壊れている場合はフリートもスイープします。どの連携サーバが稼働中か、どれがオリジン IP をバインドしているか、どれがこのドメインの vhost を既に配信できるか — オフラインになってサイトの玄関口 IP を道連れにしたホストを名指しし、引き継げるサーバも提示します。各レイヤの合否を表示し、どのレイヤが壊れ、どう対処すべきかを平易な結論としてまとめます。

Cloudflare はアプリの随所に登場します。AI の dns_record ツールは管理ゾーンにレコードを書き込み、既存レコードのその場更新 — サブドメインのプロキシ(オレンジクラウド)と DNS のみの切り替えを含む — もでき、issue_certificate は Cloudflare DNS-01 で検証でき、email_auth_dns は SPF/DMARC を公開できます(第 13 章)。同じアカウントは、ローカルサイトを公開する Cloudflare DDNSCloudflare トンネルも支えます — どちらも第 9 章で扱います。

7.7ホスティングプロバイダ

運用するものすべてが Mac 上にあるわけではありません。Hosting カテゴリは VPS とマネージドのプロバイダを同じウィンドウに取り込みます。VPS プロバイダ — DigitalOcean、Vultr、Linode、Hetzner、さくら ほか — は API トークンでサーバを公開します。貼り付ければ、ペインが各サーバをプラン・ロケーション・状態・IP とともに一覧し、確認付きで起動・停止・再起動できます。ダッシュボード型のプロバイダ(Hostinger のようなマネージドホスティング)はトークンを保存し、コントロールパネル・ドキュメント・サインアップへのクイックリンクを示します。いずれの場合も認証情報は Keychain に保存され、SSH で到達できるサーバはフリートの一部になります(第 8 章)。

7.8IndexNow:検索エンジンへの即時送信

ページが変わったとき、クローラーが気づくのを待つ必要はありません。IndexNow ManagerSEO & Marketing)は、参加エンジン — Bing、Yandex、Seznam、Naver ほか — に即座に伝えます。管理サイトの 1 つを選び、Install Key File を押すと、FrontierStack はサイトのドキュメントルートに <key>.txt ファイルを書き込み、エンジンがキー所有を確認できるようにします。Verify で配信を確認します。あとは単一の URL を送信、pending キューを一括送信、またはサイトマップから供給し、スケジュールで自動送信もできます。すべては api.indexnow.org に送られ、参加エンジンへ展開されます。URL のホストは選択中のサイトとそのキーに一致している必要があります。

メモIndexNow は IndexNow 参加エンジンを対象とします。Google は IndexNow を使いません — Google 向けには、FrontierStack が gsc_verify_domainindex_site ツールでドメインを Search Console に確認し、サイトマップを送信します。Google にサインインしていれば自動で行われます。各 Domain Health 行の Index ボタンは両方の経路を一度に駆動します。

7.9サイト転送:マシン間でのコピー

手作業の rsync なしにサイトを移す 2 つのツールがあります。Copy Websites Between Apache はローカルのケースを扱います — Mac に複数の Apache インストール(例えば Homebrew のものと古い Server.app のもの)があるとき、ソースのインストールを選び、移したいサイトにチェックを入れると、FrontierStack はそのドキュメントルートと vhost 定義を、現在選択中の Apache にコピーします。同じドメインのサイトは上書きされるので、移行後の再取り込みにも使えます。

サイトを別のマシンへ移すには、AI の promote_site ツールがローカルサイトを指定したフリートホストにクローンします — ドキュメントルートをアップロードし、向こう側に vhost(Apache または Nginx)を書き、Web サーバをリロードし、新しいホストを指す Cloudflare A レコードを追加できます。手動のフリートプッシュと同じ手順を、1 回の呼び出しで行います。

7.10新しい Web プロジェクトのプロビジョニング

以上の部品が組み合わさり、プロジェクトのインフラをゼロから立ち上げる単一のフローになります。発想は明快な役割分担です — あなたの AI ツール(MCP 経由)がコードを担い、FrontierStack がインフラを担います。組み込みの Provision Web Project スキルが、アシスタントをレシピの順に導きます。

  1. 確認 — ターゲット、特権アクセス、導入済み Apache/Nginx、接続済み DNS プロバイダを確認し、公開変更の前に不足する前提サービスを特定または導入します。
  2. ゾーンcloudflare_zone_create が Cloudflare ゾーンを作り、レジストラで設定するネームサーバを返します(トークンにアカウントレベルのゾーン作成権限がなければ率直に伝えます)。
  3. vhost とフォルダvhost_create が Apache/Nginx サイトを定義します。ドキュメントルートが未指定なら、FrontierStack がプラットフォームに適した空フォルダを作成し、パスを返します。サイトのデザインやコンテンツ生成は行いません。
  4. DNSdns_record が名前をホストに向けます。
  5. TLSissue_certificate が Let's Encrypt 証明書を発行します。
  6. プレビュー — localhost のテスト地点のための一時的な共有(第 9 章)。
  7. プロモート — 任意で promote_site がフリートホストにクローンします。

ドメインの登録domain_register でこのレシピの先頭に加えられるため、エージェントは原理的に、名前を買い、ゾーンを作り、vhost を立て、証明書を発行し、フリートにクローンできます — 課金やシステム変更を伴う各手順は、必ず先にあなたの承認のためプレビューされます。

セキュリティすべてのプロビジョニングツールは変更を伴うためゲートされています。Allow changes がオンで、あなたがアクションを承認しない限り、ゾーン作成・DNS レコード書き込み・証明書発行・ドメイン購入のいずれも実行されません。Cloudflare とレジストラのトークンはローカルのボールトに留まり — 実行時に注入され、モデルには決して送られません。完全な信頼モデルは第 13 章を参照してください。

第 III

III

フリート・ネットワーク・セキュリティ

サーバを 1 つのフリートにまとめ、Mac・Linux・BSD・Raspberry Pi・Windows をひとつのウィンドウからネットワーク化・堅牢化・監視します。

8

第 8

サーバ連携:ロケーションとフリート

1 台の Mac は始まりにすぎません。FrontierStack は SSH で運用中の全サーバに手を伸ばし、そのとき自分がネットワーク上のどこにいるかも把握します。

ここまでは目の前の Mac の話でした。本パートでは視野を一気に広げ、運用環境全体を扱います。ラック内の Linux、いまも macOS Server が動く旧来の Xserve、棚の Raspberry Pi、クラウド VPS、そして Windows ホストまで。それぞれを SSH で一度連携すれば、FrontierStack はそれらを単一のフリートとして扱います。診断を実行し、コマンドを一斉展開し、サイトをデプロイし、健全性を見守ります。さらに、この Mac がネットワーク上のどこにいるかも把握するので、自宅・オフィス・カフェを移動するノートでも、いま単に見えないだけのサーバについて誤報を出すことはありません。

本章では連携とフリートの運用を扱います。第 9 章はネットワークと境界を、第 10 章は堅牢化とセキュリティ監査を、第 11 章は継続的な監視とアラートを掘り下げます。AI 管理者は同じツール群でここのほとんどを操作できます(第 13 章)。

8.1ロケーションとプレイス

Locations & Places ▸ Locations を開きます。ロケーションとは、名前を付けたネットワーク(HomeOfficeOn VPN)にすぎず、複数の信号から認識されます。Wi-Fi の SSIDルータ(ゲートウェイ)の MAC アドレス、Wi-Fi の BSSID、IP アドレスのサブネットプレフィックス(例:192.168.1.)、グローバル IP のブロック、そして VPN が有効かどうかです。ヘッダーは今どこにいるか(Now: Office)を示し、その下にライブのスナップショット(Wi-Fi 名・IP・ゲートウェイ・VPN 状態)が並びます。検出は 30 秒ごとに走ります。

FrontierStack が見覚えのないネットワークを検出すると「新しいネットワークを検出」のバナーを表示します。「追加…」で保存できます。「現在のネットワークをロケーションとして追加」を押してから条件を調整することもできます。ロケーションは設定したすべての条件が成立したときに一致し(SSID とルータ MAC はいずれか一致)、空欄の項目は無視されます。複数が一致した場合は、リストの先頭ではなく最も限定的なものが採用されます。モードピッカーで自動検出の代わりに手動で固定することもでき、信号が曖昧なときに便利です。

信号の信頼度は同じではなく、この違いは見た目以上に重要です。サブネットは identity ではありません。家庭用ルータもカフェもホテルも 192.168.1.× を配るため、サブネットだけで定義したロケーションはまったく別の建物にも平然と一致します。ルータ MAC が最も強い信号です。1 台のハードウェアに固有で、特別な許可なしに読み取れます。ルータ照合が存在する前に保存したロケーションには、「現在のネットワークからすべての条件を更新」がワンクリックの修正になります。

8.11.1GPS で場所をピン留めする

やっかいなケース — 2 つの拠点が本当に同じサブネットを使っていて、MAC アドレスをいじりたくない場合 — では、ロケーションに GPS ピン を持たせることもできます。その場所に立って対象のロケーションを開き、「Pin This Spot (GPS)」を押します。半径スライダで「ここ」とみなす範囲を設定します(既定 150 m。屋内測位は粗く、拠点は点ではなく建物だからです)。

ピンは相互参照であり、必須条件ではありません。役割は 2 つです。弱い一致を裏付けること、そしてより有用なこととして、誤った一致を拒否することです。これにより、同じサブネットを使うカフェを Home と判定しなくなります。検出が悪化しないよう、共有されうる条件(サブネット、VPN の有無)だけで識別されたロケーションは、位置情報が得られていてそれと矛盾する場合、確定として報告されなくなりました。自信を持った誤答の代わりに Away / Unknown が表示されます。

メモ位置情報サービスがオフ、拒否、またはまだ測位できていない場合、GPS の条件はすべてスキップされ、以前とまったく同じ — ネットワーク信号のみ — の動作になります。この機能は検出を正確にすることはあっても、使えなくすることはありません。FrontierStack は Wi-Fi のネットワーク名を読むためにすでに位置情報の許可を求めているため、ピン留めに新しい許可は不要です。
セキュリティ座標はロケーションと共に Mac 内に保存され、端末やその他どこにも送信されません。コンパニオンアプリが目にするのは「within 150m of a pinned spot」のような文言だけです。測位は意図的に粗く(100 m 精度)、精密 GPS のセッションを開いたままにせずとも 2 つの拠点を区別するには十分です。

デバイスもロケーションに属します。Device Discovery で、監視デバイスの メニュー ▸ Assign to Location から特定の拠点に配置できます。自動のままにすると、そのサブネットを持つロケーションに入ります。デバイス自身のペインからも設定でき、各ロケーションの行には割り当て済みデバイスが一覧されます。Mac が認識済みのロケーションに到着すると、FrontierStack はそれらのデバイスを確認し(VPN 経由などで最近確認済みのものはスキップ)、状態を色で示します:=到達可能、=ここにあるはずなのに応答なし、オレンジ=この Mac が到達できない Wi-Fi セグメント上(別のアクセスポイントや帯域が典型。Mac が 5 GHz のときの 2.4 GHz 専用センサーなど)。オレンジは「消えた」ではなく「ここからは確認できない」という意味です。

これらすべての狙いは「ロケーション依存の監視」セクションです。Overview ▸ Alerts でデバイス・Wi-Fi・Cloudflare ゾーン・ウォッチを重要としてマークし、ここで「Office のときのみ」に絞ります。そのチェックは他の場所では一時停止され、ホテルから NAS が DOWN と鳴ることも、職場で自宅 Wi-Fi が失われたとアラートが出ることもありません。一時停止された項目は戻れば静かに再開します。ロケーション自体が変わったときは、ローカル通知の表示、Messaging Gateways 経由の「📍 Now at: Office」アラート送信、またはその両方が可能です。

スクリーンショット追加予定
図 8.1. Locations ペイン:上部に現在のロケーションとライブの Wi-Fi/IP/VPN スナップショット、下に保存済みロケーション、そしてロケーション依存の監視リスト。撮影手順: Locations & Places ▸ Locations を開き、2〜3 のロケーションを定義し、1 つのデバイスをロケーションに絞った状態で撮影
ノートにロケーションが要る理由
ラックに固定された Mac mini は常に同じネットワークにいるので、ロケーションは不要です。ノートは逆で、動き回ります。ロケーションがないと、LAN 限定のチェック(「オフィスの NAS は起動しているか」)は建物を出た瞬間に失敗し、何でもないのに呼び出しがかかります。ロケーションは到達性を正直にします。チェックは実際に成功できる場所でのみ走ります。
メモAI 管理者は get_location ツールでこれを読めます。アクティブなロケーション、判定方法(固定か自動検出か)、ライブのスナップショット、そして設定済み各ロケーションの条件です。これを使って、LAN 限定サービスが今いる場所から到達可能か、VPN で外出中かを推論します。

サーバは「Link a Server」シート(デバイスのペイン・Device Discovery・Cloud Servers/Remote Tools ペインから開けます)でフリートに加わります。名前、ホストまたは IP、ポート、SSH ユーザ名(rootubuntuec2-user など)、ログインパスワードを入力します。そのパスワードは一度だけ使われます。アプリがこの Mac の管理対象 SSH 鍵をサーバの authorized_keys に入れ、以降は鍵のみで接続します。保存されるのはサーバのアドレスだけで、パスワードは破棄されます。

パスワードログインのない鍵専用サーバでは、「パスワードが使えない場合は鍵を手動でインストール」を展開し、表示された公開鍵を自分で authorized_keys にコピーしてから連携します。「監視ヘルパーも併せてインストール」にチェックを入れると、同じ手順でホストモニタを設定できます(後述)。

連携サーバには到達性を示す小さな緑/赤のステータスドットが付きます。Permission denied (publickey) で赤くなった場合(通常はサーバ再インストール後や鍵が未インストールのとき)、AI ツール repair_ssh_access が古いホスト鍵を消して管理対象鍵を再インストールします。一度きりのログインパスワードはボールトの秘密情報として保持され、ローカルで読み取られて鍵アクセスを再設定します。成功するとドットは再び緑になります。

セキュリティ「Link a Server」に入力するログインパスワードは Mac の外に出ず、保存もされません。公開鍵をコピーするための 1 回の接続を認証したら破棄されます。以降のアクセスは鍵ベースでパスワード不要です。repair_ssh_access ツールは一度きりのパスワードをローカルの .env ボールトから名前で読み取り、値が AI モデルに送られることはありません。

8.3管理対象鍵と保存された sudo パスワード

鍵アクセスでアプリは接続できますが、多くの有用な操作(/var/log の読み取り、Apache 設定の編集、ファイアウォールのリロード)にはサーバ上の root が必要です。FrontierStack はホストごとの sudo パスワードでこれを扱い、macOS キーチェーンに保存します(平文ファイルには決して書きません)。サーバ連携時に自動取得され、後からホストのペインや Remote Tools のターゲットセクション(Sudo password 欄)で設定・変更できます。

root 限定のコマンドを実行するとき、ヘルパーは SSH セッション越しに保存済みパスワードで sudo の資格情報キャッシュを準備してからコマンドを実行します。パスワードが保存されていない場合、root 操作はパスワード不要の sudo -n にフォールバックし、それも未設定なら単に「needs sudo」と報告します。秘密情報は名前で参照されるため、複数を保持できます。たとえばサーバごとに異なる MySQL パスワードを .env ボールトに置けます。

セキュリティホストごとの sudo パスワードはホストに紐づけてキーチェーンに保存されます。root アクションが実際に実行されるときだけ、暗号化された SSH チャネル越しに sudo -S へ渡され、AI モデルに表示されることもログに書かれることもありません。欄を空にすれば失効でき、1 台だけ再登録・再鍵化しても他には影響しません。

8.4Fleet Run — 全ノードへ 1 コマンド

Fleet & Remote ▸ Fleet Run は、単一の操作をすべての連携サーバ(または選んだ一部)へ一斉展開し、ホストごとのライブ結果を返します。Targets を選び(ホストをトグル。到達性ドットで起動中が分かります)、Operation を選んで「Run on N Server(s)」を押すと、すべてが SSH 上で並行実行され、各ホストが下に結果を返し、展開すれば全出力が見られます。

操作は OS を認識します。パッケージ更新はホストに応じて aptdnfpacmanzypperapkbrew に割り当てられ、サービス再起動は systemd を試してから Homebrew にフォールバックします。OS ごとのコマンドを手で書く必要はありません。

操作フリート全体で行うこと
全パッケージの更新/アップグレードホストのパッケージマネージャの update + upgrade を実行。展開前に確認します。
パッケージのインストール指定パッケージ(例:htop)を選択した全ホストにインストール。
サービスの再起動指定ユニット(例:nginx)を systemd または brew で再起動。
再起動要否のチェック更新後に再起動待ちのホストを報告。
ディスク使用量(df)フリート横断の df で逼迫したディスクを発見。
稼働時間と負荷ホストごとの稼働時間とロードアベレージ。
リポジトリの git pull各ホストの指定パスでリポジトリを pull。手早いデプロイ。
カスタムコマンド選択した全ホストでシェルコマンドをそのまま実行。展開前に必ず確認。

Fleet Run はドリフトを見つける最速の手段です。ディスク使用量稼働時間と負荷を実行してホストをひと目で比較するか、次の Remote Tools にあるファイルチェックサムやヘルスチェックで、フリート間で食い違った設定を見つけられます。

注意カスタムコマンド全更新は、選択した全ホストで同時にそのまま実行されるため、破壊的アクションの確認を伴います。打ち間違いはどこにでも展開されます。新しいことを試すときはまず 1 台のカナリアホストを選んでください。

8.5Remote Tools — ノード単位の診断

Fleet & Remote ▸ Remote Tools は、実際のフリートデバッグ作業から抽出した SSH 駆動の診断スイートです。まずターゲット(固定サーバ、または保存していないアドレス用の Other (IP / host)…。その sudo パスワードもキーチェーンに保持されます)を選び、次にツールとそのパラメータを選びます。読み取り専用チェックに root は不要で、保護されたログや設定を読むものは保存済み sudo パスワードをヘルパー経由で使い、一部はmutating(変更あり)と表示されます。

ツール用途
Ping・Traceroute・Whois選んだノードからの基本的な到達性・経路・登録情報の照会。
Net Info・Netstatインターフェイスとアドレス。ルーティングテーブル、インターフェイス/プロトコル統計、アクティブソケット。
Port Scan・Port Check・Web Check範囲スキャン、単一ポートのテスト、HTTP/HTTPS エンドポイント取得とステータス報告。
TLS Inspect・TLS Expiry証明書の検査。選択ノード横断で有効期限を一括チェック。
System Resources・Listening Portsノードの負荷・メモリ・ディスク。待ち受け状況(必要なら sudo で)。
Tail Log・Config Test任意のログパスを tail。Web サーバ設定を検証。
File Diff・Healthcheckファイル内容をノード間で比較(ドリフト)。各ノードでループバック越しに vhost のパスを叩く。
rsync Deployローカルフォルダをリモートパスへ送信。ドライランのプレビューと任意の --delete 付き。
Security・SSH・Exposure・Auth・User 監査任意のノードや IP に対する読み取り専用監査(第 10 章)。
Flush DNS・Restart Backendリゾルバキャッシュのフラッシュ。macOS Server の Web バックエンドを再起動(mutating — サイトが一瞬途切れます)。

一部のツールは複数の選択ノードに同時に働きます。File DiffHealthcheckTLS Expiry配信経路診断(Serving Path Diagnosis)(どのノードが稼働中か、各ノードがどの公開 IP をバインドしているか、プロセス単位の CPU 飽和と停止中サービス、そしてピン留めした全 Cloudflare ゾーンのオリジン IP との照合)は設計上フリート横断で、すべての Web ノードが同じ内容を有効な証明書で配信していることを確認するのにまさに使えます。ペイン下部では、/etc/hosts(root、ヘルパー経由)と SSH ユーザ自身の ~/.ssh/known_hosts を SSH 越しに安全に編集でき、各保存はまず .fsbak にバックアップします。

8.6ホストモニタ(リモートエージェント)

SSH 診断はオンデマンドです。継続的な可視性にはホストモニタをインストールします。サーバ上に常駐する小さな読み取り専用の Go ヘルパー(fsagent)で、サイクルごとの SSH なしに自分の健全性を報告します。連携ホストのペインからインストールを選ぶ(または Link a Server のチェックボックスをオンにする)と、既存の鍵越しにアプリがホストの OS とアーキテクチャに合ったバイナリを送り、プラットフォームのサービス(systemd・launchd・BSD の rc.d)を設定し、その TLS 証明書をピン留めします。AI ツール install_monitor も要求に応じて同じことを行います。

登録されると、モニタはライブのメトリクスをストリームします。CPU・メモリ・マウントごとのディスク・起動中のネットワークインターフェイス、検出されたサービス、ファイアウォールと fail2ban の状態、そして GPU ホストでは GPU ごとの温度と使用率を報告し、マイニングや ML のリグでも温度が把握できます。list_monitors はフリートのヘルパー、バージョン、最新メトリクスを報告します。重要なのは、モニタは Mac アプリがオフラインのときでも監視を続けてアラートでき、自前のチャネルで直接通知し、アプリが戻れば蓄積分を再送します。ログウィンドウもモニタを優先します。サーバ上で root として動くため、sudo パスワードなしで特権ログを読めます。

登録済みホストのペインには動作と履歴チャートも表示されます。CPU・メモリ・ディスクを5分解像度で最大30日分描画し、学習したベースラインで異常を検出します。赤い縦線が同じタイムライン上にインシデントを示します。実線の赤はサーバの再起動(報告された稼働時間から導出)、オレンジの破線はウォッチドッグの問題 — サービスの強制再起動、データベース破損警告、再起動エスカレーションです。OS のクラッシュレポータが CPU を使い始めた場合(プロセスが繰り返しクラッシュしている状態)はオレンジの Crashes 曲線も加わり、「昨夜 MySQL が2回強制再起動され、何かがクラッシュループしていた」ことが一目で分かります。

動作と履歴チャート:24 時間分の CPU・メモリ・ディスク・クラッシュレポータの曲線、再起動を示す実線の赤、学習ベースラインに対する「異常なし」の判定 &mdash; 5 分解像度・30 日保持。
図 8.2. 動作と履歴チャート:24 時間分の CPU・メモリ・ディスク・クラッシュレポータの曲線、再起動を示す実線の赤、学習ベースラインに対する「異常なし」の判定 — 5 分解像度・30 日保持。撮影手順: capture: 登録済みホストのペインを「動作と履歴」の 24 時間タブまでスクロールし、再起動の縦線が少なくとも 1 本見える状態で撮影。

モニタは既定で読み取り専用です。Host Monitor ペインでAllow actionsをオンにすると、小さく固定された制御動詞(任意シェルは決して含みません)が解放され、ゲートされた monitor_action ツールで駆動されます。許可リスト内サービスの restart/reload/start/stop、DNS フラッシュ、ファイアウォールや fail2ban のリロード、再起動です。各アクションはサーバ上に記録されます。対象は Linux(amd64/arm64/arm — あらゆる Raspberry Pi を網羅)、macOS(OS X 10.11 El Capitan までさかのぼるレガシー Intel ビルドを含む)、FreeBSD(pfSense/OPNsense/TrueNAS)、Windows です。

モニタを長期的に健全に保つ作業は自動化されています。モニタ認証情報をローテーションはベアラー認証情報をその場で差し替えます。新しいシークレットは Mac 上で生成され、承認済みの FS1 署名鍵で送られ、表示や AI への引き渡しなしにサーバ上で有効化されます。自己アップデートを許可が有効なら、新しいビルドの配布は構造的に安全です。候補バイナリのリリース署名を検証し、root 権限を与える前に互換性セルフテストに合格する必要があり、直前のバイナリはロールバック用に保持されます。新しいバイナリがヘルスチェックに応答しなければ、FrontierStack が自動的に元へ戻します。プルモードの更新は、恒久トークンではなく短命・単回使用の付与でバイナリを取得します。モニタが FS1 署名リクエストを検証しているときは、そのペインに FS1 signed バッジが表示されます。

メモインターフェイス上、これらのヘルパーは意図的にモニタホストモニタと呼び、アプリの AI エージェントと区別するため「エージェント」とは呼びません。モニタは見て報告するもの、AI 管理者は推論し行動するものです。
セキュリティホストモニタは読み取り専用で出荷され、Allow actions を明示的に有効化するまでそのままです。有効化しても、固定された許可リストの動詞しか実行できず、任意のコマンドは決して走りません。その制御プレーンはピン留め証明書付きの TLS といつでもローテーションできるホストごとのベアラートークンで保護され、自己アップデートはリリース署名の検証・セルフテスト・自動ロールバックを備えます。1 台だけ失効・再登録しても他には影響しません。

8.7Cloud Servers・Server Clone・リモート Apache

コンピュート系のペインに加え、AWS ▸ DynamoDB は選択中のリージョンのテーブルを、ステータス・アイテム数・サイズ・パーティションキー/ソートキーとともに一覧します。実際にコストや事故につながる 2 点を重視しています。キャパシティモードのカプセルは、アクセスの有無にかかわらず読み書きキャパシティに継続課金されるプロビジョンドのテーブルと、リクエスト単位で課金されるオンデマンドのテーブルを区別します。PITR無効の表示は、ポイントインタイムリカバリが無いテーブルを示します。新規テーブルでは既定で無効であり、誤った書き込みから巻き戻す唯一の手段です。ポイントインタイムリカバリは各行のメニューから切り替えられます。DynamoDB には一括の describe が無いため、テーブルごとに問い合わせ、リージョンあたり 40 件を上限としています。

Fleet & Remote ▸ Cloud Servers は、API トークンを設定したクラウドプロバイダ(DigitalOcean・Vultr・Linode・Hetzner・Sakura・Contabo)と AWS の EC2・Lightsail・RDS を横断する 1 つのインベントリにまとめます。読み取り専用のロールアップです(電源制御は各プロバイダのペインに残ります)。IP を持つ起動中インスタンスごとに、待ち受けを調べる Services ボタンと、SSH で連携してモニタを一手にインストールする + Helper ボタンがあります。シートで正しいユーザ名と鍵を設定するだけです。

Server Clone は、フリートサーバをこの Mac に合わせて立ち上げるガイド付きウィザードです。検出した Homebrew スタックをインストールし、設定とサイトファイルを元のパスにコピーし、ドメイン設定をプッシュして Web サーバをリロードし、MySQL データベースをクローン(ローカルの mysqldump を SSH 越しにターゲットの mysql へパイプ)できます。各ステップは鍵ベースの SSH で実行され、再実行しても安全で、既存データは削除されません。

単一サイトを公開する準備ができたら、(ドメインのコンテキストメニューからの)Promote to Production プッシュが、その vhost 設定をローカルと同じパスへ送り、必要ならドキュメントルートとデータベースをコピーし、Cloudflare 経由で DNS をターゲットに向け、certbot で本物の Let's Encrypt 証明書を発行できます。ファイル・データベース・vhost・DNS・HTTPS を 1 回のプッシュで。

リモートサーバの Apache も直接管理できます。リモートホストが 1 つでもあると Apache ペインにホストセレクタ(This Mac/各連携サーバ)が現れます。サーバを選ぶと FrontierStack が SSH 越しにその Apache を検出し(バージョン・設定構成・実ログパス付きの全アクティブ vhost)、vhost・モジュール・MIME タイプ・ポート・WebDAV を編集できます。各変更は検証(httpd -t)して優雅にリロードしてから確定し、設定が無効ならロールバックします。レガシーの macOS Server.app の Apache ツリーも理解します。Sites リストの Push to Server… は、ローカルサイトの vhost をモニタ連携サーバにドキュメントルートを差し替えて展開します。これらが対応するローカル Apache と Sites のワークフローは第 7 章が扱います。

スクリーンショット追加予定
図 8.3. ホストセレクタを連携サーバに合わせた Apache ペイン。リモートサーバで検出された vhost を Error log/Access log と Edit ボタンとともに表示。撮影手順: Apache を開き、ホストピッカーを sudo パスワードを保存済みの連携 Linux または macOS Server ホストに切り替え、検出された vhost を 2〜3 件表示

8.8KVM-over-IP:コンソールと電源、無人運用

SSH や画面共有は、マシンが起動しネットワーク上にあることが前提です。そうでないとき — カーネルパニック、BIOS/ファームウェア画面、ネットワークスタックが上がらない — に必要なのがアウトオブバンドアクセス、すなわち OS に依存せず実際の HDMI 出力を取り込み USB キーボード/マウスを注入する KVM-over-IP 機器です。リモート KVMペインは、所有する機器(PiKVM・JetKVM・TinyPilot・NanoKVM・GL.iNet Comet・汎用機)を好きなだけ登録でき、各機器はピン留めでき、Web コンソール(BIOS レベルまで)にワンクリックで接続できます。

電源制御を持つ機器はループを閉じます。ATX ボード付き PiKVM、ネットワーク PDU、あるいは GL.iNet の Comet Pro(GL-RM10) — KVM とスマート電源プラグを 1 台に兼ねる — は主電源を切り替えられ、本当にフリーズした機体を強制的に電源サイクルできます。こうした機器はサーバの電源セクション(SwitchBot・UPS・PDU コマンドと並ぶ)で電源ソースとしてリンクでき、オン/オフ/サイクルが可能です。AI 管理者からも操作できます:list_kvmskvm_powerserver_power(最後のものは reboot_host に応答しないハングしたサーバを、リンク済みのプラグ/PDU/KVM で再起動します)。

注意電源サイクルはマシンの主電源を切ります — 未保存の作業は失われ、書き込み中のディスクは破損しうるため、まず通常の再起動を試し、本当に応答しないときだけ強制サイクルを使ってください。

8.9古い Mac・Raspberry Pi・Windows ホスト

フリートの意義のひとつは、古い・風変わりなハードウェアを活かし続けることです。いまも macOS Server が動く旧来の XserveMac mini は他のホスト同様に連携できます。リモート Apache 検出は Server.app 独自の Apache ツリーと内部ポートを理解するので、その Web サイトが表示され編集でき、モニタのレガシー Intel ビルドは OS X 10.11 El Capitan までさかのぼって動きます。棚いっぱいの Raspberry Pi は通常の Linux として連携できます。モニタの arm ビルドは Zero を含む全 Pi を網羅するので、CPU・ディスク・サービスを他のすべてと並べて監視できます。

Windows ホストは Microsoft の OpenSSH サーバ経由で参加します。SSH 診断のために Linux 同様に連携し、モニタはネイティブの Windows サービスとしてインストールします(Windows サービスはマシン環境変数を確実には継承しないため、設定は実行ファイルの隣のファイルから読みます)。Windows のモニタインストールは自動プッシュではなく、Host Monitor ペインから付属の PowerShell インストーラで手動で行います。

診断を超えた対話的な制御には、カタログにリモートアクセスツール(RustDesk・MeshCentral・Apache Guacamole・Windows Remote Desktop・WinRM)も揃っていますが、それらは SSH フリート自体ではなく運用するサービスです。フリートの強みは、すべてを 1 つのウィンドウから均一・スクリプト可能・低負荷で管理できることであり、第 13 章run_script でノードを名前で指定すれば、AI がリモートサーバを 2 段階で診断・修正できます。読み取り専用のテスト、続いて最小限の修正、そして再実行で確認です。

8.10移行ウィザード:スタックを新しいデバイスへ

古いサーバの引退が「すべて手作業で再インストール」を意味することは、もうありません。FrontierStack はレガシーマシンからスタックを取り出し、選んだ移行先——この Mac、別の Mac、あるいは Linux——に立ち上げる移行ウィザードを備えています。移行元は読み取るだけで、書き込みはすべて移行先に対して行います。

Migrate Setups ペインは MAMP・XAMPP・Apple Server.app の Web スタックを扱います。移行元を自動検出し、何を引き継ぐかをチェックで選べます。Homebrew ツール、Web ファイル、MySQL データベース、サイト(vhost)、MIME の上書き、Apache モジュール、PHP 設定、WordPress の wp-config.php 修正、Git リポジトリなどです。Set up on ピッカーで移行先を選択します。This Mac のままならアプリ内で完全移行し、連携ホストを選べば SSH 経由でその新しいデバイスにスタックをインストールし、Web ファイル(rsync)とデータベース(SSH 経由のダンプ)をコピーします。Linux トグルで Homebrew の代わりに apt/dnf を使います。

Apple Server Migration ペインは Server.app マシン全体のためのワンクリックウィザードです。移行元(この Mac またはリモート)を指定すると、serveradmin で全サービス——Websites・Mail・Calendar と Contacts・Messages(XMPP)・VPN・DNS・DHCP・NetInstall・Open Directory・File Sharing・Time Machine・Profile Manager ほか——に加えて、稼働中の git サーバ・データベース・Docker・単体の Nginx なども棚卸しします。各サービスに状態バッジと現代的な代替が示され、妥当な代替が複数ある場合(Calendar → Radicale/SOGo/Baïkal、VPN → WireGuard/strongSwan、DHCP → dnsmasq/Kea)はどれを使うか選べます。移行先マシンと OS を選ぶと、代替をインストールし、正確な引き継ぎチェックリストを表示します。専用インポータを持つサービス——Websites(vhost とファイルの完全コピー)と Open Directory(ユーザとグループ)——はそれぞれのペインへ、検出された git サーバは Git Server 移行へ引き継ぎます。

メモ移行の前に、旧サーバを監視してください。Server.app の Web スタックは ポート 80/443 を Apple の serviceproxy が受け持ちますが、古いリリース——特に High Sierra——ではこのプロセスがハングします。接続は受け付け続けるのに、応答を返さなくなる状態です。ping は通り、ポートは開いて見え、SSH も使えるため、サイトは到達可能に見えながら、すべてが応答しません。この特徴ゆえに DNS やネットワークの障害と誤診されがちで、プロセス自体は生きているため「サービスは稼働中か」という確認でも検出できません。移行元マシンには http://127.0.0.1/ をサービス serviceproxy で監視する Service Guardian を設定してください(背後のバックエンドを見る場合は server-httpd)。移行を計画する間、ハングを検出して launchctl kickstart で自動復旧できます。サイトを素の Apache へ移行すれば、ハングしやすいプロキシを配信経路から恒久的に取り除けます。
メモリモート Mac の検出は serveradmin を root で実行するため、まずそのホストの sudo パスワードを設定に保存してください(第 8 章「管理対象鍵と保存された sudo パスワード」)。一部の Apple サービスは設定を自動で引き継ぎ(DNS ゾーン、Apache vhost、Postfix の main.cf)、他はコピー先に代替をインストールして手順を提示します。各項目はAutomaticAssistedManual と明示されます。

8.11Git サーバ:Gitea とリポジトリ移行

Git Server ペインは、任意の移行先——この Mac、連携サーバ、NAS、Docker ホスト、Linux——にセルフホストの Gitea(自動 HTTPS のため Caddy 背後)を立ち上げます。プラットフォームを検出して適切な方法でインストールします。稼働後はアクセストークンで接続すると、バージョン・リポジトリ数のライブ監視と、ミラーが元から遅れたときのバックアップ鮮度アラートが得られます。

同じペインで別の Git サーバを Gitea へ移行・ミラーできます。ディスク上のベアリポジトリ——レガシー macOS アプリ Simple Git ServerXcode ServerGitolite、素の git-daemon、任意のフォルダ——か、稼働中のリモートサーバ(git://https://ssh:// の任意のクローンベース。リポジトリ名は SSH で列挙するか貼り付け)を指定します。Scan でリポジトリを一覧し、Migrate で各リポジトリを全履歴・全ブランチ・全タグごとミラークローンし、API でリポジトリを作成して Gitea へ push します。コピーはこの Mac 上で実行されます。

9

第 9

ネットワークと境界

LAN 上のあらゆるデバイスを把握し、ルータのライブ状態を読み取り、外の世界からサービスへ到達する — ポートを 1 つも開けずに、あるいは開けて。

サービスを動かす Mac はネットワークの中に存在し、現実のトラブルの多くはそのネットワークから始まります — WAN リンクが切れたルータ、誤ったサブネットに紛れたデバイス、何か月も前に開けたまま閉じ忘れたポート。FrontierStack は、ネットワークとその境界(LAN とインターネットの境目)を一級のオブジェクトとして扱います。ルータを直接読み取り、LAN をスキャンしてインベントリを作り、データフロー図を描き、外部へサービスを公開するための規律ある複数の方法を提供します。

本章はサーバを取り巻くネットワークを扱います。サーバ自体を SSH で連携する方法は第 8 章、ホストファイアウォール・fail2ban・セキュリティ監査は第 10 章、Cloudflare の DNS と TLS は第 7 章を参照してください。

9.1読み取り・操作できるルータとファイアウォール

FrontierStack は、管理 API があればそれを通じて、なければ SSH で、ネットワーク機器と対話します。最も緊密な連携は OPNsense(フル REST API)と Cloudflare(第 7 章)の 2 つで、より広範なルータ・ファイアウォール群はライブ状態を報告します。Router & Network ペインでアドレス・ベンダー・API キーを指定してデバイスを追加すると、AI 管理者の router_info ツールが バージョンとモデル、稼働時間、CPU・メモリ、WAN リンクとゲートウェイ(上/下)、インターフェイス、クライアント数を読み取れます — さらに FrontierStack がマップしないフィールドの生の API JSON も。読み取り専用で、デバイス自身の API を照会し、SSH は使いません。

デバイスFrontierStack の到達方法
OPNsenseフル REST API — ライブ状態、ファイアウォールルール、境界のポートフォワード(rdr)
pfSenseAPI パッケージ経由の REST
MikroTik RouterOSREST API(RouterOS v7 以降)
Ubiquiti UniFi/EdgeOSコントローラ/ゲートウェイの API キー
OpenWrtLuCI/ubus API
DD-WRTWeb 管理/SSH
ASUSWRTルータ Web API/SSH
FRITZ!BoxTR-064/Web 管理
TP-Link Omadaコントローラ API
スクリーンショット追加予定
図 9.1. 設定済みの OPNsense ゲートウェイと、その WAN リンク・インターフェイス一覧を表示した Router & Network ペイン。撮影手順: capture: OPNsense デバイスを 1 台追加した Router & Network を開き、WAN/ゲートウェイ状態を展開して撮影
メモルータは API 資格情報がなくても見える必要はありません。Device Discovery(後述)でピン留めしたがキーを追加していない場合でも、router_info はそれがどこにピン留めされ、到達可能かを報告し — Router & Network で API キーを追加すればバージョン・ゲートウェイ・WAN・インターフェイスをライブで読み取れると案内します。

OPNsensepfSense では、API キーを設定すると継続的なファイアウォール監視(ピン留めデバイスのペインにあるトグル)が使えます。アラートのスイープごとにファイアウォール自身へゲートウェイ状態・インターフェイスのキャリア・サービスの稼働を照会します — マルチ WAN ルータがサイレントにフェイルオーバーして WAN 回線の死を隠しても(サーバは外に出られるのにサイトへのインバウンドは全滅)、原因不明の赤いドットの海ではなく、どのゲートウェイが落ち、どのポートがキャリアを失ったかを名指しで通知します。ルータには何もインストールしません。OPNsense の REST API は標準搭載、pfSense は REST API v2 パッケージのみ必要です。同じペインから OPNsense ルータをテイルネットに参加させることもできます。Mac 側で Tailscale にサインイン(Google アカウント可)して事前認証キーを発行し、デバイスペインの Tailscale セクションに貼り付けるだけで、FrontierStack が必要に応じて os-tailscale プラグインをインストールし、キーとログインサーバ(Headscale も可)を保存してサービスを API 経由で再起動します。ルータでのブラウザログインは不要です。

攻撃と障害の兆候。ゲートウェイを監視するのと同じスイープが、ルータ自身のトラブルも監視します。異常のあるルータはサイドバーでオレンジ+警告三角になります — 理由はホバーで表示。侵入検知プラグインを有効にした OPNsense では、同じ API 経由で直近の Suricata アラートを読み取り、件数と上位シグネチャを表示します(ファイアウォール UI を開かずに攻撃の試みを可視化。pfSense の REST API は IDS を一律に公開しないため現状は OPNsense のみ)。すべての監視対象ルータ — OPNsense、pfSense、OpenWrt ほか — では各スイープが、予期しない再起動(稼働時間の急減:クラッシュ・電源イベント・攻撃)、ルータ管理/SSH への総当たりの急増(失敗ログインの連続。最も多い送信元 IP をルータ自身のログから名指し)、リソース逼迫(メモリまたは負荷が危険なほど高い — DoS・暴走/侵害されたプロセス)、利用可能なファームウェア更新(古いファームウェア=既知の穴)も検出します。それぞれアラートを上げ、あるプラットフォームが報告できない兆候は単にスキップします — 誤った「異常なし」にはなりません。OPNsense と OpenWrt が最も多く報告し、pfSense の API はより限定的です。

ルータの操作と診断。AI 管理者は読み取り以上のこともできるようになりました:reboot_router はサーバの再起動と同じ方法でアプライアンスを再起動し(OPNsense/pfSense は API、OpenWrt は SSH)、「Allow changes」でゲートされます。ルータ自身のコンソールで行う方が本当に適したタスクのときは、アシスタントが open_web_ui でその Web UI を開くことを提案します — アドレスは推測せずデバイスペインから解決します。FrontierStack 自身はこれらアプライアンスのファイアウォールルールを意図的に編集しません — OPNsense/pfSense/OpenWrt は独自の設定システムでルールを管理するため、ペインとアシスタントは代わりにネイティブのファイアウォールページを案内します(ルータを右クリック ▸ Open firewall rules… が直接移動)。ペインの利便機能が 2 つあります:Diagnostics ボタンは API 不要の到達性チェック(ping、よく使う管理ポート 80/443/8443/53、逆引き DNS、ゲートウェイ)を実行するので、API キーがなくてもルータをトリアージできます。またルータ/ファイアウォールでは、Discover Services がポートスキャンではなく Web UI を開くことを提案します(自分の境界機器をスキャンするのは通常望ましくありません)。OPNsense や pfSense への SSH が拒否される場合、SSH が無効になっているか — より多いのは — 特定のインタフェース(多くは WAN ではなく LAN)でのみ許可されているためです:LAN 経由(例:VPN 経由)なら通常つながり、外部からは通常ブロックされます。Web UI で SSH と待ち受けインタフェースを有効にしてください(OPNsense は System ▸ Settings ▸ Administration ▸ Secure Shell)。SSH ボタン自体が非表示になるのは、管理シェルをまったく持たない民生用ゲートウェイ(NTT、一部の TP-Link/FRITZ!Box)だけで、その場合は Web UI が唯一の入口です。

セキュリティルータのセキュリティ兆候は読み取り専用の監視であり、アプライアンス自身のロギングの代わりではありません — しかし Suricata が発報した瞬間、誰かが管理画面に総当たりした瞬間、あるいは箱が予期せず再起動した瞬間のオレンジのドットは、境界で何かが起きていることを知る最も早い警告になることが多いのです。これらをアラートチャンネル(第 11 章)に結び付け、予期しないルータの再起動や失敗ログインの急増は、そうでないと証明されるまでインシデントとして扱ってください。

9.2Device Discovery:LAN のインベントリ

Device Discovery を開き、Find Monitors を押します(先にサブネットを選んでも構いません)。FrontierStack は選んだ /24 を利用可能なすべての方法で一斉にスイープし、ルータ・アクセスポイント・スイッチ・NAS(Synology、QNAP、ZimaCube/ZimaOS など)・プリンタ・カメラ・他のサーバをまとめて浮かび上がらせます。

  • Ping/ARP — ICMP スイープ。ARP/MAC が各ホストのベンダーを示します。TCP Probe をオンにすると、ICMP をフィルタするホストも見つかります。
  • Bonjour(mDNS)SSDP/UPnP — アドバタイズされたサービスとそのフレンドリ名。
  • SNMPLLDP/CDPnet-snmplldpd をインストールするとモデル・ポート・近隣の詳細が加わります(ペイン内のボタンでインストール)。
  • Windows サービスポート — ICMP をフィルタするマシンも、特徴的なポート(RDP・WinRM・SMB など)を探ることで見つかるため、Windows PC がスイープから隠れることはなくなりました。

スキャンは各ホストの到達方法も記録します。ローカルで AnyDesk が稼働中、または既定ポート 7070 で応答すると AnyDesk バッジが付き、この Mac 自身の tailscale status から Tailscale バッジ(ピアがオンラインなら緑)が付いてメッシュのピアを検出デバイスに対応付けます(保持するのはエンドポイント・ホスト名・OS のみで、ログイン名は保持しません)。直接接続の LAN では、macOS が既に Bonjour で把握している Mac やデバイスが低速な IP スイープより先に現れ、一覧がすばやく埋まります。デバイス詳細には対応する AnyDeskTailscale 行とアプリを開くショートカットがあります。

AI 管理者の discover_devices ツールは同じスキャンを実行し、種別を確信を持って識別できたデバイスを自動でピン留めします。あいまいなものは推測せず一覧に戻すので、アシスタントはそれが何かをあなたに尋ね、pin_device でピン留めできます。ピン留め(監視)されたデバイスはその種別のサイドバーセクションに現れ、ダブルクリックでペインを開けます。行の Open Web UIDiscover ServicesReclassifyRemove も使えます。アドレスが分かっていれば Add a device by IP フィールドが直接プローブしてピン留めします — 全体スキャンは不要です。

ヒントこの Mac とゲートウェイしか見つからない? それはほぼ確実にクライアント分離(ゲスト Wi-Fi で一般的)か VLAN 分離です — AP やスイッチがデバイス間通信をブロックしています。多くのスマートホーム機器は 2.4 GHz 専用でもあるため、バンドが別ネットワークなら、ペインのフィールドでそのサブネットを明示的にスキャンしてください。

9.3Data Map

Data Map ペインはロケーションごとのデータフロー図を描きます。1 つの拠点で、データがどこに存在し、デバイスやサービスを横断してどう流れるかを示します。FrontierStack はそのロケーションのインベントリ — 検出したデバイス、その役割、(任意で)スキャンしたポート — をシリアライズし、秘密情報を伏せて、ローカルの claude CLI を通じてあなたのサブスクリプション Claude に渡します(アプリ内ハーネスが使う従量課金 API ではありません)。返答は Mermaid フローチャートと短い説明として戻り、ペイン内でオフライン描画されます。各ロケーションの最新図は保持され、Obsidian ボールトにランブックとして保存できます。ロケーション自体は第 8 章で説明します。

9.4ポートを開く:UPnP と NAT-PMP/PCP

従来の方法でインターネットからサービスへ到達するには、ルータのポートを Mac へフォワードする必要があります。手作業でルータにログインさせる代わりに、FrontierStack はルータがアドバタイズする標準プロトコルでマッピングを依頼できます。

  • UPnP IGDminiupnpc 経由)— 一般的な家庭用ルータの方法。
  • NAT-PMP/PCPlibnatpmp 経由)— Apple 由来の方式とその現代的後継。
  • OPNsense — その API を通じて境界ルールとポートフォワードを直接設定。

これらのツールは初回使用時にオンデマンドでインストールされます。一時セッション用に作ったマッピング(Debug Share 参照)は、セッション終了時に自動で撤去されます。

セキュリティポートのフォワードは、何かが取り除くまで開いたままになる穴を境界に開けます — 偶発的露出の最も多い原因です。堅牢化・認証されたサービスにのみポートを開け、後述のトンネル方式(受信ポートを一切必要としません)を優先し、ルータのフォワード設定を定期的に見直してください。境界フォワードは公開された非 CGNAT の IP がないと機能しません。キャリアグレード NAT の背後では不可能です。

9.5ダイナミック DNS:変化する IP を追う

家庭や小規模オフィスの回線は静的 IP を持たないことが多く、今日のアドレスに向けたホスト名は明日には古くなります。Dynamic DNS ペインはホスト名を現在のパブリック IP に追従させます。NameHostname(例 myhost.duckdns.org)、プロバイダのアカウント情報でエントリを追加し、Update Now で即時公開するか、Update automatically をオンにします。更新を FrontierStack の実行中のみ行うか、システムサービスとして恒久的に行うかを選べるので、アプリを閉じてもレコードは最新に保たれます。Cloudflare ユーザにはより緊密な経路があります — パブリック IP を追う Cloudflare DDNS A レコードで、第 7 章と同じ Cloudflare 連携が動かします。他プロバイダは更新 URL による汎用インターバル更新がカバーします。

9.6トンネルとメッシュ:開けずに届く

外部からサービスへ到達するより良い方法は、受信ポートを完全に省くことです。トンネルは外向きの接続を張り、外部エンドポイントがそれに乗って戻ってくることで、何もフォワードせず NAT を越えます。

  • Cloudflare Tunnel — クイックトンネルはアカウント不要で公開 *.trycloudflare.com URL を、名前付きトンネルは恒久的なホスト名を与えます。
  • TailscaleServe はサービスを tailnet 内で非公開に保ち、Funnel は Tailscale ノードを通じてインターネットへ公開します。

マシン間の継続的な接続には、メッシュ/VPN ネットワークが、どこへ移動しても各ノードに安定した私的アドレスを与えます。FrontierStack は一般的なものを管理します — 対応ルータ(OPNsense)では API で、サーバでは SSH で。

ネットワーク内容
WireGuard現代的で高速なカーネル VPN トンネル — 他の多くが土台にする基盤層
Tailscale出口ノードとサブネットルータを持つ WireGuard メッシュ。SSH または OPNsense API で設定
Headscaleセルフホストのオープンソース Tailscale コントロールサーバ
NetBirdオープンソースのゼロトラストネットワーク。セルフホスト可能
Nebula軽量なオーバーレイメッシュ(Slack/Defined Networking)
ZeroTierゼロトラスト SD-WAN/仮想ネットワーク — エージェント+API
メモトンネルとメッシュは、近日公開の iOS コンパニオンアプリがどこからでも Mac へ到達する方法でもあります — LAN・Tailscale・Cloudflare トンネル経由で、何もオープンなインターネットに露出せずに。各デバイスは独自の署名付きリクエストキーで認証します。

9.11.1テイルネット:Tailscale 全体のビュー

サーバごとの Tailscale 操作は各サーバのペイン内にあり、SSH 経由で「そのマシンでデーモンが動いているか」を確認します。テイルネットペインは、Tailscale 自身の API でしか分からないネットワーク全体の状況を扱います。API アクセストークン(このペインは書き込みを行わないため、デバイスの読み取り権限だけで十分)を貼り付けると、各デバイスのアドレス、OS、クライアントバージョン、所有者、タグ、最終確認時刻が一覧表示されます。

このペインの価値は「要対応」リストにあります。期限が近づいたノードキー(キーが失効するとデバイスは静かにテイルネットから外れ、再認証するまで戻りません=予定された障害)、承認待ちのデバイス承認されていないルートを広告しているデバイス(ノードは正常なのにサブネットへ到達できない典型的な原因)、そして数週間チェックインしていないデバイスを表示します。キーの期限切れと承認待ちはアラートにも通知されます。

9.11.2自前の ZeroTier コントローラを運用する

ZeroTier のクライアントはメンバ側だけで、ネットワークの管理は通常 my.zerotier.com で行います。しかし zerotier-one はどのインストールでも、そのネットワークのコントローラ自体になれます。完全にセルフホストでき、メンバ一覧を第三者に預ける必要もありません。ただしこの構成にはローカルの管理 UI が一切付属しません。ZeroTier コントローラペインがその欠けた部分を埋めます。

コントローラの identity と所有するネットワークを表示し、メンバの承認キューをワンクリックの承認/取り消しで処理できます。承認済みでも 2 週間確認されていないメンバには印が付きます。使われていない許可はネットワークの穴になり続けるためです。ネットワーク名、公開/非公開、ルートIP 割り当てプールを編集でき、ZeroTier 独自のルール言語でフロールールを記述できます。入力しながらローカルでコンパイルされ、よくある構成のテンプレートに加えて、全員を締め出すルールセットを保存する前に警告が出ます。

すべての操作はコントローラ自身のループバック API に対して SSH 経由で行われます。コントローラは 127.0.0.1:9993 で待ち受け、root 権限で読めるトークンで認証するため、FrontierStack はコントローラ API を外部に公開する必要がなく、むしろ公開しない設計です。内蔵の監査は、誰かが公開してしまっている場合や、ファイル権限が緩い場合、バックアップがない場合に警告します。Prometheus への書き出し、ウォームスタンバイのバックアップ/復元、ZeroTier Central からの移行アシスタントも用意しています。

メモネットワーク ID にはコントローラの identity が埋め込まれているため、ネットワークをコントローラ間で移すことはできず、Central から ID を引き継ぐこともできません。移行とは設定を作り直し、メンバが新しい ID で参加し直すことを意味します。同じ理由で identity.secret は代替不可能です。失うと、そのコントローラが持つすべてのネットワーク ID が孤立します。暗号化して別の場所にバックアップしてください。

9.7UniFi:クラウドゲートウェイと Dream Machine

Ubiquiti のコンソールには専用ペインを用意しています。UniFi ゲートウェイは、汎用のルータ監視では見えない仕事をしているためです。UniFi ペインは Ubiquiti の 2 つの API を扱います。両者は答える問いが異なります。Site Manager キー(unifi.ui.com で作成する 1 つのキー)は、アカウント内の全コンソールを機種・ファームウェア・オンライン状態とともに一覧します。遠隔サイトが電源やインターネットを失ったことを知る唯一の方法です。ネットワークから切り離されたコンソールは、ローカルでは何も伝えられないからです。コンソール側(設定 ▸ 管理者とユーザ)で作成するローカル API キーは、ゲートウェイの現在の動作を明らかにします。

ローカル接続では、WAN 回線を ISP・レイテンシ・スループットとともに表示し、実際に通信を担っている回線を示します。この点が重要です。プライマリ回線が落ちると UniFi は無言でバックアップに切り替えますが、バックアップは多くの場合低速で従量課金です。通常これに気付くのは翌月の請求書です。さらに、アダプト済みデバイスとファームウェア、ゲートウェイが評価する順序どおりのファイアウォールルールクライアント一覧、そしてすべてのポートフォワードを表示します。有効なポートフォワードはいずれもファイアウォールに意図的に開けた穴なので、任意の送信元アドレスからの接続を受け付けるものには印を付けます。公開ウェブサーバなら妥当ですが、それ以外では確認する価値があります。

アラートは、コンソールのオフライン、WAN 回線のダウン、バックアップ回線での稼働、デバイスのネットワーク離脱、インターネットに開放されたポートフォワードを対象とします。このペインは意図的に読み取り専用です。ルールやネットワークの変更は、その検証機構がある UniFi コンソール側に残します。PoE のポート制御は次節が扱い、コンソールの単純な到達性は従来どおり Router & Network にも表示されます。

9.8Power over Ethernet:電源ボタンのない機器の電源ボタン

アクセスポイント、カメラ、ドアコントローラ、デスクフォンには電源スイッチがありません。唯一の電源は接続先のスイッチポートです。そのため、応答しなくなった機器の復旧手段である「電源を入れ直す」には、通常ベンダの Web UI にログインするか、キャビネットまで歩く必要があります。

Power over Ethernet ペインは、そのポートをボタンに変えます。管理スイッチを IP で追加すると、ポートごとに PoE の状態(給電中、検索中、障害)、受電機器のクラス、優先度、スイッチが報告していれば消費電力が表示され、電源のオン/オフ電源の入れ直しが行えます。さらにスイッチの電力バジェット(総容量、使用中の電力、スイッチ自身の使用率しきい値の超過警告)も表示します。しきい値を超えるとスイッチは優先度の低いポートから給電を止めるため、ポート優先度もここで変更できます。

幅広く動作するのは PoE が標準化されているからです。RFC 3621 の POWER-ETHERNET-MIB は、ほぼすべての管理スイッチ(Cisco、Aruba/HPE、Netgear、TP-Link/Omada、Ubiquiti、MikroTik、D-Link、Zyxel)が実装しています。読み取りにはデバイス検出の SNMP コミュニティを使います。ポートの電源操作には読み書き可能なコミュニティが必要で、スイッチごとに設定し、キーチェーンに保存されます。接続機器の電源を切る操作は明示的な同意に値しますし、多くのスイッチではこのコミュニティが読み取り専用とは別に管理され、初期状態では無効になっています。監視を有効にすると、障害状態のポートや電力バジェットを超えたスイッチがアラートに上がります。どちらも、誰かがカメラの停止に気づくまで見えないままになりがちな問題です。

スクリーンショット追加予定
図 9.2. Power over Ethernet ペイン:ポート一覧の上にスイッチの電力バジェット、1 つのポートが電源入れ直し中。撮影手順: capture: open Power over Ethernet with one switch added and its ports listed

9.9インターネットヘルスと速度テスト

Internet Health ペインは回線そのものを見るための画面です。Targets の一覧(Cloudflare の 1.1.1.1 など、編集可能)を継続的に ping し、レイテンシとパケットロスを表示して 30 秒ごとに再テストします。ICMP をブロックするホストは :443 への TCP 接続レイテンシにフォールバックします。Live Traffic は全アクティブインターフェイスのリアルタイムスループットをグラフ化し、Addresses & Networks は各インターフェイス、そのサブネット(直接到達できるネットワーク)、ゲートウェイを一覧します。組み込みの traceroute は、トラフィックが横切る ISP やトランジット事業者を示します。Speed Test セクションで Test Now を押す — または AI に internet_speed を頼む — と、ダウンロード・アップロード・レイテンシ・応答性を測定します。Ookla の speedtest CLI があればそれを、なければ Apple の networkQuality を使います。

9.10Debug Share:localhost サーバを一時的に公開

localhost で動く開発サーバを同僚やスマホに見せたいとき、Debug Share ペインがそれをセッション中だけ公開し、その後自ら閉じます。ポートを入力(または Scan localhost で稼働中のサーバを検出)し、Expose via で公開方法を選び、Auto-close 時間を設定して、Open debug session を押します。すべての共有は FrontierStack 終了時にも自動で閉じます。

方法到達範囲
Cloudflare Quick Tunnel公開 *.trycloudflare.com URL、アカウント不要 — クライアントやスマホへの手早いプレビューに最適
Tailscale Serve非公開 — tailnet 内からのみ到達可能
Tailscale Funnel公開、Tailscale ノード経由(tailnet で Funnel を有効化する必要あり)
LAN forwarder0.0.0.0:<自動> → 127.0.0.1:port ブリッジ。同一 LAN の他マシンがループバック専用サーバへ到達できる

LAN フォワーダには 2 つの追加機能があります。ホストファイアウォールがオンなら、ペインに Open port in firewall が現れ、そのポートをセッション中だけ pf ルールで許可します。また Outside access ピッカーで UPnP・NAT-PMP・OPNsense API 経由の WAN ポートをマップし、DDNS host と組み合わせれば、LAN 共有をパブリックインターネットから到達可能にできます — マッピングは共有終了時に削除されます。AI 管理者もセッションの開始・一覧・終了ができます(debug_share_open_list_close)。「Allow changes」がオンなら MCP 経由でも可能です。

セキュリティDebug Share は TTL を中心に設計されています。各セッションは自動終了タイマーを持ち、アプリ終了時にも撤去されるため、露出があなたの注意を超えて生き残ることはありません。ウィンドウは短く保ち、トンネル方式(受信ポートを開きません)を優先し、クイックトンネル URL はそれが生きている間、知る者すべてに対して公開であることを忘れないでください。

9.11名前付きトンネル:恒久的な公開ホスト名

クイックトンネルはあえて使い捨てです。この Mac のサービスを実際のアドレスで恒久的に到達可能にしたいとき — セルフホストのアプリ、社内ダッシュボード、Webhook 受信口など — は、代わりに名前付きトンネルを使います。サービスに自分の Cloudflare ゾーン上の安定したホスト名(例:app.example.com)を与え、再起動しても維持され、他のトンネル同様に着信ポートを一切開きません:Mac が Cloudflare のエッジへダイヤルアウトするため、フォワードするものも、ポートスキャンで見つかるものもありません。

Cloudflare ペインの名前付きトンネルセクションで作成します:新規トンネル…、続いて自分のゾーン配下のホスト名と、その前段に置くローカルポート。FrontierStack はすでに保持しているトークンを使い、Cloudflare API 経由でセットアップ全体を実行します — トンネルを作成し、イングレスルール(hostname → http://localhost:PORT)を書き込み、ホスト名を <id>.cfargotunnel.com に向けるプロキシ済み CNAME を追加し、cloudflared service install で永続デーモンをインストールします。最後の手順には一度きりの管理者プロンプトが必要です(/Library 配下に LaunchDaemon を書き込みます)。cloudflared 自体は初回利用時に Homebrew から取得されます。トンネルと DNS の作成だけを行い、cloudflared を別ホストで実行したい場合は、この Mac で今すぐ実行のチェックを外します。削除はそのすべて — デーモン、DNS レコード、アカウント側のトンネル — を巻き戻します。AI 管理者も同じ 3 つの動詞(tunnel_createtunnel_listtunnel_delete)を持ち、作成はサービスをインターネットに公開するため赤い確認でゲートされます。

メモcloudflared service install は Mac ごとに 1 つのシステムデーモンを実行するため、ローカルで一度に動く名前付きトンネルは 1 つです。追加の名前付きトンネルをアプリで作成・ルーティングし、その cloudflared コネクタを他のマシンで実行することは可能です — アカウント・ホスト名・DNS はいずれの場合もセットアップされます。
10

第 10

セキュリティと堅牢化

境界を守るのは仕事の半分にすぎません。本章では、使っていない扉を閉じ、開いている扉を見張り、そこを通ってよい相手を証明する方法を扱います。

サーバが最も無防備になるのは、何かに攻撃されたときではなく、静かに状態がずれていったときです。開けっ放しのファイアウォール、誰も無効化しなかったパスワードログイン、先週切れた証明書、誰にでも中継してしまうメールサーバ。FrontierStack は堅牢化を一度きりのチェックリストではなく、継続的で観測可能な状態として扱います。セキュリティペインは目の前のホストのコンソールであり、AI 管理者(第 13 章)が同じチェックを SSH 経由でフリート全体に適用します。ここで扱う内容はすべて、変更を依頼するまで読み取り専用で、どの変更もあなたが手作業で行えるものです。

10.1ファイアウォール:Application Firewall と pf

macOS は 2 つのファイアウォールを備えており、FrontierStack は両方を読み取ります。Application Firewall(ALF)はシステム設定で構成するアプリ単位の層で、セキュリティペインはその状態(有効・ステルスモード・すべての受信をブロック・アプリルール数)を表示するので、有効になっているかひと目で確認できます。pf パケットフィルタはより下位のポート単位の層で、FrontierStack が直接管理するのはこちらです。

アプリが管理する pf ルールは専用ファイル ~/Library/Application Support/FrontierStack/pf-frontierstack.conf に置かれ、システムの /etc/pf.conf に冪等に組み込まれた専用の frontierstack アンカーに読み込まれます。ルールを専用アンカーに置くことで、FrontierStack が Apple の基本ルールセットを編集することはなく、あなたのルールはリロードしても他を壊さずに残ります。ルールの追加・削除では、認証付きの管理者プロンプトを通じて pf がリロードされます。

AI 側では firewall_rule ツールがポートに対する許可/拒否ルールを 1 つ追加・削除し、必要に応じて送信元アドレスで絞り込みます。まず対象の OS を判別し、This Mac とリモートの macOS ホストには pf(frontierstack アンカー)を、Linux サーバには ufw を使います。Mac に ufw コマンドを、Linux に pf ルールを送ることは決してありません。

スクリーンショット追加予定
図 10.1. セキュリティペイン:上部にファイアウォール状態、続いて侵入防止、SSH 堅牢化監査、開放ポート一覧。撮影手順: fail2ban を導入しいくつかのポートが待ち受けているホストでセキュリティペインを開き、Application Firewall の概要と Open Ports セクションが見えるようスクロールして撮影
注意誤ったポートへの拒否ルールは、リモートホストから締め出される原因になります — FrontierStack 自身がそのホストへ到達するために使う SSH ポートを含みます。ネットワーク越しにしか到達できないサーバで pf や ufw を締める前に、ルールが管理経路を許可していることを確認し、別の入口(コンソール、KVM-over-IP、Headless Setup の画面共有)を確保しておいてください。

10.2侵入防止と開放ポートの監視

開いたままにせざるを得ないポートにも見張りは必要です。セキュリティペインは 2 つの侵入防止エンジンを統合します。fail2ban は不正なログパターンに合致した IP アドレスを禁止します — SSH や Apache へのブルートフォースが典型です。ペインには導入・稼働状況、jail 数、現在禁止中のアドレス数が表示され、ワンクリックのリロードと、既存の設定を上書きせずに健全な SSH jail を投入する「スターター jail.local を書き込む」アクションがあります。CrowdSec はその上に共有レピュテーションネットワークを加え、アクティブな決定数とメトリクスボタンを表示します。どちらも Homebrew で導入する root サービスです。

Open Ports セクションはホスト上のすべての待ち受けを一覧します。併設の監視 — リモート操作・画面共有の露出 — は、VNC/画面共有(:5900)、Apple Remote Desktop、AnyDesk、TeamViewer、Chrome Remote Desktop、Splashtop、RustDesk、Tailscale の exit-node 広告を特に検出し、今まさに誰かが接続していれば赤く表示します。Recent IntrusionsActive Bans セクションは fail2ban.log、CrowdSec、Suricata の eve.json、Wazuh の alerts.json からの検出を新しい順に集約し、動かしていないソースは単に飛ばされます。新たな禁止、新たな待ち受け、進行中の受信セッションはそれぞれアラートを上げられます — 配信は第 11 章で設定します。

10.3SSH の堅牢化

SSH は多くのサーバで最も価値のある扉なので、セキュリティペインには SSH Hardening Audit があります。sshd -T で実効構成を読み — ディスク上のファイルではなく、ドロップインを適用したあとにデーモンが実際に使う設定を読み — 重要な項目(PermitRootLoginPasswordAuthentication ほか)を指摘します。SSH がネットワークから到達可能なときは、ペインがそれを明示します。まさにそこで指摘が効いてくるからです。

インターネットに面したホストの基本は、鍵ベース認証と PasswordAuthentication no です。修正は本体ファイルではなく /etc/ssh/sshd_config.d/ を編集して行えば、パッケージ更新でも堅牢化が残ります。FrontierStack 自身のフリートチャネルはすでにこれらに従っています。Ed25519 鍵、BatchMode=yesIdentitiesOnly=yes、そして known_hosts に記録される初回接続時のホスト鍵信頼(第 8 章)を使います。ホストの鍵アクセスが壊れた場合、repair_ssh_access ツールがローカルのボールトに保管した一度限りのログインパスワードで管理鍵を再インストールします — パスワードは Mac 上で読まれ、AI に送られることはありません。

10.4サーバセキュリティ:リモートホストの状態チェック

ここまではこの Mac のセキュリティペインの説明でした。サーバセキュリティペインは連携サーバ向けの対になるもので — 同じ状態チェックを SSH 経由で、フリート内のどのホストに対しても行います。サーバの詳細を開いてセキュリティ横の チェック… をクリックするか、ペインを直接開いてホストメニューからサーバを選びます。1 回のスキャンで、重要な SSH ハードニングPermitRootLoginPasswordAuthentication、待ち受けポート)、ファイアウォールの有無と有効状態(ufwfirewalldnftables、生の iptables)、稼働中の侵入防止エンジン(fail2ban、CrowdSec)、保留中のセキュリティ更新の件数(aptdnfyum)、全インタフェースで待ち受けるサービス、ホスト整合性の兆候(スティッキビットのない誰でも書き込み可能なディレクトリ、想定外の SUID バイナリ)を報告します。

各所見は High · Warning · Info · OK でスコア付けされ、1 行のサマリバッジにまとめられます。フリートを見渡して、どのホストが対応を要するか一目で分かります。ペインは何も変更しません:修正するリンクが、実際に変更を行うペインへ移動します — ファイアウォールを有効化・ルール編集するサーバファイアウォールペイン、リモートツールの SSH ハードニングレビュー、fail2ban/CrowdSec を導入するセキュリティツールなど。root またはパスワードなし sudo で最も深く読み取れますが、なければ可能な範囲で実行し、その旨を伝えます。相互リンクは双方向です:ローカルのセキュリティペインは macOS ファイアウォールへ、サーバセキュリティはサーバファイアウォールへ、ピン留めサーバのペインは両方へリンクします。

セキュリティサーバセキュリティは厳密に読み取り専用です — ルールを開くことも何かを導入することもありません。これは意図的です:変更ウィンドウなしで本番ホストに対して実行できる状態スキャンは実際によく実行されるものであり、よく実行することこそ、メンテナンス後に誰かが有効化し忘れたファイアウォールを捕まえる鍵です。High の所見をアラートチャンネル(第 11 章)に結び付けておけば、ホストがドリフトした瞬間にスキャンが知らせてくれます。

10.5Malware Audit ペイン

Malware Audit ペインは 1 台の Mac のための防御者のダッシュボードで、安価で常時動く確認から重いフォレンジックへとセクション順に構成されています。

セクション確認内容
ProtectionsApple 自身の層 — Gatekeeper(未署名アプリのブロック)、SIP(システム整合性保護)、FileVault、そして既知のマルウェアを自動でスキャン・除去する XProtect/XProtect Remediator。Re-check で再取得します。
Persistence & Autorunsサードパーティの LaunchAgentsLaunchDaemons — macOS の典型的な永続化ポイント。未署名の項目はオレンジで表示されるので、自分で入れたものか確認できます。Apple 署名済みの項目は正常です。
ClamAV On-Demand Scanシグネチャベースのアンチウイルス。パスを指定しScanすると感染ファイルの一覧が出ます。初回スキャン前にUpdate Signatures (freshclam)を実行してください。読み取り専用で、報告はしても削除・隔離はしません。
YARA Rule ScanIOC やマルウェアファミリーに対するルールベース分類。YARA-X(yr)またはクラシック YARA を使います。脅威インテリフィードのルールと組み合わせてください。
File Reputationファイルの SHA-256 を計算し、その VirusTotal レポート(70 以上のエンジン、API キー不要)を開きます。ファイル本体はアップロードされず、ハッシュだけが使われます。

同じオンデマンド ClamAV スキャンはセキュリティペインにもあり、AI の malware_scan ツールは依頼に応じて任意のパスに対し ClamAV や YARA を実行します — いずれも読み取り専用です。

Malware Audit ペイン上部:Apple の組み込み保護層 &mdash; Gatekeeper・SIP・FileVault ディスク暗号化・XProtect &mdash; を 1 行説明と Re-check ボタン付きで確認。下部(非表示)には永続化/autoruns と ClamAV・YARA スキャナが並びます。
図 10.2. Malware Audit ペイン上部:Apple の組み込み保護層 — Gatekeeper・SIP・FileVault ディスク暗号化・XProtect — を 1 行説明と Re-check ボタン付きで確認。下部(非表示)には永続化/autoruns と ClamAV・YARA スキャナが並びます。

10.6より深いフォレンジックツール

クイックスキャンでは足りないとき、重い解析はSecurity Toolsカタログカテゴリの導入可能サービスとして用意されています — カタログのフィルタ(第 6 章)で表示できます。Volatility 3 は RAM キャプチャを調べるメモリフォレンジックフレームワーク、capa は実行ファイルに潜む機能(capability)を特定し、CAPECuckoo サンドボックスは疑わしい検体を隔離環境で起爆させ、その構成と挙動を抽出します。その隣には Wazuh(ファイル整合性監視付きのホスト SIEM/XDR)や、URLhausOpenPhishOpenCTI といった脅威インテリフィードがあり、YARA やサンドボックスのルールを供給します。これらは組み込みペインではなく本格的なツールです。FrontierStack が導入・管理するので、インシデントが要求したときにそこにあります。

10.7EDR Fleet ボード

すでにエンドポイントで商用 EDR エージェントを動かしているなら、EDR Fleet ペインがすべてのコンソールを横断する読み取り専用の集約を提供します。Add Console… を選び、プロバイダを選んで API 資格情報を貼り付けます — キーチェーンに保管され、AI には見えません。エンドポイント数と未対応検出数は各ベンダーの REST API から取得され、対応は SentinelOneHuntressCrowdStrikeSophos CentralBitdefender GravityZoneMicrosoft Defender for EndpointJamf ProtectLimaCharlie は到達性のために接続し、その他のコンソールは Generic(到達性のみ)として追加できます。Fleet totals 行が全体を合算します。ボードは数分ごとに更新し、コンソールが到達不能になると Security グループのアラートを上げ、未対応検出数がアラートの詳細に同伴します。深い作業には Open Console でベンダー自身のダッシュボードへ移動します。

メモEDR Fleet はベンダーのコンソールを置き換えるものではありません — 主要な数字を集約し、1 つのボードで「すべて接続済みで静か」だと分かるようにし、コンソールが応答しなくなった瞬間に通知します。数字は各ベンダーの公開エンドポイントに対するベストエフォートなので、対処の前に自分のテナントで確認してください。

10.8読み取り専用のセキュリティ監査

ホストの実態を最も早く知る方法は、AI の security_audit ツールです。This Mac または連携サーバに対し SSH 経由で、完全に読み取り専用の包括的なスイープを実行します。OS を自動判別し、保留中のセキュリティ更新、ディスク暗号化(FileVault または LUKS)、ファイアウォール(macOS では Application Firewall + pf、Linux では ufwiptables)、SSH 堅牢化、待ち受けポート、UID-0 と特権アカウント、パスワード不要の sudoNOPASSWD)項目、侵入防止、直近の失敗ログインを確認します。パスワード不要の sudo は使える場合のみ使い、使えない場合は優雅に縮退します。何も変更されません。優先順位付きの所見と具体的な修正案が得られ、自分で適用しても、通常の承認カードを介して AI に戻しても構いません。リモートで監査するには target にサーバ名を、ローカル Mac なら省略します。

10.9セキュリティ監査ペイン:サンドボックス内の「悪用可能なものだけ」監査

上記の読み取り専用 security_audit はホストがどう構成されているかを教えてくれます。セキュリティ監査ペインはより難しい問い — ここで攻撃者が実際に悪用できるものは何か? — に答えます。コーディングエージェントを敵対的な監査担当に変え、対象を把握し、多角的に攻撃を試みます — インジェクション、アクセス制御不備、認証・認可、ビジネスロジック、暗号、シークレット露出、SSRF、設定ミス、連鎖攻撃 — そして各所見を自ら反証しようと試み、具体的な攻撃経路があるものだけを残します。各所見には攻撃シナリオと修正案が付き、理論上のノイズはありません。

2 つのモードがあります。コードベースはエージェントをリポジトリや Web プロジェクトのフォルダに向け、ソースを監査します。インフラは FrontierStack が既に集めている信号 — Cloudflare ゾーンとその TLS/WAF 設定、ドメイン/証明書の健全性、ピン留めサーバの OS・公開サービス・リモートアクセス・MDM/アクティベーションロック/FileVault 状態、ローカルファイアウォール — を秘匿化したインベントリにまとめ、エージェントがそれを攻撃します。

実行全体は Sandcastle の Docker サンドボックス内で行われるため、信頼できないコードに向けた敵対的エージェントがホストに直接触れることはありません。初回監査時にサンドボックスのイメージとランナーをアプリが構築します(Docker または Podman の起動が必要)。以降は即座に開始します。所見は重大度バッジ付きで表示され、Obsidian に保存したり、重大/高リスクを アラートとして発報できます。他と同様、Mac から出るのは秘匿化済みのプロンプトのみ(シークレットは事前に除去)で、サンドボックス内のエージェントは claude setup-token のトークン(または Anthropic API キー)であなたの Claude サブスクリプションで認証します。

注意対象は git リポジトリである必要があり(Sandcastle は git worktree でツリーをスナップショットします)、認証情報ファイル — .env、秘密鍵、service-account.json — を含むフォルダはサンドボックスにマウントせず拒否します。クリーンなチェックアウトを監査してください。

10.10Strix:AI ペネトレーションテスト

ここまでの監査は読み取り専用で、ホストの構成やコードのどこが悪用可能かを調べるものでした。Strix はさらに踏み込み、能動的なペネトレーションテストを実行します。セキュリティペインの Strix AI セキュリティテストセクションから、リポジトリフォルダ、Git URL、ドメイン、URL、IP アドレス(または連携ホストのいずれか)を指定し、深さを クイック標準ディープから選ぶと、攻撃対象領域をマッピングし、実際の攻撃経路を試み、ペネトレーションテストレポートを作成します。

FrontierStack はこれを、オープンソースの Strix コマンドラインエージェントを Mac 上でローカルに駆動し、そのディスク上の実行成果物 — 検出結果・実行メタデータ・レポート — を読むことで行います。ホスト型サービスをスクレイピングすることはありません。CLI が未導入ならその旨を示し Install Strix… リンクを提示します。Update Strixuv または pipx 経由で更新し、スクリプトをシェルにパイプすることはありません。AI プロバイダキーは任意で、指定した場合は macOS Keychain に保存され、ローカルの Strix プロセスにのみ渡され、表示もクラウドモデルへの送信もされません — ペインはキーが設定済みかどうかのみを示します。

タイルは直近の実行を要約します:Critical・High・Medium の件数、所要時間、24 時間以内の新規、失敗したスキャン。実行中はライブのフェーズ表示と Stop ボタンが出て、新しい Critical/High の所見が現れると(アラートを消音が有効でない限り)ローカル通知が届きます。検出結果を開くレポートを書き出すで詳細を確認でき、失敗したスキャンを再実行スキャンエンジンを再起動で不調から回復します。重大な所見は機微情報として扱われ、クラウド AI に送られることはありません。AI アドミニストレーターからも strix_statusstrix_scanstrix_control で駆動でき、第 13 章で扱います。

セキュリティStrix は対象を能動的に探索するため、「このターゲットを所有しているか、テストの明示的許可がある」にチェックするまでスキャンは開始しません。所有しているか、明示的にテスト許可を得たシステムにのみ向けてください。

10.11Certificate Sources と TLS

証明書の失効は自ら招く障害です。Certificate Sources ダッシュボードは、ホスト上の発行スタックごとに 1 行を表示します — Let's Encrypt(acme.sh 経由)、Certbot、Step CA、Traefik、Cloudflare SSL — 失効日は openssl で証明書そのものから直接読み取ります。Cloudflare は分析用に構成したトークンとゾーンを使い、この Mac に存在しないソースは淡色で表示されます。Traefik はその acme.json を、Step CA はその URL をダッシュボードに指定できます。

証明書の発行には 2 つの経路があります。mkcertローカルで信頼される証明書を作成します — 公的 CA が無関係な .localhost や LAN 名での開発に最適で、Certificates ペインの Get アクションは導入済みならこれを使います。一般に公開するものには Let's Encrypt を使います。AI の issue_certificate ツールが This Mac または連携サーバで acme.shcertbot を実行し、DNS-Cloudflare 方式では実行時に注入される CF_TOKEN ボールトシークレットを読み — モデルに送られることはありません。

10.12メールのセキュリティ

メールサーバには 2 つの異なるリスクがあります。なりすまされること(誰かがあなたのドメインとしてメールを偽造する)と、悪用されること(見知らぬ相手のためにメールを中継する)です。FrontierStack は両方に対処し、Postfix が下層にいる旧 Apple Server のケースも理解するツールを備えます。

  • なりすまし対策の DNSemail_auth_dns が SPF、DMARC、(任意の)DKIM の TXT レコードを生成します。SPF はドメインの送信元を宣言し、DMARC は失敗時の扱いを受信者に伝え、DKIM は送信メールを暗号署名します。publish=cloudflare ならレコードを作成し、そうでなければ BIND、dnsmasq、レジストラに貼り付ける正確なレコードを表示します。
  • DKIM 鍵generate_dkim_key はサーバ上でドメインとセレクタに対し opendkim-genkey を実行し、公開鍵を公開すべき TXT レコードとして返します。秘密鍵は OpenDKIM ミルターのためサーバに残ります。
  • Postfix の堅牢化harden_mail_postfix は SSH 経由で postconf により安全なデフォルトを適用します。中継には SMTP AUTH を必須化(これでオープンリレーを閉じます)、未知・未登録の送信元ドメインを拒否、任意で送信者/ログインの一致を強制します。Postfix をリロードし、実効設定を表示します。
  • オープンリレーテストtest_open_relay は安全な SMTP 会話(EHLO/MAIL FROM/RCPT TO を外部ドメインへ、送信せず QUIT)を行い、外部宛先が拒否されたか(良好)受理されたか(オープンリレー — 不良)を報告します。
注意クラシックな macOS Server を動かす Mac では、Postfix が serveradmin によって管理されている場合があり、main.cf を上書きして harden_mail_postfix の変更を黙って取り消すことがあります。実行後に結果を確認し、戻ってしまった場合は同等の設定を Server.app から再適用してください。

10.13外部から変更してよいのは誰か

ここまでは FrontierStack が面倒を見るマシンの堅牢化でした。本節は FrontierStack 自身の堅牢化です。フリート全体の SSH 鍵・データベースのパスワード・クラウドトークンを預かるアプリは、管理下のどのサーバよりも魅力的な標的だからです。

FrontierStack は複数の入口から外部操作できます。AI クライアント向けの MCP サーバ、Webhook やモバイルパネル向けの受信 HTTP 制御サーバ、ショートカットや Siri 向けの App Intents、そして有効化した場合のエージェント連携です。いずれも独自のトークンを持ちますが、その上位にリモート制御・ロック内の 2 つの設定があります。それぞれが答える問いは異なります。

アプリロックは「ロック中に何が残るか」に答えます。パスワードを設定してロックすると、ウィンドウは覆われ、すべての外部経路が完全ブロックか読み取り専用に制限されます。

外部からの変更は別の問いに答えます。ロックしていない状態で、外部の呼び出し元が何かを変更するまでに何を要求するか、です。MCP サーバ・制御パネル・ショートカット・コマンドラインのすべての外部経路に同時に適用されます。レベルは 3 つ。全自動は確認なしで実行させます。接続するクライアントとその動作環境をすべて信頼できる場合にのみ妥当です。既定の操作ごとに確認は、変更のたびに呼び出し元を明示した承認パネルを表示します。パスワードが必要は、外部ツールがサーバに触れる前にパスワードを求めます。

確認レベルには、障害対応時に効く逃がし弁があります。承認時にこのセッションのみ許可を選ぶと 5 分間有効になりますが、その呼び出し元・その種類の操作に限られます。MCP クライアントからのサービス再起動を承認しても、同じクライアントでのシェル実行や、モバイルパネルからの再起動が許可されるわけではありません。この狭さこそが要点です。障害中に確認が繰り返されることが、人を「全自動」へ恒久的に切り替えさせる主因であり、横に漏れる許可はそれ以上に危険だからです。

どのレベルでも共通する 3 つの性質が、この設定を単なる設定項目ではなく信頼できるものにしています。読み取りは決して制限されません。障害中に暗転するダッシュボードは害にしかならないため、監視クライアントはどの設定でも動き続けます。認証情報・シェル・FrontierStack 自身の設定は、どのレベルでも外部から変更できません。これらは確認を出すのではなく拒否されます。パスワードの読み出しや任意コマンドの実行にとって、リモートツールからの要求はそもそも発生源として適切ではないという判断です。そしてセッション許可はディスクに書かれません。アプリの終了やロックで消えるため、5 分間の利便性が、与えたことを忘れた恒久的権限に変わることはありません。

メモパスワードを設定しないままパスワードが必要を選んだ場合、外部からの変更は確認に降格せずブロックされます。厳しいはずの設定が黙って最も緩い設定になるのは、設定がないことより悪いためです。

10.14auth.md によるエージェントログイン

パスワードは自動化に最も向かない資格情報なので、FrontierStack はサードパーティサービスの長期パスワードを貼り付けるよう求めることは決してありません。代わりに auth.md を検出します — サービスが https://<host>/auth.md に公開できるオープン仕様(WorkOS 発)で、AI エージェントが代理でサインインする方法を伝えます。サービスの Connect ▸ Login Automation (auth.md) 開示と、AI の check_authmd ツールがその公開ファイルを取得し、広告されたフロー(agent-verified または user-claimed)、スコープ、OAuth エンドポイントを要約します — あるいは未公開と報告します。付与そのものはサービス側で行われ、短命で取り消し可能、スコープ付きのトークンが発行されます。FrontierStack はパスワードを保存しません。現在 Cloudflare と Firecrawl が auth.md を公開しており、対応サービスは増えつつあります。

10.15署名付きリクエストの信頼モデル(FS1)

FrontierStack 自身の制御面 — ローカルの制御サーバ、MCP サーバ、リモートの fsagent — は TLS 上のベアラートークンで保護されています。しかしトークン単体は共有秘密であり、再送可能で、誰が呼んでいるかの証明にはなりません。FS1 署名付きリクエストはその上に第二の要素を加えます。すべてのリクエストが承認済みのデバイス単位 Ed25519 鍵で署名され、サーバは公開鍵の許可リストを保持し、明示的に承認していない鍵で署名されたものを拒否します。漏れたトークンはそれ単体では何も制御できません — これはフリートがすでに信頼している SSH 鍵の HTTP 版です。

各リクエストはデバイスの鍵 ID、タイムスタンプ、ランダムなノンス、正規化文字列に対する署名を運びます。サーバは、鍵が承認済みであること、タイムスタンプが 60 秒の窓内であること、ノンスが未使用であること(署名が検証されたにのみ消費されるため、不正な署名でノンスを浪費できない)、署名が有効であることを検証します。同じ方式が macOS アプリ、Go エージェント、iOS クライアントで同一に実装され、言語横断テストで固定されています。

デバイスはサイドバー概要グループの Paired Devices ペインで管理します(以前はこのセキュリティペイン内にありました)。ペア済みの各電話・タブレットには、ラベル、鍵フィンガープリント、最終確認時刻、スコープ選択、Revoke ボタンが表示されます。ペアリングは数台ずつ持つ 1〜2 名を想定し — 登録は 4 台まで — 各デバイスはスコープを帯びます。

スコープ状態・ログの閲覧サービス再起動フリート操作ツール/CLI/スクリプト
readOnly
restart
operate
full

同じセクションには、制御サーバと MCP サーバそれぞれの署名要求(Require request signing)スイッチがあります。展開は意図的に緩やかです。署名が任意のあいだサーバはトークンまたは署名を受け入れ、すでに持っているトークンで最初の鍵を登録できるブートストラップ例外があるため — 強制を有効にしても全員を締め出すことは決してありません。

各行にはさらに 2 つのデバイス単位の制御があります。AI 管理者を許可(既定はオン、どのスコープでも)は、その電話が AI と会話できるかどうかを制御します — 信頼する 1 台にはチャットを許可しつつ別の 1 台をブロックできます。このスイッチは制限のみを行います:オンでも AI は依然としてアプリのロック解除、署名済みデバイス、変更を伴う操作には full スコープの「変更を許可」を必要とします。リモートシェルを許可full スコープでのみ表示され、既定はオフです。これは電話がコマンドラインシェルを開き、さらにこの Mac がオフラインでも直接アクセスするために自身の SSH 鍵をサーバに導入するために必要な明示的許可です。電話を紛失した場合、紛失した電話を保護は端末と古いキュー操作を直ちに遮断し、セッションを終了し、到達可能なサーバから直接 SSH 鍵を削除し、プッシュトークンを無効化します。オフラインのサーバは復帰後にクリーンアップを完了できるよう一覧に残ります。

Bluetooth によるペアリングのフォールバック。新しい電話が Wi-Fi や Tailscale でこの Mac に到達できないとき — 制限されたゲストネットワーク、クライアント分離、キャプティブポータルなど — 登録は Bluetooth 経由でも完了できます。Bluetooth ペアリングを許可(既定はオフ)を有効にすると、Mac はペアリングダイアログを開いている間だけ短命の GATT サービスをアドバタイズします。電話は同じ一度きりの QR コードをスキャンし、まったく同じ署名付き登録ハンドシェイクを実行します — HTTPS の代わりに BLE で運ばれるだけです。FS1 署名はトランスポートに依存しないため、Bluetooth 経路は TLS チャンネルなしで同じ信頼保証を継承します。

セキュリティ各デバイスはその役割を果たす最小のスコープでペアリングしてください — 詰まったサービスを再起動するだけの電話なら full ではなく restart で。すべてのデバイスを登録したら、両サーバで署名要求を(エージェントでは require_sign を)有効にします。その後は、漏れたりスクリーンショットされたトークンは何も制御できません。呼び出し側は承認済みの秘密鍵も持っていなければならないからです。電話を紛失したり担当者が離れたら、ただちにデバイスを取り消してください。

10.16ヘッドレス Mac の堅牢化

ディスプレイのないサーバには固有のセキュリティ上のトレードオフがあり、Headless Setup ツール(詳細は第 8 章第 17 章)はここで最も重要なものを表に出します。System Status セクションは FileVault が有効なとき警告します。キーボードも画面もない暗号化 Mac は起動時に解除できず — オンラインに戻る代わりに FileVault のプロンプトで止まるからです。ヘッドレス機では一般に、フルディスク暗号化と無人再起動のどちらかを選ぶことになり、FrontierStack はその選択を、次の停電後に気づくのではなく明示的にします。そうしたホストで画面共有やリモートログインを有効にすることは、まさに Open Ports 監視がその後見張る種類の露出です。

11

第 11

監視とアラート

継続的なヘルススイープが、気にかけるすべてのサービス・デバイス・サブシステムを見守り、トラブルの最初の兆候を、あなたが普段確認しているアプリへのメッセージに変えます。

変更しかできないコントロールパネルは、半分の道具にすぎません。もう半分は、何かがおかしくなったとき——できれば障害になる前に——それを知ることです。FrontierStack は、監視対象として登録したすべてを継続的にスイープし、トラブルの最初の兆候を、あなたが選んだチャネルへのメッセージに変えます。本章では、全体を要約する Local Health ボード、警告を発報・配信する Alerts ペイン、それを運ぶメッセージングゲートウェイ、そしてクラウドサービス・プロジェクトツール・電源・ストレージ向けの専用モニタを扱います。

11.1Local Health ボード

Overview ▸ Local Health を開くと、「今、何か壊れているか?」に答える 1 画面が現れます。監視対象のサービス・デバイス・サブシステムはすべて UP または DOWN の行として、領域別(Web・データベースサービス、フリート、サイトと証明書、ディスク、UPS・SNMP デバイス、接続済みクラウドアカウント)にまとまって表示されます。最上部には X up / Y down の形式で 1 行サマリーがあり、すべての行を読まずともフリート全体の状態をひと目で把握できます。

このボードは、AI 管理者が get_server_health ツールで読むのと同じデータです。「何が落ちている?」と尋ねれば、この画面が示す内容をそのまま報告し、修正案を出す前に調査を申し出ます(第 13 章参照)。スイープはおよそ 60 秒ごとに走り、各 DOWN 項目はそれを所有するペインにも紐づけられます。これがサイドバーの行や Dock アイコンに赤いカウントのカプセルが現れる理由です——トラブルが「ある」だけでなく「どこにあるか」が分かります。

スクリーンショット追加予定
図 11.1. Local Health ボード:UP/DOWN の行を領域別にまとめ、最上部に「X up / Y down」サマリーを表示。撮影手順: サービス・フリート・証明書にわたって健全な項目と 1〜2 件の DOWN を混在させて Overview &#9656; Local Health を開く

11.2Alerts ペイン:監視する対象

アラートペイン:監視トグル(重要サービス・侵入)、短い再起動中はアラートを抑える再起動グレース期間、定期 AI 評価レポート &mdash; 初期状態ではオフ表示。
図 11.2. アラートペイン:監視トグル(重要サービス・侵入)、短い再起動中はアラートを抑える再起動グレース期間、定期 AI 評価レポート — 初期状態ではオフ表示。

Local Health ボードは状態を表示します。Alerts ペイン(Overview ▸ Alerts)は、何がメッセージに値するかを判断して送信します。「重要なサービスを監視して通知する」をオンにすると、スイープがアラートを発報し始めます。監視する対象は次のとおりです。

  • サイトとサービスの健全性 — HTTP/ループバックのチェック、TCP ポート、さらに踏み込んだプロトコルプローブ(SMTP/IMAP ログイン、データベースの SELECT 1、LDAP バインド)。待ち受けてはいるが実際は壊れているサービスも検知します。MySQL プローブはさらに接続プールmax_connections に対する使用率と "too many connections" の拒否カウンタ)を読み取り、プールが 90% を超えたときやスイープ間にクライアントが拒否されたときに通知します。各スイープはデータベースヘルスペインの接続ヘルス履歴としてチャート化され、プール使用率の推移に、拒否バーストと停止が赤い線で刻まれます。
  • 連携サーバ — 各フリートホストの SSH エンドポイントをスイープごとに到達性チェックします(ログイン試行なしの素の TCP 接続)。完全に停止したサーバは明確な「サーバダウン」アラートを発報し、復帰時には「サーバ復旧」を送ります。これはホストが稼働中に接続を制限しているときだけ出る SSH クールダウン通知とは別物です。
  • 証明書とドメイン — フリート全体の TLS 有効期限に加え、レジストラ/DNS/SSL のチェックで、失効する当日の朝ではなく数日前に警告します(第 7 章)。
  • ディスクの逼迫 — 後述の Disk Health モニタから、空き容量しきい値を下回ったボリュームを通知します。
  • セキュリティの露出 — 新しい開放ポートや想定外のリスナー、VPN トンネルの切断、SSH がネットワークから到達可能な状態での重大な SSH 堅牢化の失敗。
  • 決済の失敗と請求 — 接続した有料サービス(OpenAI・Anthropic・Cloudflare・Google Cloud)がクォータ不足・残高不足・認証エラーを返す——カード失効の症状です。
  • 接続したクラウドサービス — Stripe・Shopify・Freshdesk・SendGrid などのライブ監視が、設定したしきい値を超えると発報します。

多くのチェックはしきい値ベースなので、「トラブル」の定義はあなたが決められます。証明書が残り N 日になったら、未対応チケットが一定数を超えたら、ディスクが一定割合を超えたら——。余裕を持ったしきい値にすれば、事後検証が事前の知らせに変わります。ペインには「侵入を通知」もあります。新しい fail2ban/CrowdSec のバン、高深刻度の Suricata シグネチャ、注目すべき Wazuh アラート(レベル ≥ 7)が発生時にメッセージされ、既存の履歴は再アラートされません。

ヒント2 つの設定がアラートを低ノイズに保ちます。再起動の猶予により、対象は猶予期間ずっと DOWN のままでないと「down」メッセージが送られないため、単に再起動中のサーバが呼び出すことはありません。アプリ内から起動した再起動は約 10 分間自動的に一時停止されます。また、VPN 停止中に VPN 依存のサービスが複数同時に落ちた場合は、大量のメッセージではなく 1 通の「VPN down」が届きます。頼りにする前に Send Test AlertCheck Now で配線としきい値の両方を確認してください。

11.3メッセージングゲートウェイ

アラートは届いて初めて役に立ちます。Alerts ペインでは複数のゲートウェイを同時に有効化でき、チャネルごとに複数の宛先を指定できるので、相手が既に開いているアプリに確実に届きます。ボットトークンや Webhook URL を貼り付け、テストを送れば稼働します。AI 管理者は get_messaging_channels で有効なゲートウェイを列挙し、send_notification で送信できます(第 13 章)。

ゲートウェイ適した用途
Telegramボットトークン。ゲートウェイごとに複数チャット。高速・無料・確実な携帯プッシュ。
LINE(Messaging API)LINE を使う相手、特に日本・韓国に届ける。
Slack / Discordチームチャンネルへの受信 Webhook。チームが既に話す場所に運用アラートを流す。
ntfy公式サーバまたは自前のセルフホスト ntfy 経由のシンプルな携帯プッシュ。
Appriseひと手間で 80 以上の宛先(Pushover・Matrix・Gotify・Microsoft Teams・PagerDuty ほか)へ展開。
メール(SMTP)受信箱に届けたいもの全般。スケジュール配信の AI 評価レポートも運びます。
SMS / WhatsAppTwilio または WhatsApp Business Cloud API 経由で電話に直接。
SlackDiscord Webhookすべてのアラートと復旧の、チームに見える永続履歴。
KakaoTalkKakaoTalk ユーザへの「自分宛て」アラート。
iMessage(Apple メッセージ)Mac から直接送るネイティブな「自分宛て」アラート——外部サービス不要。
PagerDutyOpsgenie(ページング)エスカレーション付きの本物のオンコール呼び出し——下記参照。

11.11.1オンコールの呼び出し(PagerDuty・Opsgenie・緊急 ntfy)

上記のメッセージゲートウェイは送りっぱなしのテキストです。ページングチャンネルは質的に異なり、ステートフルです。監視項目がダウンすると、FrontierStack はその項目にキー付けされたインシデントをトリガします——PagerDuty(Events API v2 のルーティングキー)または Opsgenie(GenieKey)がエスカレーションポリシーを実行し、誰かが応答するまでオンコール担当者にプッシュ・SMS・電話をかけ続けます。項目が復旧すると、FrontierStack は同じインシデントを自動的にリゾルブします。インシデントは項目ごとにキー付けされるため、フラッピングするサービスは 1 つのインシデントを更新するだけで当番を何度も呼び出さず、すでに終わった障害で誰も起こされません。オンコールサービスがない場合は、ntfy ゲートウェイのダウン時にページトグルで「ダウン」アラートを ntfy の最高優先度で送信できます——より大きく繰り返し鳴り、多くのスマホのサイレント設定を突破します(復旧とレポートは通常優先度のまま)。各ページングチャンネルのテストページを送信ボタンは実際のインシデントを発生させ、約 10 秒後に自動リゾルブして、エスカレーション経路全体を端から端まで検証します。

トークンと Webhook は macOS キーチェーンに保存され、Mac の外には出ません。スケジュール配信の AI 評価レポートも送れます。AI 管理者がライブの監視健全性から(読み取り専用の診断を実行して)サマリーを作成し、日次・週次でメール送信、あるいは有効なすべてのチャネルへプッシュします。重大項目が 2 件以上同時に DOWN のときは、任意でより詳しいレポートも送れます。

セキュリティアラート配信は、FrontierStack が完全に Mac 上だけで行う数少ない処理の 1 つです。ボットトークン・SMTP パスワード・Webhook URL はキーチェーンに保存され、iMessage と KakaoTalk はあなた自身のログイン済みアカウントを通ります。フリートの健全性に関する情報が FrontierStack のサーバを経由することはありません。

11.4配信エラーとその直し方

アラートが黙って送信失敗するモニタは無価値です。FrontierStack はすべての送信を検証します。ゲートウェイが失敗すると、Alerts ペインの配信エラーセクションに、平易な日本語の修正ガイドと、その下に生のエラー、そして設定の誤ったチャネルの設定へ直接スクロールする Fix ボタンとともに記録されます。サイドバーの Alerts 行と Dock アイコンに赤いバッジが現れて確実に気づけるようになり、クリアするまで残ります。AI 管理者は get_alert_errors で同じ一覧を読むので、「なぜアラートが届かない?」と尋ねるだけで済みます。

よくある原因は地味で、すぐ直せます。

症状考えられる原因と対処
メールが送信時に拒否されるSMTP の From アドレスが空、または宛先が未設定——Email チャネルで両方を入力。
メール接続が拒否/タイムアウトポートやトランスポートの誤り。プロバイダに合わせる(587 STARTTLS または 465 SSL)とホスト。
Telegram/Slack/Discord の 401 や 404不正または失効したトークン/Webhook URL——新しいものを貼り付けてテスト送信。
レポートが届かないレポート配信が「メールのみ」だが Email チャネル未設定——「すべての有効チャネル」に切り替えるか Email を設定。
メモ配信エラーの捕捉は curl ベースのゲートウェイ(Telegram・Slack・Discord・ntfy)、メール、Apprise を対象とします。WhatsApp・KakaoTalk・iMessage はベストエフォートで、正確なエラーを表に出さないことがあります。これらは設定後とアカウント変更後に Send Test Alert で明示的にテストしてください。

11.5オンホストの Service Watchdog とデータベースの健全性

ここまでのモニタはMac上で動作します。重要なサーバには、そのマシン自身に常駐するWatchdogも必要です。そうすればMacがスリープ・オフラインでも動き続けます。FrontierStackのService Watchdogはホストモニタとともに配備され(第8章)、短い間隔でサービスを確認し、失敗すれば再起動し、最後の手段として許可した場合だけマシンを再起動します。各ウォッチのチェック種別は、プロセス、HTTP/TCPプローブ、または専用のMySQLPostgreSQLチェックです。

メモディスク修復中は自動的に安全停止します。Disk Utility の First Aid、fsckxfs_repairchkdskなどのファイルシステム修復では、システムディスク上の全サービスが一時的に停止して見えることがあります。ローカルのService GuardianとオンホストのService Watchdogは修復プロセスを検出し、保存済みポリシーを変えずに、サービス再起動やリモートの再起動エスカレーションを含む自動復旧を一時停止します。障害カウンタを消去し、修復終了後も60秒待ってから新しい状態で再開します。停止状態はデスクトップと端末に表示されます。必要な場合は、ユーザが確認した手動操作を引き続き実行できます。

データベースのハートビートは、プロセス/ポート確認が見逃す故障を捉えます。MySQLハートビートはパスワードなしでSELECT 1を要求します。成功または「access denied」ならMySQLが応答中、接続拒否、タイムアウト、接続上限到達なら異常です。MySQLパスワードは保存せず、テーブルも読み取りません。空のプローブ名はrootではないfs_watchdogになり、このアカウントは実在しなくても構いません。PostgreSQLハートビートはユーザ名やパスワードなしでpg_isreadyを使います。エラーログの早期警告をオンにすると、データベース自身のエラーログも追尾して破損の兆候を重大イベントとして通知します。これらはサーバ上で動くため、MacがオフでもntfyやWebhookで自律的に通知できます。

メモハートビートはパスワードなしで接続するため、MySQLはログインを拒否し、各チェックをAborted_connectsに計上します(毎分約2回、1日で数千回)。異常ではありません。サーバは正常で、チェックも正しく動作しています。ただしカウンタがハートビート自身の通信で埋まるため、総当たり攻撃や設定を誤ったアプリなど、本当の兆候を隠す恐れがあります。MySQLハートビートのパネルには任意の対処があります。空パスワードで権限を一切持たないUSAGEのみ。データは読めず、サーバ外からは接続できません)アカウントfs_watchdog@localhost[email protected]を作成すると、プローブは正常にログインし、通常の接続として計上されます。FrontierStackは要求された時だけ、Database Healthに保存したMySQL管理者パスワードで作成し、実行するCREATE USER文を事前に表示します。SQLをコピーして自分で実行することも、後から同じパネルで削除することもできます。何もしなくても構いません(カウントは表示上の問題です)。
セキュリティパスワード不要のMySQLハートビートはこれで設定完了ですが、テーブルは検査しません。定期mysqlcheck、検証済みバックアップ、任意の自動修復には、ウォッチのテーブルチェックと自動修復を開く、またはDatabase Healthを開き、対象データベースのスキャンと修復の設定を展開します。rootではなくfrontierstack_health@localhostのような専用アカウントを使ってください。ログインとSELECT 1にはUSAGE、全接続の表示が必要な場合だけPROCESS、明示的に検査するスキーマだけにSELECTを付与します。接続元はlocalhostまたはモニタの正確なプライベートアドレスに制限します。クライアントはサーバ上で動くため、MySQLを広いネットワークへ公開する必要はありません。

チェック専用アカウントを作るには、your_databaseと例のパスワードを置き換えます。

CREATE USER 'frontierstack_health'@'localhost' IDENTIFIED BY 'use-a-unique-random-password';
GRANT SELECT ON `your_database`.* TO 'frontierstack_health'@'localhost';

このログインをDatabase Healthに保存します。手動チェックと検証済みバックアップが両方成功するまで自動修復はオフにしてください。完全なバックアップや修復に追加権限が必要な場合は、MySQLが示したスキーマ単位の権限だけを追加し、*.*は使いません。別のマシンから接続するモニタでは、localhostをその1つの正確なプライベートアドレスに置き換えます。

ピン留めサーバのサービス行では、定期テーブルスキャンまたはサーバ自己修復が有効な間、緑のDBチェッカー:オンを表示します。対象はあるがどちらも動いていない場合は一時停止、MySQLスキャンを選択していてもパスワードがない場合は緑ではなくオレンジのログインが必要を表示します。Database Healthは低頻度でテーブルを検査し、ハートビートは停止を素早く検出してサーバ上でMySQLを再起動するため、両方は補完関係です。

データベースが停止ではなく遅い・詰まっているときは、Database Healthペインの各対象にある「Why slow/stuck?」ボタンがその場で答えます。サーバのライブ活動(MySQLはSHOW FULL PROCESSLIST、PostgreSQLはpg_stat_activity)を読み、実行中クエリを形状ごとにまとめます。リモート対象はSSH経由で調べるため、データベースのポートを公開する必要はありません。

注意ローカルの Service Guardian(Overview ▸ Service Guardian)は別物です。この Mac だけのサービスを、しかもアプリ実行中のみ守ります。リモートサーバにはオンホストの Service Watchdog を使ってください——Guardian ペインもその旨を表示して案内します。

11.11.2保守のためにチェックを一時停止する

意図的にサービスを停止している最中に、再起動してくれるウォッチドッグはまさに邪魔です。保護をオフにして — そして自分で戻し忘れないことに頼る — のではなく、Guardian ヘッダーの 「Pause Checks…」、または各サービス行の一時停止ボタンを使います。15 分から 1 日までの範囲を選べます。

一時停止中、Guardian は対象のヘルスチェックも再起動も行わないため、作業と衝突しません。何も無効化されず、設定も失われません。Keep Alive、Auto Recover、しきい値、間隔はそのまま保持され、時間が過ぎれば自動的に再開します。「Resume Now」を押せば即座に再開できます。一時停止がその期間を超えて残ることはなく、アプリを終了して再度開いても同じです。

ヒント同じ一時停止はコンパニオンアプリの Checks 画面から端末でも行えます。Mac の前ではなく、対象のマシンで作業しているときに便利です。一時停止は変更操作にあたるため、ペアリング済みデバイスにはサービス制御の権限が必要です。読み取り専用のデバイスがウォッチドッグを黙らせることはできません。

11.6ケーススタディ:High Sierra Server.app の serviceproxy ハング

High Sierra 上の macOS Server(Server.app)を今も動かしている古い Mac には、よく知られた故障があります。Web フロントプロキシ——実際のバックエンドの手前でポート 80/443 を握る launchd ジョブ com.apple.serviceproxy——が、ときどきハングするのです。TCP 接続は受け付け続けるのに一切応答しなくなるため、背後のすべてのウェブサイトが停止する一方、プロセスチェックはどれも正常に見えます。Apple からの修正はありません。このスタックはサポート終了です。Service Watchdog はまさにこのケースを念頭に作られています。

ウォッチの設定方法。サーバのペインでサービス名 serviceproxy のウォッチドッグ項目を追加し、——ここが重要ですが——プロセスチェックではなく、ターゲット http://127.0.0.1/HTTP チェックを設定します。本当の故障(接続は受けるが応答しない)を見抜けるのは HTTP プローブだけです。失敗すると、ウォッチドッグは launchctl kickstart で復旧します——管理者が手で打つ修復コマンドそのものです。HTTP ステータスが 500 未満なら生存と見なされ(プロキシが 403/404 を返しても応答している証拠です)、各プローブは 6 秒でタイムアウトするため、ハングしたプロキシはタイムアウトでチェックに失敗します。プロキシ背後のバックエンドも同様に server-httpd として監視できます。

推奨タイミング。チェックは 30 秒ごと、3 回連続で失敗したら再起動、再起動は最大 3 回、再起動後の猶予はデフォルト(約 20 秒。古いハードウェアの Apache にも十分)のまま。これで行動前に約 90 秒かけてハングを確認します——1 回の遅い応答や一時的な負荷スパイクでは kickstart せず、本物のハングなら約 2 分でサイトが自動復旧する長さです。サイトが重要なら 15〜20 秒間隔・2 回失敗(確認まで約 40 秒)に詰めても構いません。それ以上詰めても誤再起動が増えるだけです——古いマシンは負荷時に応答へ数秒かかることが普通にあるからです。「回復に失敗したらサーバを再起動」は、完全に無人のマシンでない限りオフのままに。実際には kickstart でハングは解消しますし、この種のマシンでの最終手段の再起動はダウンタイムを増やすだけです(ブートループ防止ガードにより、ウォッチドッグ再起動の間隔は最低 30 分が強制されます)。

なぜプロセスチェックではだめか。serviceproxy という名前のプロセスは存在しません——このジョブは特殊な設定ファイルを持つ httpd として動きます——そのため v1.6.1 より古いモニタは、正常なプロキシを恒久的に「停止中」と誤読し、何度も再起動を繰り返し、再起動へのエスカレーションを許可していれば正常なマシンを定期的に再起動していました。v1.6.1 からモニタは launchd にジョブの実状態を問い合わせるため、プロセスチェックも真実を伝えます。ただし本当のハングを捉えるのは引き続き HTTP チェックです。原因不明の再起動を繰り返す古いサーバがあれば、まずモニタのバージョンを確認してください。なお「なぜ再起動した?」はウォッチドッグ起因の再起動を明示的に帰属させます(v1.6 以降のモニタでは理由付き。それより古いモニタもスタンプを残し、それも報告されます)。

メモ恒久的な解決は serviceproxy の引退です。Apple Server 移行ウィザード(第 8 章)が Server.app マシンを棚卸しし、ウェブサイトをサポート中のシステム上の素の Apache へ移して、ハングしがちなプロキシを配信経路から外します。それまでは HTTP ウォッチが古いマシンを健全に保ちます。

配信についてもう 1 つの保証があります。アラートは決して沈黙しません。メッセージングゲートウェイに加えて、状態変化のアラートはすべて、ゲートウェイとは独立にネイティブの macOS 通知とプッシュも発報します——メールをオフにしすべてのチャネルを無効にしても、サービスの停止は Mac 上であなたに届きます。データベースのリカバリ——mysqlcheckpg_amcheck の実行や AI ガイド付き再構築——は第 5 章で扱います。

11.7インシデント・オンコール・ステータスページ

すでに正式なインシデント対応を運用しているチーム向けに、FrontierStack はそれを置き換えるのではなく、お使いのツールへ接続します。各ツールはカタログのエントリから開けるライブペインを持ち、読み取り専用の API キーを貼り付けると現在の状態を表示します。

  • インシデント管理・オンコールPagerDuty(オープン/高緊急度のインシデント、オンコール担当、サービス)、Opsgenie(未対応/未確認のアラート、US/EU リージョン切替)、incident.ioRootly(進行中のインシデント)。
  • ステータスページStatuspage(未解決インシデントと DOWN のコンポーネント)と Better Stack(モニタの up/down/paused)。

各ペインでキーを設定し(例:PagerDuty ▸ Integrations ▸ API Access Keys)、接続を確認します。これらは同じ監視像に流れ込むので、PagerDuty のオープンインシデントやステータスページの DOWN コンポーネントが、自前の健全性と並んで表示されます。

11.8SaaS ライブ監視とプロジェクト管理ペイン

FrontierStack はインフラだけにとどまりません。設定駆動の SaaS ライブ監視が接続済みクラウドアカウントを見守り、数分ごとに更新します。各サービスには資格情報フォーム、ライブのメトリックタイル、「Alert me」トグル、しきい値があります。アラート対応サービスはメトリックが線を超えると DOWN アラートを発報し、残りは到達性を監視します。ライブ監視には Stripe(要対応の係争、残高)、ShopifyWooCommerce(未処理注文)、FreshdeskZammad(オープン/保留/期限超過チケット)、SendGridMailgunPostmark(バウンスとブロック)、GitHub Copilot(非アクティブシート)、アイデンティティプロバイダの OktaMicrosoft Entra ID が含まれます。サービスをピン留めすれば、アラート設定に関わらず常時 Local Health に表示できます。

同じパターンがプロジェクト管理ツールにトークンログインのライブペインを与えます。Jira(オープン/未割当/ブロック/スプリント内の件数)、Linearmonday.comOpenProjectPlaneTaiga。これらはアラート源というよりダッシュボードですが、チームの作業量を、それを動かすサーバと同じウィンドウに並べます。メール配信には専用の統合 Email Delivery ペインがあり、トランザクションプロバイダのメトリックと SPF/DKIM/DMARC チェックを統合します(第 7 章)。

11.9キュー運用

キュー運用は RabbitMQ、Kafka、NATS/JetStream、Redpanda、AWS SQS、Azure Service Bus、Google Pub/Sub、Celery/Flower、Redis Streams、Apache Pulsar、Apache RocketMQ の読み取り専用ダッシュボードです。ブローカ、名前空間、クラウドアカウントごとにモニタを追加します。プロバイダが公開する範囲で、キューまたはコンシューマグループ名、待機中・処理中・コンシューマ数、遅延、デッドレター数、最古メッセージの経過時間を表示します。メッセージ本文を読んだり保存したりすることはありません。

クライアントポートと管理ポートは分けて扱います。たとえば RabbitMQ クライアントは通常 AMQP の 5672、管理 API は 15672、NATS クライアントは 4222、監視は 8222、Pulsar クライアントは 6650、HTTP 管理 API は 8080 です。監視エンドポイントは非公開にしてください。オンホストの FrontierStack モニタを経由しない場合は TLS と監視専用アカウントを使います。

連携サーバでは導入済みモニタを選ぶと、署名付き接続を通じて、資格情報を受け取らないヘルパから上限付きサマリーを取得します。クラウドプロバイダは通常のローカル CLI プロファイル、またはキーチェーンに保存した権限を絞った資格情報を使います。重大しきい値は Alerts スイープに入り、同じサニタイズ済みサマリーを iPhone/iPad アプリと AI 管理者の読み取り専用 get_server_health ツールから確認できます。このダッシュボードには消去・削除・発行・確認応答・再生の操作はありません。

セキュリティRabbitMQ Management や NATS の監視ポートを公開インターネットへ直接出さないでください。localhost、プライベートネットワーク、または保護されたリバースプロキシに制限します。キューの資格情報はキーチェーンへ保存し、メッセージ内容は FrontierStack に一切入れません。

11.10UPS 監視と SNMP デバイス

電源は、停電するまで忘れられがちな故障モードです。FrontierStack は UPS を 3 通りで検出します——macOS の電源ソース(pmset -g ps)、NUT デーモン(upsc)、apcupsdapcaccess)——そして充電・残時間・負荷・入力を Power Control の UPS セクションに表示します。アラートをオンにすれば、ユニットがバッテリー駆動になったとき、設定した低充電しきい値に達したとき、コントローラとの通信を失ったときに呼び出されます。UPS をピン留めすれば Local Health と Places マップに残せます。NUT や apcupsd が無ければワンクリックボタンでインストールできます。スキャンはこれらのデーモンの応答を待つため、実行中は Stop ボタンが表示されます。NUT サーバが固まっている場合は待ち続けずに停止でき、取得済みの読み取り値は保持され、自動更新は Refresh を押すまで一時停止します。

SNMP を話すその他のもの——マネージドスイッチ、プリンタ、ネットワーク UPS、NAS——には、デバイス詳細ペインの SNMP / OIDs セクションが直接問い合わせます。組み込みのテンプレート(System、Host Resources、Interfaces、Printer RFC 3805、UPS RFC 1628、Synology、QNAP、APC PowerNet)を選んで Query を押せばラベルと値の読み出しが得られ、単一のカスタム OID を手動で取得することもできます。OID をウォッチすることも可能です。比較としきい値(より大きい、等しい、含む、または単に「変化したら通知」)を設定すると、FrontierStack がポーリングし、条件が満たされるとアラートを発報します。net-snmp を使い、ワンクリックでインストールできます。

11.11ディスク・RAID・SMART の健全性

ドライブは、耳を傾けていれば予兆とともに故障します。Disk Health ペイン(組み込みの監視ツール)は複数の層を組み合わせます。ボリュームの空き容量と Time Machine の状態は常に表示されます。smartmontools をインストールすると(ワンクリックの Install ボタン)、各物理ドライブがディープ SMART 属性——健全性、温度、通電時間、代替済み/保留中セクター、故障予測フラグ——で補強され、ドライブごとに Check ボタンと、生レポート用の Details シートで確認できます。ドライブは SMART 失敗または懸念される属性(代替済み/保留中セクター、故障予測)でアラートを発報し、完全な死亡時だけではありません。

ソフトウェアの AppleRAID セット(ミラー、ストライプ、連結)は、レベル・状態・メンバーごとの状態とともに独自のセクションに表示されます。セットが劣化したりメンバーがオフラインになるとアラートが発報します。Alerts & Thresholds でディスクアラートをオンにすれば、他のすべてのモニタと同様にチャネルへ流れます。

メモ旧来のハードウェア Apple RAID Card は現在の macOS でサポートされていません——それらのディスクは単一ドライブとして見えるため、FrontierStack はアレイを認識できません。ペインはこれを明示し、監視できないカードベースのミラーを信頼してしまわないようにします。内蔵 NVMe ドライブも、昇格したアクセスなしには SMART データを返さないことがあります。

これらのモニタを合わせると、ひと目で見るボード 1 つ、調整するペイン 1 つ、あなたに届くチャネル 1 式が得られます——そして同じ健全性を読み、あなたに代わって同じ通知を送る AI 管理者(第 13 章)があります。フリート全体の CPU・メモリ・GPU メトリックをこの像に流し込むホストモニタは第 8 章で扱います。

第 IV

IV

自動化と AI

スクリプトとスケジュール、AI 管理者、MCP、AI スタック。FrontierStack をコントロールパネルから「ひとりでに働く存在」へと変える 4 つの章。

12

第 12

スクリプト・cron・自動化

毎日使うコマンドを保存し、本物のシステム cron でスケジュール実行し、FrontierStack を Apple ショートカット・Siri・Mac の他の仕組みと連携。ワンクリックのスクリプトから、ハンズフリーの音声コマンドまで。

優れたサーバ管理者は、同じ数種類の作業を何度も繰り返します。バックアップを取る、キャッシュを温める、バックエンドを正しい手順で再起動する、vhost が思った通りのものを実際に配信しているか確認する。FrontierStack はそれぞれを保存済みスクリプトとして取り込み、ワンクリックで実行し、信頼できると判断したら cron に渡して無人で走らせます。そこからさらに外へ — Apple ショートカット、Siri、frontierstack:// URL スキーム、そしてアプリ自身がスケジュールで行うアクションへと広がります。

本章は自動化の機械的な側面 — スクリプト、スケジュール、macOS の自動化の入口 — を扱います。知的な側面、つまりこれらのスクリプトをあなたの代わりに書き・保存し・スケジュールする AI は、第 13 章です。ここで扱うものはすべて、AI 管理者が自身の監査済みツールを通じて操作できるため、両章は同じ仕組みを両端から説明しています。

12.1Scripts & Cron ペイン

サイドバーから Scripts & Cron を開きます。保存済みスクリプトのライブラリとスケジューラが 1 か所にまとまっています。上部の Saved Scripts セクションには保存した全スクリプトが、名前と本文の冒頭行とともに並びます。各スクリプトには 4 つのボタンがあります — Run(今すぐ実行)、Schedule(後述の cron に渡す)、Edit(エディタを開く)、そして削除のゴミ箱アイコン。Add Script… で新規作成します。

保存済みスクリプトは、アプリが解釈する断片ではなく、ディスク上の本物の実行ファイル(シェル・PHP・Python)です。分かりやすい名前と、目的を記したメモを付けておけば、半年後の自分(あるいはライブラリを走査する AI 管理者)が、何をするスクリプトかをひと目で把握し、正しいものを選べます。保存されたファイルそのものが実行されるので、手で試したものが、そのままスケジュール実行されます。

各スクリプトは既定の This Mac、ローカルの Docker コンテナ、または名前を指定した連携サーバを SSH 経由で対象にできます。資格情報が必要な場合、スクリプトはローカルの .env ボールトの名前付きシークレットを環境変数($DB_PASSWORD"$SSH_SUDO_PASS")として参照します。アプリは実行時に実際の値を注入し、その値がクラウドモデルに届くことは決してありません(第 13 章)。

スクリーンショット追加予定
図 12.1. Scripts & Cron ペイン:上部に保存済みスクリプトのライブラリ(Run/Schedule/Edit ボタン付き)、下部に cron ジョブ。撮影手順: capture: 保存済みスクリプトを 3〜4 個、cron ジョブを 1〜2 個表示した状態で Scripts & Cron を開いて撮影
スクリプトパレット
どのスクリプトでも隣の Palette をオンにすると、フローティングの スクリプトパレット — パレットタグを付けたスクリプトだけを並べた、常に最前面の小さなウィンドウ(各行に Run ボタン)— に追加されます。エディタの横に置いて、いつでも開けます。ペインの Open Palette で呼び出します。

12.2cron でのスケジュール実行

Cron Jobs セクションは、本物のシステム crontab への分かりやすいフロントエンドです — アプリが独自に考えた別物のスケジューラではなく、何十年も Unix で無人作業を走らせてきた、まさにその cron です。各行はジョブの名前、スケジュールの平易な説明(FrontierStack が 5 フィールド構文を翻訳します)、実行するコマンドを表示し、有効/無効の切り替えと、Run(今すぐ実行)・Edit・削除のボタンを備えます。

保存済みスクリプトの Schedule、または任意コマンド用の Add Job… を押すとスケジュールビルダーが開きます。頻度(毎時・毎日の指定時刻・毎週)を選ぶと、FrontierStack が crontab エントリを書き込み、自身のジョブには # AC: コメントを付けて後から名前で見つけ・更新できるようにします。AI 管理者でも同様で、list_cron がジョブを読み、schedule_cron が作成・更新します(同名のジョブがあればその場で更新)。

注意スケジュールされた cron ジョブは、それ以上の承認なしに自動で実行されます。対話的なスクリプトや AI のツール呼び出し(実行前に承認カードを表示)とは異なり、いったんスケジュールに載ると、毎回ひとりでに、無人で実行されます。テスト済みで信頼できるコマンドだけをスケジュールし、Cron Jobs 一覧を定期的に見直して、忘れたまま走り続けるものがないようにしてください。

完全に制御したい場合は、ペイン下部の Edit raw crontab を展開します。これはテキストエディタで開いた標準の crontab で、FrontierStack 管理のジョブは # AC: コメントとして現れるため、どの行がアプリの所有かが分かります。手で編集して Apply を押します。

スクリプトトリガー
スクリプトライブラリの下にある Script Triggers は、時刻ではなくイベントが起きたときに保存済みスクリプトを実行します — ロケーションに到着/離脱した、デバイスがネットワークに現れた/消えた、ディスクがマウント/アンマウントされた。これらはアプリ起動中にのみ発火し、スクリプトはコンテキスト(FS_TRIGGERFS_LOCATIONFS_DEVICEFS_DISK…)を環境変数として受け取ります。時刻は cron、イベントはトリガーが担当します。

12.3同梱のサンプルスクリプト

FrontierStack は、実績ある定番の管理スクリプトを小さな読み取り専用ライブラリとして同梱しています。あなたのスクリプトではなく — その場で編集はできません — が、どれも全ソースを読んで学び、自分のライブラリにコピーして手を加えられます。Mac の Web スタック(とくに旧 macOS Server バックエンド)の実地の癖を踏まえているため、自作の前に 1 つ読んでおくと不意打ちを避けられます。AI 管理者も list_sample_scriptsread_sample_script でまず読むので、その生成スクリプトも同じ苦労から得た知見を受け継ぎます。

スクリプト機能
apache_real_docrootvhost が実際に配信しているドキュメントルートを特定 — 設定が主張する場所ではなく、Apache が実行時に解決する場所。
apache_url_matrixvhost 上のパス一覧の HTTP ステータスを、本物のホストヘッダーで検査して報告 — どの URL が健全かをひと目で確認。
fleet_file_diff1 つのファイルのチェックサムをフリート全体で比較し、設定ドリフト — ある 1 台が静かに他と食い違った箇所 — を発見。
macos_httpd_vhostsmacOS Server バックエンドの vhost → docroot マップをダンプ — その旧スタックが何を配信しているかを正確に把握。
macos_web_restartmacOS Server の Web バックエンドを正しい手順で再起動 — 雑な apachectl ではなく、正しい順序で。
node_healthcheck1 つの vhost のフリートドリフト/ヘルスチェックをノード横断で実施。
php_opcache_checkOPcache の状態を CLI と Web SAPI の両方について報告 — これらは別々に設定され、ずれやすい。

12.4Apple ショートカット・App Intents・Siri

FrontierStack はネイティブの App Intents を備えます — macOS の ショートカットアプリ、Spotlight、そして(いくつかは)話せる組み込み Siri フレーズとして現れるアクションです。ホットキー・メニューバー・フォルダアクションから起動するショートカットに組み込めます。Automator からも利用可能で(Automator はショートカットや AppleScript を実行できるため)。出荷時のアクション:

アクション機能組み込み Siri フレーズ
Run Server Script保存済みスクリプトを名前で実行。
Start / Stop Service Groupグループ内の全サービスを一括で起動/停止。“Start my servers with FrontierStack”
Restart ServiceApache・Nginx・MySQL・PostgreSQL を再起動。“Restart a service with FrontierStack”
Restart Docker Container名前指定したコンテナを再起動。
Get Local Healthローカルヘルスの要約(サービスの up/down)を返す。“Check server health with FrontierStack”
Apply Sidebar Presetサイドバーを保存済みプリセットに切り替える。
Flush DNS CachemacOS の DNS リゾルバキャッシュをフラッシュ。
Send Notificationアラートチャネル経由で通知を送信。
Ask Server AssistantAI 管理者に普通の言葉で質問し、回答をワークフローに返す。“Ask FrontierStack…”

カタログはさらに広く — Get Server Status、List Servers、List Docker Containers、Check a Website などもショートカット作成に利用でき、組み込みの Siri フレーズを持たないものも含めて使えます。

ヒント音声派ですか? 組み込みフレーズで、iCloud にサインインした Apple デバイスから 「Check server health with FrontierStack」「Start my servers with FrontierStack」「Ask FrontierStack…」と話すだけで、スタックがハンズフリーで応答します。

12.5スクリプトからアプリを操作する

App Intents は本物のショートカットアクションなので、macOS の shortcuts コマンドラインツールでシェルから呼び出せます — 保存済みスクリプト、cron ジョブ、Automator の「シェルスクリプトを実行」、あらゆるランチャの中で便利です。FrontierStack のアクションを一行のショートカットに包み、shortcuts run "My Shortcut" で呼び出して、スクリプトの他の処理と連鎖させます。

この組み立ては AI 管理者に任せられます。ショートカット経由でアプリを操作する自動化スクリプトを頼むと、list_app_intents を呼んで利用可能なアクションと各々の正確な shortcuts run 呼び出しを把握し、save_script でスクリプトを作成(または schedule_cron でスケジュール)します。ヒントではなく、完成して実行可能なスクリプトが手に入ります。

12.6スケジュールされたアプリアクション

cron ジョブはシェルコマンドを実行します。スケジュールされたアプリアクションはそれとは異なり、アプリ自身がスケジュールで行うタスクで、保存した資格情報と、あなたや AI 管理者が使うのと同じ監査済みツールを用います — 生のシェルコマンドではありません。連携サーバの再起動、アプリが制御するローカルサービスの開始・停止・再起動DNS のフラッシュを時間割で行うのに使います。schedule_app_action で管理し、list_app_actions で一覧でき、ペインの Scheduled App Actions に現れます。作成の自然な方法は AI 管理者に頼むこと — 「web-03 を毎晩 3 時に再起動」— そして承認することです。

cron との重要な違いが 1 つあります。アプリアクションは FrontierStack が起動している間だけ実行されます。アプリを通じて動作するため、アプリが閉じている間に期限を迎えたものは取りこぼします。一方 cron は、アプリが開いていようといまいと、システムレベルで実行されます。何があっても起こさねばならないことは cron を、アプリ自身の資格情報とツールで行わせたいことはアプリアクションを選んでください。

メモ一定時間だけ何かを止めるには、1 つではなく 2 つのアクションを使います。午前 2 時から 5 時までサービスを止めるなら、2 時に停止アクション、5 時に開始アクションをスケジュールします。アプリアクションは時点トリガーなので、「期間」とは単にその両端のことです。
注意スケジュールされたアプリアクションは、再起動やサービス停止といった実際の変更を、cron とまったく同様に、発火時の承認プロンプトなしにスケジュールで実行します。作成時に「変更を許可」が有効になっている必要があります。crontab と同じように、Scheduled App Actions 一覧を見直してください。

12.7frontierstack:// URL スキーム

すべてのペイン・サーバ・サイト・コンテナ・Cloudflare ゾーンに frontierstack:// のディープリンクがあります。AppleScript、Automator のシェルステップ、ランチャ、あらゆるスクリプトランナーから、open frontierstack://pane/Security のような一行で、アプリを前面に出して目的のペインへ直行します。ヘッドレスでアクションを実行するのではなく、特定の場所でアプリを画面に出したいときに、FrontierStack を既存のワークフローへ組み込む最速の方法です。URL スキームの完全なリファレンスは第 18 章にあります。

12.8バックアップ・ログ・変更ログの自動エクスポート

定型自動化の最後のピースは、FrontierStack 自身が生成したファイルをスケジュールで Mac のへ出すことです。Backups の概要にある Auto-export to a folder セクションは、生成された成果物を選んだ任意のフォルダへコピーします — オフサイト保全のための Dropbox フォルダ、または独自の後続ルールを駆動する Hazel 監視フォルダへ。3 つのフィードが組み込まれています:

  • 設定バックアップ — 構成バックアップの zip。
  • 変更ログ — アプリを通じて行われた変更の記録。
  • アプリログ — FrontierStack 自身のログの zip。

各フィードに間隔(毎時・6 時間・12 時間・毎日・毎週)を設定し、保存先フォルダを選び、必要なら Empty after export をオンにして、コピー後にソースをローテートできます(変更ログとアプリログに便利。際限なく肥大しません)。Export now はフィードを即時実行し、各フィードは前回の結果を表示します。ファイルは選んだフォルダに FrontierStack-<feed>-<timestamp> として置かれます。

メモ自動エクスポートはアプリ起動中に動作し、おおむね数分ごとに確認して、間隔が来たフィードをエクスポートします。アプリアクションと同様にアプリ内スケジュールなので、終日動かしたい場合はスリープしない Mac と組み合わせてください(ヘッドレス Mac のスリープ抑止は第 17 章)。

これで機械的な道具一式がそろいました。保存して実行するスクリプト、それをスケジュール実行する cron とアプリアクション、ホットキーや音声で起動するショートカットと Siri、どこへでも飛べる URL スキーム、結果を箱の外へ送り出す自動エクスポート。次章では、これらすべてをあなたの代わりに書き・配線できるオペレータを紹介します — AI 管理者です。

13

第 13

AI 管理者

サーバを把握し、不具合を診断し、あなたの承認のもとで修正する、ツール使用アシスタント。秘密情報はモデルに渡しません。

AI 管理者 — AI ハーネス — こそが、FrontierStack を単なるコントロールパネル以上のものにしています。これはあなたの構成を正確かつライブに把握する、ツール使用アシスタントです。問題を普通の言葉で伝えると、読み取り専用の診断で原因を調べ、分かったことを説明し、実行前にあなたが承認する修正案を提示します。この Mac でも、SSH で連携したすべてのサーバでも動作し、パスワードを見ることは決してありません。本章では、その考え方、できること、安全に保つ方法を説明します。

初回起動時の AI 管理者:モデル選択、信頼コントロール、プロンプトファイアウォール、ローカルの <code>.env</code> 秘密ボールト、長期メモリ。
図 13.1. 初回起動時の AI 管理者:モデル選択、信頼コントロール、プロンプトファイアウォール、ローカルの .env 秘密ボールト、長期メモリ。

13.1モデルを選ぶ

管理者は特定のベンダーに縛られません。ペイン上部で、駆動するモデルを選びます。

  • FrontierStack AI — ゼロ保持サービスを利用できる場合の既定ハーネスエンジンです。自分の API キーは不要で、Enfour AI Cloud 経由で Qwen3 を実行します。FrontierStack AI サーバは現在ユーザに無料ですが、将来は有料サービスになる場合があります。上流キーとプロバイダ接続先は Enfour のサーバ内にあり、送信前に固定伏字化を行い、サービスはゼロ保持を証明する必要があります。最終ハーネス自体がゼロ保持のため、同じテキストを二重送信せず、別のクラウドプロンプトファイアウォール検査を省略します。ツール制限と操作承認は変わりません。
  • クラウドモデル — 難しい診断や複数ステップの作業に最も適した選択肢。API キーを用意します(ローカル保存)。
  • AI サブスクリプション(VibeProxy 経由) — Claude Pro/Max・ChatGPT Plus/Pro・Gemini・Kimi・Qwen・GitHub Copilot をすでに契約しているなら、これが推奨の選択です。VibeProxy がそれらのサブスクリプションをハーネスへ橋渡しし、同じフロンティアモデルがトークン課金なしで応答します — 従量課金の API キーはリクエストごとに課金されますが、契約済みのサブスクリプションに追加費用はありません。VibeProxy ペイン(第 15 章)からインストールできます。停止した場合、ハーネスは自動的に別のエンジンへ切り替えます。
  • ローカルモデル — Mac 上で動く Ollama・LM Studio、または OpenAI 互換サーバ(LocalAI・Jan・llama.cpp)、さらに Apple Intelligence:Apple シリコン+macOS 26 のオンデバイス・ファウンデーションモデルで、ネイティブに、あるいは Apfel(AI モデルペインがインストール・起動し、ログイン時やアプリ起動時の自動起動も設定できるワンコマンド)経由で利用します。ローカルモデルは作業を完全オフラインに保ち — データは Mac の外に出ないため、下記の送信前検査は不要となり非表示になります。ローカルモデルの実行は第 15 章を参照。
  • MCP 経由の自前サブスクツール — すでに支払っている定額プランの Claude Code・Claude Desktop・Cursor からアプリ全体を操作。トークン課金はありません。第 14 章で扱います。
ヒント日常的な質問には高速モデルで十分です。本番の微妙な問題を追うときは最も高性能なモデルに切り替えましょう。モデルを変えても会話は保持されます。

13.2画像対応モデルにペインを確認させる

設定が FrontierStack 上に見えていても管理者のツールではそのコントロールを確認できない場合は、プロンプト上のスクリーンショットを添付…をクリックします。Qwen 専用ではなくモデルの機能で、対応する OpenAI 形式、Anthropic、ローカル Ollama の画像モデルへ適切な形式で送ります。対応状況が不明なカスタムモデルや経路にも試行できますが、接続先が画像を拒否する場合があります。

FrontierStack が画面を自動撮影することはありません。画像を 1 枚選び、送信用プレビューを先に確認します。最大 1,800 ピクセルに制限し、再描画してメタデータを除去し、macOS の文字認識をローカルで行って、保存済み資格情報、個人アカウント名、非公開フリート識別情報、秘密らしいトークンを含む行を黒く隠します。OCR は多層防御であり保証ではありません。対象ペインだけに切り取り、送信前にプレビューを確認してください。

セキュリティ外部モデルでは、テキスト用プロンプトファイアウォールが画像を検査できないため、画像ごとの承認が必要です。ローカルモデルなら画像はローカルに留まります。送信用コピーは現在のツールループ中だけメモリに置かれ、次のターン前に削除され、保存済み会話には書き込まれません。元のスクリーンショットはあなたのファイルのままです。

13.3会話の流れ

同僚に指示するように依頼します — 「なぜサイトが 502 を返すの?」「shop.example.com の証明書がもうすぐ切れるか確認して」「db-02 の Postgres を再起動して」。管理者は次のループで動きます。

  1. 足場を固める。動く前に、実際の構成(サービスカタログ、連携サーバとデバイス、現在のヘルスボード)を把握し、一般論ではなくあなたのマシンに合った回答をします。
  2. 読み取り専用で調べる。ログを読み、診断を実行し、ポートや証明書を確認し、設定ファイルを調べます。何も変更しません。
  3. 説明し、提案する。分かったことを伝え、変更が必要なら、実行したい正確なコマンドやファイル編集を提示します。
  4. あなたが承認する。システムを変更するものは、その操作を承認するまで実行されません。承認後に修正を実行し、再確認します。

13.4信頼モデル:既定は読み取り専用

本章で最も重要な節です。管理者は、コントロールを失わずに本番サーバを任せられるよう設計されています。

設定解除されるもの
(既定)読み取り専用。ログ・ヘルス・設定・診断などすべてを見られますが、何も変更できません。
変更を許可変更を伴う操作(サービス再起動、ファイル書き込み、証明書発行、ファイアウォールのポート開放)を許可。各操作には依然として承認カードが出ます。
スクリプトを許可汎用シェルツールと保存済みスクリプトの実行を許可。スクリプトと平易な説明が実行前に承認のため表示されます。

これらのトグルの上に、2 つの原則があります。

  • 操作ごとの承認。変更を許可していても、変更を伴うステップは必ず先に(実際のコマンドや差分が)表示され、その操作を承認するまで実行されません。場当たり的な変更に「すべて承認」モードはありません。
  • リモート操作には個別の同意が必要。連携サーバを監視ヘルパー経由で操作するには、そのサーバ自身の「アクションを許可」スイッチ(Host Monitor ペイン、第 8 章)も必要です。
  • 破損を伴うデータベース操作には高性能モデルが必要。データベースの修復・復元・再構築は取り返しがつかないため、FrontierStack はこれらのステップをフロンティアモデルにハードゲートします——小さなモデルやオンデバイスモデルでもログを読んで診断はできますが、高性能モデル(Claude Opus/Sonnet、GPT-4o/o シリーズ、Gemini Pro)に切り替えるまで、破損を伴うツールは拒否されます。
セキュリティ管理者、特権ヘルパー、すべてのリモート機能は、あなたが有効化するまでオフです。新規インストールでも質問への回答や診断はできますが、「変更を許可」、そしてシェル作業には「スクリプトを許可」を意図的にオンにするまで、何にも触れません。
セキュリティ承認しても、ユーザデータの永久削除は許可されません。MySQL の DELETETRUNCATE、データベース/テーブルの削除、対象を限定しない更新、ファイルの削除/上書き、ディスク消去、破壊的な保存済みスクリプト、cron ジョブ、イベントトリガは承認前に拒否されます。構造化されたファイル書き込みでは以前のファイルを退避します。vhost_remove は Apache/nginx の vhost を可逆的に無効にし、ドキュメントルートを保持します。名前付きバックアップから意図的に復元する操作だけは、別途厳しく制限されたローカル復旧フローで利用できます。

13.5秘密情報のボールト

実運用には資格情報(DB パスワード、SSH の sudo パスワード、Cloudflare トークン)が必要です。FrontierStack はこれらをローカルの .env ボールトに保管し、モデルには決して見せません。

管理者の スクリプト秘密情報(.env) バーで名前付きの秘密を追加します — 例:DB_PASSWORDCF_TOKENSSH_SUDO_PASS。アシスタントが必要なスクリプトを書くとき、参照するのは値ではなく名前です。

mysql -u root -p"$DB_PASSWORD" -e "SHOW DATABASES;"

実行時にアプリが実際の値を環境変数として注入します — ローカル、または対象サーバ上で SSH 経由で — しかもスクリプトが実際に参照する名前だけを注入します。モデルには(正しいスクリプトを書けるよう)秘密の名前は伝わりますが、値は決して渡らず、コマンド出力は送信前に秘密情報が伏せられます。

  • シェル:$NAME / "$NAME"
  • PHP:getenv('NAME')
  • Python:os.environ['NAME']
メモボールトは名前のフラットな集合なので、同種の秘密を複数保持できます — PROD_DB_PASSWORDSTAGING_DB_PASSWORD、サーバごとの BALTHAZAR_MYSQL_PW など。アシスタントは対象に合う名前を選び、対応が曖昧なら推測せず尋ねます。

13.6プロンプトファイアウォール

プロンプトファイアウォールは、FrontierStack の常時オンの固定伏字化に加える任意の意味検査です。Ollama または対応するローカル OpenAI 互換モデルを使うこの Mac 上か、明示的に Enfour AI Cloud を選びます。検出時は、警告して確認、自動伏字化、送信ブロックのいずれかを行えます。

オンデバイス検査はすべてこの Mac 内で完結します。Enfour AI Cloud に渡るのは、既知の認証情報・ユーザ名・プライベートアドレス・秘密らしいパターンを FrontierStack が除去した後のテキストだけです。現在はユーザに無料です。クラウドサービスは毎回ゼロ保持を証明する必要があり、証明またはサービスが失われた場合は未検証となり、ブロックモードでは送信を停止します。上流プロバイダのキーと接続先はアプリへ渡らないため、Enfour は新しいキーを配布したりアプリに任意の接続先を指定したりせず、将来プロバイダを変更できます。

セキュリティクラウドのプロンプトファイアウォールは第三者サービスです。伏字化済みでもテキストは Mac の外へ出ます。この境界を受け入れる場合だけ選択してください。既定のクラウド検査は Enfour AI Cloud 経由の GPT モデルを使用し、プロンプトと生成テキストを永続保存しない構成です。提供と不正利用防止に必要なトークン数メタデータは記録される場合があります。

13.7管理者にできること:ツール

アシスタントは監査済みの固定されたツールを通じてのみ動作します。各ツールはガード付きで、読み取り専用ツールは常に動作し、変更ツールは上記トグルと承認を要します。役割別に示します。

領域代表的なツール
把握・足場固めapp_capabilities(管理対象)、search_app_help(FrontierStackの設定・コントロールに関する現在のヘルプ)、list_targets(サーバとデバイス)、get_server_healthget_locationget_sidebar_state
診断(読み取り専用)diagnose(ping・dig・curl・netstat・df・ps…)、read_logstail_logsecurity_auditport_checkcert_expiry_checkwhois_lookupip_analysismetrics_snapshotphp_testpython_test
サービス制御service_action(Homebrew サービス)、repair_servicereload_webserverrestart_appmonitor_action(サーバのヘルパー経由)、reboot_host
Web とデータベースlist_sitesread_site_filewrite_site_filevhost_createvhost_removelist_databasesrun_sqldb_dumpbackup_nowrestoreissue_certificate
ネットワークと境界firewall_ruleflush_dnsdns_record(Cloudflare)、router_info(状態・ヘルス・セキュリティ兆候)、reboot_routeropen_web_uidiscover_devicespin_deviceinternet_speed
メールセキュリティemail_auth_dns(SPF/DMARC/DKIM)、harden_mail_postfixtest_open_relaygenerate_dkim_keyinstall_mail_cert
セキュリティテストstrix_status(Strix の導入状況・スキャン履歴・所見を読む)、strix_scan(許可済みのペネトレーションテストを実行)、strix_control(停止・再実行・再起動・消音)— 操作系の 2 つはローカル専用
ファイルとシェルread_remote_filewrite_remote_fileupload_file、そして run_script — この Mac または任意の連携サーバ上の汎用シェル
スクリプトとスケジュールlist_scriptsrun_saved_scriptsave_scriptschedule_cronschedule_app_actionlist_sample_scripts
メッセージングget_messaging_channelssend_notificationget_alert_errors
ナレッジlist_skillsload_skilllist_notesread_noteobsidian_searchobsidian_read_noterememberlist_memoryforget
アプリ自体open_paneset_pane_visiblemanage_paletteset_services_visible — アシスタントがサイドバーを案内・再構成できます

汎用の run_script ツールはアシスタントのシェルです。固定ツールでカバーされないことは、小さく読みやすいスクリプトを書いてあなたに承認を求めて実行します。リモートサーバでは 2 段階で動きます — まず読み取り専用のテストスクリプトで問題を特定し、次に最小限の修正、そして再テストで確認します。

13.8スキル・ノート・メモリ

3 つの機能により、管理者は一般的な既定値ではなくあなた自身の知識から作業します。

13.11.1スキル

スキルは厳選された複数ステップのプレイブックです — フリートのセキュリティ監査、Web スタックの再起動手順など。AI Skill Manager で管理します。アシスタントは(名前だけで)安価に一覧し、必要なときにそのフル手順を読み込むため、即興ではなくあなたが承認した手順に沿って作業します。

13.11.2AI と共有したノート

ノートペイン(第 3 章)には資格情報・ランブック・手順を保管し、各ノートには既定でオフのロックが付きます。アシスタントが読めるのは、AI と共有で明示的にロック解除したノートだけです。存在を知るためにタイトルは見え、本文は作業に必要なときだけ読みます。

13.11.3長期メモリ

「LINE が私の優先チャネルだと覚えて」「週末はメッセージを送らないで」と伝えると、ルールを永続的な memory.md に保存し、今後のセッションでも守ります。メモリはいつでも一覧・削除できます。

セキュリティロックされたノートは決して読めず、共有していないノートは拒否を返します — だからアシスタントは、あなたが渡すと決めていない資格情報に到達できません。秘密をチャットに貼らず、ボールトか共有ノートに追加してください。

13.9この Mac とフリート

ほぼすべてのツールはターゲットを取ります。省略するとこの Mac で実行され、連携サーバ名を指定すると、同じ診断・ログ読み取り・スクリプト・修正がそのサーバで SSH 経由で実行されます(読み取り専用ツールは読み取り専用のまま)。だから 1 つの会話が 「この Mac のディスクを確認」から 「同じことを web-01 と edge-03 でも」へ滑らかに移れます。サーバ連携とホスト監視ヘルパーは第 8 章で扱います。

特権作業の前に、ハーネスは選択したターゲットの秘密を含まないアクセス状態を読みます。連携サーバでは SSH/root/sudo パスワードが FrontierStack のキーチェーンに保存済みかを示します。モデルに届くのは利用可否だけで、値は決して届きません。この Mac では、承認済み特権ヘルパーが使えるか、または対応する操作で通常の macOS 管理者パスワード入力が表示されるかを示します。アクセス可能なら、アシスタントは説明だけで止まらず、あなたの承認後に限定ツールを試します。自由記述の AI スクリプトには、サーバの保存済みパスワードは自動で渡されません。

13.10カスタム指示と履歴

カスタム指示エディタ(第 17 章)で、アシスタントの恒常的な振る舞い(文体、要約の仕方、常に望む既定)を整えられます。過去の会話は履歴メニューに残るので、調査に戻ることができ、アシスタントは中断したところから再開できます。

13.11実例

全体像をつかむため、典型的なやり取りを示します — 「ショップが 502 で落ちている。」

アシスタントは get_server_health を呼び、web-01 で Apache は稼働、PHP-FPM が停止していると分かります。read_logs(ターゲット web-01)で PHP-FPM のログを読み、設定編集後にプールが起動していないことを突き止めます。問題の行を示し、write_remote_filewww.conf への 1 行修正を提案し、— あなたの承認後 — reload_webserver でリロードし、ループバックでサイトを再確認。復旧。希望すれば send_notification でチームに復旧の一報を送ります。

その間、パスワードはモデルに届かず、すべての変更はあなたの承認を待ち、全体があなたが手作業でできること — ただより速い — でした。

ヒント支出は AI コストモニタ(第 15 章)で把握しましょう:今月の合計を予算と対比し、プロバイダとサブスクリプション別に内訳表示します。MCP 経由で自分のサブスクからアプリを操作すれば、トークン課金は一切ありません — 第 14 章参照。
14

第 14

MCP と自前 AI からの操作

FrontierStack を MCP サーバとして動かし、Claude Code・Cursor などの MCP クライアントからサーバを操作。すでに支払っている定額プランで、トークン課金なし。

第 13 章ではアプリ内蔵の AI 管理者を扱いました。本章は逆方向 — すでに使っている AI ツールに FrontierStack を公開する話です。FrontierStack は自身が MCP サーバとして動作するため、外部のハーネス(Claude Code・Claude Desktop・Cursor・Codex など Model Context Protocol クライアント)からアプリ全体を操作できます。同じガード付きエグゼキュータ、同じ承認カード、同じ「既定は読み取り専用」の姿勢を — あなたのエディタやターミナルから。

14.1なぜ MCP で FrontierStack を操作するのか

主な理由は 2 つです。

  • 従量課金の AI 請求がない。ハーネスが自分のサブスクツール(Claude プランの Claude Code、Cursor のシート)なら、AI はすでに支払っている定額プランで動きます。サーバ操作にトークン課金は発生しません。
  • コードとインフラを 1 つのエージェントで。エディタにいるコーディングエージェントが、そのコードが動くサーバを調査・操作できます — 本番ログを読む、サービスを再起動、証明書を確認、マイグレーションを実行 — 作業中のツールを離れずに。
メモMCP(Model Context Protocol)は、AI アシスタントをツールやデータに接続するためのオープン標準です。FrontierStack はサーバ側を実装し、あなたの AI ツールがクライアントになります。

14.2仕組み

FrontierStack はツールレジストリを MCP 経由で公開し、サーバを localhost にバインドして必須のトークンで保護します。クライアントからのツール呼び出しは、内蔵の管理者が使うのと同じエグゼキュータに渡り、ライブのアプリ状態に作用します — だからコーディングエージェントは、コピーではなく実際のサービス・サイト・フリート・ヘルスを見ます。安全モデルは第 13 章と同一です。

  • 許可するまで読み取り専用。MCP の面は、変更とスクリプトを有効化するまで読み取り専用のままです(アプリ内アシスタントと同じ)。
  • 変更のたびに同じ承認カード。Cursor や Claude Code からの変更ツール呼び出しは、アプリ内リクエストと同じ承認を FrontierStack に出します。
  • 秘密情報は Mac を出ない。ボールトの挙動も同じで、スクリプトは名前を参照し、値は実行時に注入され、モデルには決して送られません。

初めて接続するエージェントにもFrontierStack自体を説明します。読み取り専用のsearch_app_helpツールはアプリ作成のヘルプ索引だけを検索するため、外部ハーネスも任意のファイルへアクセスせずに、設定場所やコントロールの意味を回答できます。frontierstack://manualリソースは、英語/日本語のデスクトップ版とiPhone/iPad版マニュアルの正規URLを返します。どちらもMCPディスカバリで案内されます。

ステートレスMCPが既定です。FrontierStackはMCP 2026-07-28に対応し、各HTTPリクエストがプロトコル版・クライアント機能・ルートを運ぶため、隠れたセッションやMcp-Session-Idは不要です。server/discoverはサーバ機能とキャッシュ情報を返します。まだ新しい版に移行していないClaude Code・Cursorなどのため、所有者専用のKeychainブリッジは従来のinitialize方式も維持します。ベアラートークンをクライアント設定へ書き込むことはありません。

14.3MCP サーバを有効化する

初回接続時、FrontierStack は MCP サーバの起動を提案します。自分で有効化することもできます。

  1. FrontierStack の MCP 設定を開き、MCP サーバをオンにします。localhost にバインドし、トークンとエンドポイント URL を表示します。
  2. ペインでクライアント(Claude Code・OpenAI Codex CLI・Cursor・Gemini CLI・Claude Desktop)を選び、用意されたコマンドまたは設定をコピーします。ウェブの MCP ページにも同じスニペットがあります。
  3. あるいはワンクリックの「追加」ボタンで、そのクライアントの設定ファイル(~/.codex/config.toml~/.cursor/mcp.json~/.gemini/settings.json・Claude Desktop の設定)に直接書き込めます。MCP はオープンな標準なので、他のどの MCP クライアントでも接続できます。
  4. ツールで会話を始め、FrontierStack のツール一覧やフリートを尋ねて接続を確認します。

インストール済みのfrontierstack CLIも既定でステートレスMCPを使います。frontierstack discoverでプロトコルと機能を機械可読形式で確認でき、frontierstack infoは推奨するステートレス版と対応する従来版の両方を表示します。

別のMCPサーバペインでは、新旧どちらのサーバも管理できます。「自動」は最初にserver/discoverを試し、必要な場合だけ従来のinitializeへ切り替えます。HTTPサーバが対応を実証した場合だけ、一覧に緑のステートレス表示が出ます。stdioサーバは外部クライアントがプロセスとハンドシェイクを管理するため、明示的にステートレスとして設定できます。

セキュリティトークンは必須で、サーバは既定で localhost のみで待ち受けます。トークンはパスワードと同様に扱ってください。別デバイスから到達するには、ポートを公開せず、正しくペアリング(次節)してください。

14.4署名付きリクエストとデバイスペアリング(FS1)

コントロールサーバと MCP サーバは、ベアラートークンと TLS の上に、デバイスごとの署名付きリクエスト層 — FS1 — を追加します。各ペアリング済みデバイスは独自の Ed25519 秘密鍵を持ち、すべてのリクエストに署名します。FrontierStack は承認済みデバイスに対して署名を検証するため、トークンが漏れただけでは何も操作できません。

  • デバイスごとのスコープ。各デバイスには読み取り専用〜フルコントロールのスコープを Mac で付与します。
  • ワンタップ失効。デバイスを削除すれば即座に遮断され、他には影響しません。
  • これは iPhone/iPad アプリのペアリングと同じ仕組みです — モバイル版マニュアルと、第 10 章の信頼モデルを参照。

14.5外部 AI ジョブ

ライブの MCP に加え、FrontierStack はサブスクの AI CLI にジョブを渡すことができます — タスクをまとめてローカルの Claude(など)にあなたのプランで処理させ、結果をアプリに戻します。これにより、重め・長時間の分析を従量課金なしで実行でき、Data Map(ロケーションごとのデータフロー図)と組み合わせてエージェントに必要な文脈を与えます。外部 AI ジョブは AI スタック(第 15 章)から管理します。

14.6MCP 経由のスキル・ノート・メモリ・Obsidian

外部ハーネスは、内蔵管理者と同じナレッジ面に、同じゲートのもとで到達します。

  • スキル — 厳選したプレイブックを発見・オンデマンド読み込み。
  • 共有ノート — 「AI と共有」で解除したノートのみ読み取り可能。
  • 長期メモリ — 設定や恒常ルールの同じ memory.md
  • Obsidian — Obsidian ボールトを連携していれば、SOP やランブックを検索し、文書化された手順に従えます(第 12 章)。
ヒント外部エージェントはあなたのスキル・共有ノート・Obsidian の SOP に従うため、あなたの手順 — アプリ内管理者が使うのと同じもの — で動作します。それらを最新に保てば、両方の経路が同時に良くなります。

14.7フリートスキル — あらゆるエージェント向けのポータブルな文脈

MCP サーバはエージェントにフリートを操作させます。フリートスキルはもう半分 — エージェントが何かに触れる前にあなたの環境を教える静的な文脈です。フリートスキルペインは SKILL.md を生成します。サーバとその役割・OS・サービス・到達方法、ネットワークの場所、KVM と電源ソース、そしてあなた自身のルールと設定の自由記述 — すべてシークレットを除去した上で。これを読んだエージェントは、当て推量ではなく正しいホストを選び、正しい経路を使い、あなたの慣習を尊重します。

~/.claude/skills/fleet/SKILL.md に書き込まれ、Claude Code が自動的に検出します(フロントマターの description: が、そのスキルがいつ関連するかをモデルに伝えます)。MCP 接続エージェントは get_fleet_context ツールで同じ内容を取得でき、その慣習を読む CLI 向けに任意で ~/AGENTS.md も出力できます。自動更新をオンにすると、フリート・場所・KVM が変わってから数秒後にスキルが書き直され、実態からずれません。

地図とリモコンの違いだと考えてください。MCP はリモコン — ライブで認証済み、実行できます。スキルは地図 — セットアップ不要でポータブル、どのエージェントにも安全に渡せ、有能なツールが「正しいやり方で誤ったこと」をするのを防ぎます。

14.8どれをいつ使うか

使うものこんなとき
内蔵 AI 管理者(第 13 章承認カードやコストモニタも含めすべてを 1 つのウィンドウで完結させたく、モデル/キーを用意する、またはローカル実行で構わないとき。
MCP 経由の FrontierStack(本章)すでに Claude Code や Cursor で作業しており、コードとサーバを 1 つのエージェントで扱い、サブスクでトークン課金を避けたいとき。
外部 AI ジョブ(第 15 章タスクが重い・長時間で、対話的に実行するよりサブスク CLI に渡したいとき。

3 つとも同じガード付きツールと同じライブのアプリ状態に到達します。作業しやすい場所で選んでください。安全性の保証は変わりません。

15

第 15

AI スタック

AI のもう一つの側面 — サーバを操作するアシスタントではなく、サーバが動かす AI インフラそのもの。エージェントランタイム、ローカルモデル、サンドボックス、GPU、そしてその費用までを、ひとつの画面から見守ります。

前の 2 章は AI が FrontierStack を操作する側でした — 組み込みの管理者(第 13 章)と、自分のツールから MCP 経由でアプリを操作する話(第 14 章)です。本章はその逆です。FrontierStack が実行・監視を手助けする AI インフラそのもの — エージェント基盤、ローカルモデルサーバ、コードサンドボックス、ブラウザ自動化、GPU ファブリック、ML ツール、ガバナンス、そしてそれら全部の費用を扱います。これらは他と同じカタログ上のサービスで、サイドバーの AI 系カテゴリーにまとまっていますが、AI を動かすことが「呼び出す箱」ではなく「運用するスタック」になった今、独立した一章に値します。

15.1エージェント基盤ボード

サイドバーからエージェント基盤(Agent Platforms)を開くと、FrontierStack が把握するすべての AI エージェントランタイムが、行ごとのライブ状態ドット付きで一覧されます。ヘッダーには例えば「3 / 7 running」 — 設定済みランタイムのうち到達可能で稼働中の数 — と表示されます。各行は、稼働状態、提供しているモデル、そしてランタイムが報告していればエージェント数・トークン・アクティブセッションを示します。AI ツール get_agent_platforms はまさにこれを管理者に公開するので、「どのエージェントランタイムが落ちている?」と普通の言葉で尋ねられます。

ランタイムは 2 種類です。一つは CLI ランタイム — コマンドラインツールがインストールされ(かつ --version に応答する)ことで検出されます。コーディングエージェントの Claude Code・Gemini CLI・OpenAI Codex、そして Factory の droid です。もう一つは状態エンドポイントを公開し、ライブメトリクスをポーリングする HTTP ランタイムです。いくつかのクラウドエージェント製品(OpenHands・Manus・Devin・OpenAI Operator・E2B)は、ポーリングではなく接続するカタログ項目として下部に並びます。

プラットフォーム何か
OpenClawセルフホストのエージェントランタイム。稼働状態とモデルを監視。
HermesHTTP でポーリングされ、状態・モデル・セッションを表示するランタイム。
DeerFlowディープリサーチ/多段エージェントランタイム。
LangGraph Platformグラフベースのエージェントオーケストレーション。状態とモデルをボードに表示。
CrewAI Enterpriseマルチエージェント「クルー」ランタイム。
Microsoft AutoGenマルチエージェント会話フレームワーク。
Genspark自律型エージェント基盤。
Agent Zero汎用の自律エージェント。
NVIDIA NemoClawNVIDIA のエージェントランタイム。
OpenAI Codex / Claude Code / Gemini CLI / Factory Droidコーディングエージェント CLI。インストール+バージョンで検出され、オンデマンドとして表示。

設定済みランタイムはより広いシステムに連動するため、ランタイムが停止したり、トークンのクォータ(レート制限・429・課金)に達したりすると、アラートが上がり、Local Health ボードの services グループに赤で表示されます。各ランタイムのエンドポイントと資格情報を一度設定すれば、以後は他のサービスと同様に監視されます。

スクリーンショット追加予定
図 15.1. エージェント基盤ボード:ランタイムごとに 1 行、緑/赤の状態ドット、提供モデル、報告があればライブのエージェント/セッション。撮影手順: 複数のランタイムを設定した状態でエージェント基盤ペインを開く。最低 1 つ稼働中(緑)、1 つ停止(赤)にし、「N / M running」のサブタイトルを表示
メモここでの「ランタイム」は、エージェントを実行するエンジンであって、あなたが書いたエージェントではありません。自分で作るエージェントは(後述の)Agent Sessions に置かれ、組み込み管理者が動かします。両者は補完的です — このボードはサードパーティ基盤を監視し、Agent Sessions は自分の目標駆動ループを実行します。

15.2Registry・Task Queue・Model Router・Connectors

4 つの関連ペインが、同じライブのランタイム状態を読みながら、エージェントフリートを関心ごとに分解します。

  • Agent Registry — マスター一覧。すべてのランタイムに加え、カタログのクラウドエージェント製品を、トークンが Keychain にあるものには「資格情報保存済み」マーカー付きで表示。FrontierStack が会話できるすべてを 1 か所で見られます。
  • Task Queue — 各ランタイムにまたがるアクティブなエージェントセッションと実行。呼び出しごとの CLI(Claude Code・Gemini・Codex・Factory)は、デーモンではなくタスクごとに起動するため「on-demand」と表示されます。
  • Model Router — 各ランタイムが使うモデルと API キー。報告されたモデルと必要なプロバイダキーを読み、そのキーが存在するかを示します(キーの編集は AI Models)。ランタイムが意図したモデル — そして費用 — に向いているか確認できます。
  • Repository Connectors — エージェントが読み書きできる Git プロバイダ。GitHub・GitLab・Bitbucket の個人アクセストークンを取り込むと(Keychain 保存)、FrontierStack が /user へのライブ到達性チェックを実行し、エージェントが必要とする前に資格情報が有効か分かります。

エージェントランタイムとコネクターは、一度保存した資格情報で認証します。FrontierStack の他の場所と同様、これらのトークンは macOS Keychain に置かれ、アプリの設定ファイルには入らず、クラウドモデルに送られることもありません。

セキュリティRepository Connector のトークンは、エージェントにコードへの書き込み権限を与えます。PAT は必要なリポジトリだけにスコープし、ランタイムを廃止したら直ちにプロバイダ側で失効させてください。コネクターのライブ /user チェックはトークンが有効かを確認するだけで、トークンが何をできるかは制限しません — それは GitHub/GitLab/Bitbucket 側で設定する PAT のスコープです。

15.3Agent Sessions と組み込みターミナル

Agent Sessions は、自分で作る目標駆動の運用・SaaS ループのマネージャです — ヘッダーが言うとおり「one-shot or recurring(1 回/繰り返し)」。セッションは、普通の言葉の目標、タイトル、ステップ予算、そして変更を許可するかのスイッチを持ちます。1 回だけ実行するか、繰り返しに設定(間隔が経過すると再実行)してスケジュール監視します。各セッションは管理者(第 13 章)と同じガード付きツールを動かし、各ステップを、いつでも停止できるトランスクリプトに流します。セッションループからスクリプトは決して許可されません。「このエンドポイントを監視して止まったら再起動」「毎朝、在庫を突き合わせる」といったエージェントの居場所です。

FrontierStack は、エージェントの隣でシェルが欲しいときのために、本物のターミナルも内蔵します。エンジンは SwiftTerm で、PTY 内でログイン zsh を実行します。スタイルも変えられます — Terminal Style で、iTerm2.itermcolors)・Ghostty・汎用の Alacritty/Warp の key-value ファイルからカラーテーマをインポートでき、内蔵の dark・light・Solarized テーマに重ねられます。このターミナルはエージェントループのコンソールと同じエンジンなので、見えるものとセッションが実行する環境が一致します。

ヒント繰り返しセッションには厳しいステップ予算を与え、信頼できるまで「変更を許可」はオフにしておきましょう。単に報告するだけの読み取り専用ループ(「ディスクが 90% を超えたら知らせて」)は安全な最初のエージェントです。トランスクリプトを見届けてから、修正ループへ昇格させてください。

15.4ローカルモデルを動かす

クラウドモデルに何も送らない選択も可能です。FrontierStack はローカル推論サーバを管理し、管理者をそのうちの一つに向けられます。主要なローカルアプリ 3 つは一級市民です。

  • Ollama — 最も手軽なローカルモデルランナー。モデルを取得・提供し、管理者のエンジンとして選択できます。
  • LM StudioLM Studio ペインがインストールを検出し、lms CLI でロード済みモデルとダウンロード済みを一覧。ヘッダーに「N models loaded」または「no model loaded」を表示します。
  • VibeProxy — これだけ性質が異なり、モデルランタイムではなくすでに契約している AI サブスクリプションへの橋渡しです。Claude Code・ChatGPT・Gemini・Kimi・Qwen・GitHub Copilot・Z.AI GLM を一度接続すれば、従量課金の API キーなしでそれらのモデルがハーネスの選択肢に現れます。VibeProxy ペインは Homebrew でのインストール、起動と停止、通常どおりの Group StartRun at startup 設定、そしてリクエストログとアカウント状態を見る CLI Proxy API ダッシュボードの起動を提供します。
  • LocalAI — ポート 8080 のカタログサービスとして動かす、セルフホストの OpenAI 互換サーバ。
ヒントAI サブスクリプションをすでに契約していますか? 従量課金の API キーを追加する前に、ハーネスエンジンとして VibeProxy をおすすめします。同じ Claude・GPT・Gemini のモデルが、トークン単位ではなく契約済みの定額プランで応答します。フォールバックとして FrontierStack AI かローカルモデルを設定しておけば、VibeProxy が停止したりクォータを使い切ったりしても、ハーネスが自動で切り替えます。

これらの他にも、AI / LLMs カテゴリーはセルフホスト推論の棚一式を備えます — vLLMllama.cpp・Apple の MLX-LM サーバ・JanLiteLLM(100 以上のプロバイダをまとめるプロキシ)・Open WebUIAnythingLLMPrivateGPT、RAG/ベクトルツール。ローカルで動かす意義はプライバシーと費用です — 管理者のエンジンがローカルモデル(Ollama・ループバックのエンドポイント・Apple のオンデバイスモデル)のとき、Mac から何も出ないので何も秘匿されません — クラウドエンジンを守る秘密情報のスクラブが、そもそも不要なのです。

セキュリティ秘密情報の秘匿は外部エンジンに対してのみ動作します。ローカルエンジンはプロンプトとツール出力をすべて見ます — 自前のハードウェアで動くので、それで問題ありません。ローカルモデルのプライバシー上の利点は、まさにデータがマシンから出ないことです。これを利点として扱い、モデルホストを Mac 本体と同じだけ信頼できる状態に保ってください。

15.5コードサンドボックスとブラウザ自動化

エージェントには、コードを安全に動かす場所と、ライブな Web を読む手段が要ります。FrontierStack はその両方を管理します。

コードについては、E2B ペインが e2b CLI 経由でセキュアなクラウドサンドボックスを管理します。API キーを入力(Keychain に E2B_API_KEY として保存、または e2b auth login で一度認証)し、一覧・テンプレートからの起動・実行中サンドボックスのkillができます — 後片付け用の Kill All と「一時停止を含める」トグル付き。緑のドットは稼働中、オレンジは一時停止。エージェントが使う、使い捨ての隔離マシンで、そのコードがサーバに触れることはありません。

Web については、AI カテゴリーがブラウザ・クロールツールを含みます — Browserbase(マネージドのヘッドレスブラウザ)・Crawl4AIFirecrawlApify(サイトをモデル向けの整ったテキストに変換)、そしてスクリプト自動化の Playwright。API のないページにもエージェントの「目」を与えます。

注意起動したサンドボックスは、kill するまで課金が続きます。エージェント作業のひと区切りごとに E2B ペインを開き、一時停止を含めるをオンにして Kill All で、課金されたまま放置されるものをなくしてください。リクエスト課金のクラウドクロールサービスにも、同じ規律が当てはまります。

15.6GPU インフラとクラスタ

AI が実 GPU 上で動くなら、GPU Fabric ペインがハードウェアの読み取り専用ヘルスを提供します。連携サーバを選び、SSH で診断を実行します — GPU の構成と温度(nvidia-smi)、NVLink 状態、GPU トポロジー行列、NVSwitch Fabric Manager の健全性、DCGM インベントリ(dcgmi)、InfiniBandRoCE/RDMA リンク、Slurm の GPU 割り当て、コンポーザブルファブリック CLI(WEKA・Liqid・GigaIO)。GPU は Linux ホスト上にあるため、これはフリート内のサーバを対象とします。GPU のないマシンではツールが単に「not found」と報告します。チェックを 1 つ実行するか、Run All Checks で一括実行します。

ホストの GPU 温度と負荷は、エージェントを入れていれば標準のホストモニタ(第 8 章)でも表面化するので、過熱した GPU ボックスは他のマシンと同様にアラートを上げます。スケールアウトには、AI Clusters カテゴリーが Exo(複数の Mac で 1 モデルを実行)・Petals・Distributed Llama・Ray・Slurm・Run:ai を、ML Workbench カテゴリーが学習側の実験管理・パイプラインツール(MLflow・ClearML・Weights & Biases・Kubeflow・JupyterLab)を備えます。

15.7AI ガバナンスと安全性

本番でエージェントを動かすとは、何をするかを見張り、何ができるかを縛ることです。FrontierStack は AI Governance & Safety の棚をカタログ化し、これらのツールが監視対象のランタイムの隣に並ぶようにしています — LLM 可観測性・トレーシングの LangfuseHeliconeArize Phoenix、評価・レッドチーミングの PromptfooRagasgarak、入出力検証とプロンプトインジェクション防御の Guardrails AINeMo GuardrailsLakera Guard、そして Credo AI や Holistic AI などのガバナンス基盤。カタログサービスとしてインストール・監視します — 上のボードのエージェントにとっての監査証跡とシートベルトです。

ガバナンスの棚がなぜ要るか
行動できるエージェントは、ガードレールの分しか安全ではありません。トレーシング(Langfuse)はエージェントが何をしたかを教え、評価(Promptfoo)は変更後も正しく振る舞うかを教え、プロンプトインジェクションファイアウォール(Lakera)は敵対的な Web ページによる乗っ取りを止めます。FrontierStack はこれらを置き換えません — ランタイムの隣に居場所を与え、運用するスタックと、それを監査するスタックを 1 クリックの距離に置きます。

15.8AI コストモニタ

アシスタント、自作エージェント、複数のローカルモデル、外部ハーネスを使うと、費用は複数の場所に分散します。AI Model Costs はそれをひとつの画面に集約します。ヘッダーは今月の合計と予算に対する割合を表示し、色分けバーは 80% でオレンジ、100% で赤になります。AI ツール get_ai_costs は同じ数値を管理者に公開します。

ダッシュボードは 3 つの流れを一緒に追跡します。

  • 従量 API 課金 — プロバイダ・モデル別。編集可能な価格表(100 万トークンあたり USD)から計算するか、請求書から直接入力。Connect Accounts は OpenAI・Anthropic・OpenRouter・DeepSeek、そしてセルフホストの LiteLLM プロキシから月初来の費用を自動取得します — プロバイダごとに複数アカウント、それぞれ独立した費用行。
  • 定額サブスク — ChatGPT Plus・Claude Pro/Max・Cursor・Perplexity・T3 Chat など — 月の合計に組み込み、独自のスライスとして表示。削除せずにトグルで除外できます。
  • ローカル CLI 使用量 — この Mac の Claude Code と Codex のログをワンクリックでスキャンし、モデル別に今月のトークンを推定として集計。

プロバイダ別の内訳(ドーナツチャート)、予算ラインを引いた 6 か月トレンド、そして費用を費用最適化アドバイザーに渡す Ask AI ボタンが、これを締めくくります。請求ヘルス監視は、接続済みの有料サービスをクレジット切れ・上限到達・支払い遅延・アカウント停止についてプローブし、アラートを上げます — キーが止まろうとしているのを、止まる前に捉えます。

スクリーンショット追加予定
図 15.2. AI Model Costs:色分け予算バーに対する月初来合計、プロバイダ別ドーナツ、サブスク一覧、6 か月トレンド。撮影手順: 複数プロバイダを記録し、いくつかのサブスクを有効にした状態で AI Model Costs を開き、内訳ドーナツとトレンドチャートが埋まるようにする
ヒントまず現実的な月次予算を設定してください — バーとトレンドの予算ラインは、それがあって初めて意味を持ちます。次に自動同期用に OpenAI と Anthropic の管理者キーを接続し、定額サブスクを追加すれば、ダッシュボードは「今月、AI にいくらかかっているか?」への正直な単一の答えになります。
セキュリティコストの自動同期には OpenAI/Anthropic の組織管理者キーが必要です(各社のコスト API がそれを要求します)。このキーは強力です — ここだけに保存してください。Keychain に置かれ、費用の読み取りにのみ使われます。管理者キーをエージェントランタイムの推論キーに流用しないでください。ランタイムには Model Router 経由で、狭くスコープした専用キーを与えましょう。

第 V

V

ビジネスとリファレンス

FrontierStack を業種に合わせて作り替え、そして実務の締めくくり:設定、ライセンス、アップデート、ショートカット、トラブルシューティング。

16

第 16

ビジネスと業種別ソリューション

FrontierStack は 1,000 を超えるサービスの言葉をすでに話せます。プリセットは、あなたの事業に効く一握りだけを浮かび上がらせ、いくつかのペインがそれを実働するバックオフィスに変えます。

第 6 章のカタログはあえて巨大です。グラフデータベースとレンダーファームとホテルのチャネルマネージャを同時に動かす事業はありません — ですから本章の狙いは幅ではなく絞り込みです。FrontierStack にはプリセットと保存済みのセットアップがあり、関係ないものをすべて隠し、特定の業種が実際に必要とする十数個のサービスだけを浮かび上がらせます。本章では、アプリが調整済みの業種をたどり、それぞれが明らかにするサービスを示します。

新製品ではなく、レンズだと考えてください。これまで見てきた Web スタック・監視・スクリプト・AI 管理者は変わりません。プリセットは、最初に何を見せるかを決めるだけです。

16.1プリセット・セットアップと業種のレンズ

アプリを仕立てる仕組みは 2 つです。プリセットは組み込みの出発点です。プリセット ▸ ドロップシッピングプリセット ▸ スモールビジネスを選ぶと、サイドバーがその業態に合わせて作り替わります — 適切なサービスカテゴリが現れ、厳選された監視ペインがフロート表示され、残り 900 のサービスのノイズは退きます。セットアップはその表示のあなた自身のスナップショットです(どのサービスを表示し、何をピン留めし、フローティングパレットの配置、そして任意で紐づけるネットワークロケーション)。セットアップペインで作成し、第 3 章のとおりプリセットメニューから切り替えます。

以下のどの業種でもワークフローは同じです。プリセットを適用し、実際に使う 2、3 個のサービスを設定し(API キーを貼る、チャネルを有効化する)、結果をセットアップとして保存して、「すべて表示」へ寄り道した後でも戻れるようにします。

ヒント仕立てを AI 管理者に任せましょう。事業内容を伝えれば — 「3 件の物件で短期賃貸をしています」 — 該当カテゴリを表示し、関連する監視ペインを有効化し、何を接続すべきかを説明します。手で編集するのと同じサイドバーを作り替えます。

16.2スモールビジネスのプリセット

これは macOS Server の古典的な用途を現代化したものです。1 台の Mac mini が、店舗・スタジオ・事務所のバックオフィスを動かします。スモールビジネスプリセットは、店舗が依存するカテゴリを明らかにし、そのいずれも目の前の Mac でセルフホスト可能で、パート II〜III のバックアップ・監視・堅牢化がその下を支えます。

用途表示されるサービス
POSSquare(組み込みペイン)、Toast、Lightspeed、Floranext
CRM・ロイヤルティSuiteCRM、EspoCRM、Odoo CRM(セルフホスト);HubSpot、Zoho、Pipedrive;Square Loyalty、VoucherVault
EC・CMSWooCommerce、Medusa、Saleor;WordPress、Drupal、Ghost;Stripe/PayPal/Square 決済
メーリングリストListmonk、Mautic(セルフホスト);Mailchimp、Brevo、SendGrid
メールサーバ組み込みのメールサーバペイン、mailcow、Modoboa、SPF/DKIM/DMARC ツール付き
カレンダーRadicale、Baïkal、SOGo(CalDAV/CardDAV);カレンダーヘルスペイン
会計ERPNext、Xero、QuickBooks、freee、Money Forward
ヘルプデスクZammad、osTicket(セルフホスト);Freshdesk(チケット数のライブ表示)

これらの多くは、単なるカタログ項目以上です。シンプルなキーベース API を持つ CRM・ヘルプデスク・ストア・メーリングリストのサービスは、ペイン内にライブ指標を表示します — Freshdesk は未対応/保留/期限超過のチケット、Shopify は未完了注文、Mailchimp は購読者数 — そして「アラート」をしきい値付きで有効にすれば、滞留がいつものチャネルに届きます(第 11 章)。

セキュリティ顧客データを自分の Mac でセルフホストするということは、データ保護の責任も自分にあるということです。公開前に第 10 章を踏みましょう。全サイトの TLS、公開対象以外を閉じたファイアウォール、本体外への暗号化バックアップ、オープンリレーを塞いだメールサーバ。

16.3ホスピタリティと短期賃貸

バケーションレンタルや小規模ホテル向けに、FrontierStack には組み込みのチャネルマネージャペイン(カテゴリ PMS)があり、物件管理プラットフォームをライブダッシュボードに変えます。これはホスピタリティプリセットの心臓部です。

チャネルマネージャを開き、PMS Health で使っているプラットフォームを 1 つ有効化し、資格情報を貼ります — 入力欄のラベルはプラットフォームごとに変わります。Hostaway は Account ID、Lodgify は API キー、Guesty は client ID+シークレット、Cloudbeds は Bearer トークン、Beds24 は API トークン、自作の AppSheet アプリなら Application Access Key。Check で API エンドポイントの到達性を確認し、Sync でライブ予約を取得します。Reservations(Platform API)セクションがゲスト・チャネル・日付・金額を一覧し、上部に売上と稼働率ダイヤルが出ます。

すべての OTA にプラットフォーム API が要るわけではありません。Calendar Sync セクションは各チャネルの iCal エクスポートを取り込みます — チャネルに iCal URL を指定するか、Import from ICS Feeds で ICS Feeds ペインに追加した Airbnb・Booking.com・Vrbo・Expedia のフィードを引き込みます — API キーなしで 1 つのカレンダーに統合し、結合した .icsSave または Copy して Apple・Google・Outlook へ共有できます。

清掃が輪を閉じます。Cleaning & Turnovers — Turno セクションは Turno の API を直接接続するか、より簡単に Copy reservation iCal for Turno で予約カレンダーを渡します — そのカレンダーを Turno に追加すれば、チェックアウトごとに清掃を自動手配します。

スクリーンショット追加予定
図 16.1. チャネルマネージャペイン:上部に稼働率ダイヤルと売上、下にプラットフォームのライブ予約、そして Hostaway・Lodgify・Guesty・Cloudbeds・Beds24 や独自 AppSheet アプリの接続パネル。撮影手順: プラットフォームを 1 つ有効化し、同期済みの予約をいくつか表示、稼働率ダイヤルが見える状態でチャネルマネージャを開いて撮影

16.4ドロップシッピングと EC のフルフィルメント

ドロップシッピングプリセットは、目的に特化した 5 つのカテゴリ — 仕入れ・サプライヤプリントオンデマンド配送・フルフィルメント在庫同期利益分析 — を EC プラットフォームと SEO ツールとともに表示し、ドロップシッピングヘルス監視をフロート表示します。

段階表示されるサービス
仕入れ・サプライヤAliExpress、Alibaba、CJdropshipping、Spocket、Zendrop、SaleHoo、DSers
プリントオンデマンドPrintful、Printify、Gelato、Gooten
配送・フルフィルメントAfterShip、ShipStation、Easyship、Shippo、Pirate Ship
在庫同期SkuVault、Cin7、Zoho Inventory、Katana
利益分析Triple Whale、Lifetimely、BeProfit

ライブな部分は配送追跡です。ドロップシッピングヘルスは AfterShip の追跡 API を直接読み(キーは一度保存)、配送を状態別に集計します — 輸送中・配達済み・保留、そして滞留や例外フラグのものを問題リストに — 顧客がメールを送ってくる前に、止まった荷物が浮かび上がります。在庫・マーケットプレイス・利益のセクションは、対応するカタログサービスを接続すると点灯する枠です。現在ライブ接続済みは AfterShip で、他は各自のペインから到達できます。

メモ店舗そのもの — WooCommerce、Medusa、または Shopify 接続 — とメール、分析を同じ Mac で、すべて監視下に動かします。プリセットはレンズです。マニュアルの残りは、それらのサービスを実際に提供し保護する方法です。

16.5教育

学校やキャンパスは、別のカテゴリ群にまたがって動いています。単一の「教育プリセット」ボタンはありませんが、カタログがきれいにまとめており、セットアップで貴校が使うものだけを正確にピン留めできます。

機能表示されるサービス
学籍情報(SIS)PowerSchool、Infinite Campus、Veracross;openSIS、RosarioSIS(セルフホスト)
学習管理(LMS)Canvas、Schoology、Google Classroom;Moodle、Open edX、ILIAS、BigBlueButton
デジタル図書館Koha、DSpace、Greenstone(セルフホスト);EBSCOhost、JSTOR、ProQuest
キャンパス・学校運営Slate/OpenApply 入学管理、FACTS 学費、StarRez 寮、FET 時間割、ParentSquare

各行のオープンソースのもの — Moodle、Koha、openSIS — は完全なセルフホスト Web アプリで、第 4 章のスタック上で動かし、他のサイトと同様に監視・バックアップできます。クラウドのものは、ひと目で状態を見るための資格情報ペインから到達します。

16.6ビジネスメッセージングと顧客コミュニケーション

顧客がすでにいる場所で届けること自体がひとつのカテゴリです。ビジネスメッセージングは、地域ごとに重要な店舗↔顧客チャネルを集めます。WhatsApp BusinessLINE 公式アカウントWeChatZalo の公式アカウント、KakaoTalk チャネルと AlimTalk、MessengerInstagram DM、さらに IntercomManyChat、Respond.io、WATI、Gorgias といった受信箱・ボットツール。

このうち 3 つは現在ライブの到達性チェックを備えます — WhatsApp Business は認証済み名と品質評価を表示し、Intercom と ManyChat はトークンの有効性を確認 — 残りは資格情報とコンソールへのディープリンクを取り込みます。AI 管理者もこの全体像を見られます。get_messaging_channels ツールが、どのチャネルが接続済みで、どのアラートゲートウェイが実際に送信できるかを報告するので、ブロードキャストがどこへ送れるかを確認させられます。

16.7カレンダー・アカウントと Apple サービス

Mac ベースの事業は Apple の事業でもあります。いくつかの組み込みペインが、サーバに関わる Apple エコシステムの部分を管理します。

  • カレンダー。Calendar Discovery は一般的な CalDAV ポート(Radicale 5232、Apple 8008/8443、SOGo 20000、80/443)と /.well-known/caldav パスをスキャンします。エンドポイントを Calendar Health に追加すれば監視を続けます。古い macOS Server の CalDAV を生かす道でも、Radicale や Baïkal を新規に立てる道でもあります。
  • アカウント。Accounts ペインは Open Directory と LDAP を読み、エクスポートしたエントリを ldapadd で対象ディレクトリへ移行できます — 旧来の Apple ディレクトリサーバからユーザを移すための橋渡しです。
  • Apple サービス。Apple Services ペインは、サインイン中の Apple Account、有効な iCloud+ サービス、Find My Mac の状態を報告します — この機が何に紐づいているかの素早い棚卸しです。
  • Apple Home。HomeKit のデータベースはシステムアプリに非公開のため、Apple Home ペインはショートカット経由で操作します。Home アクションを含むショートカットでラップしたシーンや自動化は、FrontierStack から実行できるようになり、施設の自動化を運用に結び付けるのに役立ちます。
iCal が API に勝る理由
カレンダー(iCal)同期は、ホスピタリティとスケジューリングの静かな主役です。API キーは不要で、あらゆる OTA とカレンダーアプリが理解し、優雅に劣化します — 壊れたフィードは予約を落とすのではなく、ただ更新を止めるだけです。プラットフォーム API があればより豊富なデータが得られ、なくても iCal は空室状況を流し続けます。

16.8会計・ヘルスケア・AV・印刷

さらにいくつかの業種がカタログを締めくくり、それぞれセットアップにピン留めするカテゴリとして現れます。

  • 会計・ERP。ERPNext(セルフホスト);Xero、QuickBooks、freee、Money Forward、Plaid、Expensify は API で — 店舗の隣の帳簿。
  • ヘルスケア。セルフホストする診療所向けのオープンソース臨床システム:OpenEMR、OpenMRS、GNU Health、LibreHealth、Orthanc の DICOM/PACS サーバ、日本の OpenDolphin と ORCA。第 10 章のセキュリティ規律で扱ってください。患者データは賭け金を上げます。
  • AV・ステージ。会場・制作向け:AV Feeds ペインに加え、Dante の AoIP、Q-SYS、QLC+ や grandMA 照明、OBS、NDI、Resolume、デジタルサイネージ、Chromecast 制御 — ショーと、その背後のネットワークを 1 つのウィンドウで。
  • 印刷プロダクション。印刷・プリプレス業向けの組み込みペインで、Fleet & Remote グループ内、レンダーファームの隣にあります。

ここではどれも詳しい手順は扱いません — サービスごとの詳細は第 6 章にあります。本章の務めは、あなたの事業が何であれ、FrontierStack はそれを支えるサービスをすでに知っており、プリセットかセットアップひとつで、まさにそれらだけを — それ以外は出さずに — 明らかにできると示すことです。

スクリーンショット追加予定
図 16.2. プリセットメニューとセットアップペインを並べて:左に組み込みの業種、右にユーザ自身の保存ビューで、アクティブなものにチェック。撮影手順: セットアップペインの上にプリセットメニューを開き、カスタムセットアップが 2、3 個並び 1 つがアクティブ表示の状態で撮影
17

第 17

設定・ライセンス・アップデート

1 つの設定ペインにすべての環境設定が集まり、Ed25519 ライセンスがオフラインでティアを解錠し、Sparkle がアプリを最新に保ち、1 つのスイッチでテレメトリを停止します。

FrontierStack 自身に関する設定はほぼすべて 1 か所、設定ペインに集まります。Ed25519 ライセンスがオフラインでティアを解錠し、Sparkle がアプリを最新に保ち、1 つのスイッチでテレメトリを停止できます。

本章は、FrontierStack が管理するサービスではなくアプリ自体を設定するペインのリファレンスであり、それを取り巻く 3 つのしくみ — ライセンスアップデート、そして利用状況として何を送り何を送らないか — も扱います。これらの一部は AI 管理者の挙動も左右するため第 13 章を、不具合時は第 18 章を参照してください。

17.1設定ペイン

サイドバーから、またはアプリメニューの ⌘, で開きます。標準の macOS 設定ウィンドウは案内役にすぎず、すべての設定ボタンで同じペインを開きます — FrontierStack は環境設定を 2 つのウィンドウに分けず 1 か所にまとめているためです。ペインは、一般、ライセンス & サブスクリプション、アップデート、プライバシー & 診断、ロケーション、テキストエディタ、画像、メニュー、機能(Capabilities)、そしてクラウド/バックアップ先がグループ化された 1 枚のスクロールフォームです。

一般セクションには一度決めれば忘れてよい設定が並びます。既定のブラウザ(Safari・Chrome・Firefox・Edge・Brave・Arc のうちインストール済みのもの)を選ぶと、アプリ全体の「ブラウザで開く」がそれを使います。メニューバーに表示は、サービス群を起動・停止するグローバルなメニューバー項目を追加します。外観はシステム設定に関わらずライト/ダークを強制し、テーマ(アクセント)は UI 全体を色付けします — AmberTerminal Green をダークと組み合わせると往年のターミナル風になります。ログイン時に起動とキーボードナビゲーションのフォーカスリングも揃います。

一般の 2 つのトグルは、AI も設定できる(後述)ため注目に値します。コマンドをアプリ内コンソールで実行は既定でオンで、インストールやシェルコマンドが FrontierStack のウィンドウにライブ表示され、完了するとペインが自動更新されます。オフにすると、それらのコマンドは Terminal.app に送られます。対話セッション(SSH・REPL)は常に実ターミナルで開きます。連動する外部ターミナル選択(テキストエディタ内)は、「ターミナルで開く」がどのターミナルアプリを使うかを決めます。Terminal と iTerm はコマンドをインラインで実行し、その他のアプリは実行可能な .command を開きます。

スクリーンショット追加予定
図 17.1. 一般・ライセンス & サブスクリプション・アップデートまでスクロールした設定ペイン。撮影手順: capture: 一般を展開し、既定のブラウザ、メニューバーに表示、ログイン時に起動、アプリ内コンソールのトグル、その下にライセンスとアップデートのセクションを示した設定ペイン

17.2AI が変更できるアプリ設定キー

これらの設定の一部は、get_app_settingsset_app_setting ツールを通じて AI 管理者に公開されています。そのため「既定のブラウザを Firefox に切り替えて」「Presets メニューを非表示にして」と頼むだけで済みます。アシスタントが読み書きできるのは下表のキーのみで、設定のそれ以外はプロンプトから到達できません。

キー制御内容
defaultBrowserBundleIDbundle idすべての「ブラウザで開く」が使うブラウザ。空=システム既定。
showInMenuBarboolグローバルなメニューバー項目を表示するか。
preferInAppConsoleboolアプリ内コンソールで実行(オン)か Terminal.app に送る(オフ)か。
menu.showPresetsboolメニューバーに Presets メニューを表示。
menu.showLocationsboolメニューバーに Locations メニューを表示。

最後の 2 つはペインのメニューセクションにもあり、アプリ設定…(⌘,)ボタンと並びます。使わないメニューは隠し、使う瞬間に再表示できます。

17.3アカウントと詳細設定

設定のすぐ外にある 2 つのペインにも触れておきます。アカウントペイン(サイドバー ▸ Accounts)は課金ではなく、FrontierStack をディレクトリサービス(Active Directory・Microsoft Entra ID・Okta・OpenLDAP・FreeIPA・389 Directory Server・Jamf、ローカル/リモートの Open Directory)に接続し、バインドをテストし、ユーザアカウントをインポートします。OD を動かす Mac の OD ユーザとグループを管理するエディタも備えます。ディレクトリ関連は 第 10 章で他のアイデンティティとともに扱います。

FrontierStack でいう「詳細設定」とは、Web サイトごとの詳細設定シート — Apache の <Directory><VirtualHost> を編集する完全な画面(Options フラグ、AllowOverrideRequire ルール、ServerAdmin、カスタム ErrorDocument)を指します。Sites ペインのサイトから開き、フォームが扱わない項目はテキストとして編集…で編集できます。第 7 章の Web スタックで解説します。

17.4AI のカスタム指示

AI にとって最も強力な「設定」は、実は設定ペインにはありません。AI 管理者ペイン下部のカスタム指示バーです。そこに書いたテキスト(frontierstack.md として保存)はすべての AI 要求 — アシスタントチャット、ワンショットの Ask AI、スキル、MCP サーバ — に付加されます。そのため、好みの言語やトーン、アシスタントが常に(または決して)すべきこと、想定してよいあなたの構成の事実といった、永続的な設定を一度だけ書くのに最適な場所です。

カスタム指示をクリックしてエディタを展開し、すべての AI プロンプトに指示を追加を切り替えて入力します。うまく機能する例:「常に日本語で返答」「Docker より Homebrew を優先」「業務時間(09:00–18:00)に MySQL を再起動しない」「本番フリートのホストは web1.example.com」。保存ボタンで保存するか、外部エディタで開きます。このファイルはハーネス全体を流れるため、第 13 章の信頼モデルを補完しますが置き換えはしません。指示は AI の挙動を導き、既定の読み取り専用と操作ごとの承認が許されることを統制します。

メモカスタム指示バーのすぐ上にはスクリプトシークレット(.env)ボールトがあります。AI が見るのはシークレットの名前(例:DB_PASSWORD)だけで、値は実行時に環境変数として注入され、クラウドモデルには決して送られません。スクリプトでは $NAME で参照します。第 13 章参照。

17.5コマンドライン PATH と Homebrew

第 2 章の 2 つのリファレンスペインも、同じアプリレベルの制御に属します。コマンドライン PATH ペイン(サイドバー ▸ Command-Line PATH)は、ログインシェルがコマンドを探すディレクトリを表示し、~/.zprofile(または選んだプロファイル)の管理ブロックに独自のディレクトリを追加できます。追加した項目は PATH の先頭に置かれ、新しいターミナルで有効になります。アプリはシェルを通じてツールを深く解決済みのため、これは主に mlx_lm.server のようなコマンドを即座に解決させるためのものです。Homebrew ペインは Homebrew 自体と多くのサービスを支えるフォーミュラをインストール・更新します。両者は初回セットアップで詳しく扱います。本章では、コマンド環境を管理する場所として設定と並んで存在することを記すにとどめます。

17.6ライセンス

FrontierStack は無料ダウンロード+有料ティアで、販売と課金は Square を通じて行います — カード情報は Square が保管し、FrontierStack は決して見ません。購入後、FSK-XXXX-XXXX-XXXX 形式のライセンスコードを受け取ります。設定 ▸ ライセンス & サブスクリプションライセンスを有効化…でコードを貼り付けると、この Mac がプランに紐付きます。プロモコードは Web サイトのチェックアウト時に適用します。

ティア価格サーバ数備考
Free モードチェックアウトのプランではありません2有料ライセンスがない場合の内蔵フォールバック。機能は限定的。
Standard年額 ¥15,000 または ¥45,000 の買い切り10アドオンのサーバパックで上限拡張。買い切りは Lifetime 状態になります。
Standard — Bleeding edge年額 ¥7,50010有効な間は 2 年目以降も値上げしないキャンペーンサブスクリプション。
Full Fleet年額 ¥45,000無制限すべて+Wild Frontier 更新チャネル。買い切り/Lifetime はありません。

このセクションは、ティア、状態ピル(Active・Lifetime・Past due・Canceled)、更新日、ライセンスコード、この Mac のサーバ上限を表示します。管理/更新…購入/アップグレード…は Web サイトを開き、 メニューには今すぐ状態を確認この Mac を無効化サインアウトがあります。1 ライセンス=1 Mac ですが、年に限られた回数まで新しい Mac へ自分で移管でき、旧 Mac は次回チェックイン時に静かに Free に下がります。同じセルフサービスの状態とシート一覧は、frontierstack.app/licenseMy Licence Web ページでも確認できます。同じ操作は、サイドバー概要グループの専用 Licences ペインにもあり、設定内のセクションではなく全画面表示で扱いたいときに使えます。

セキュリティライセンスはアプリがオフラインで検証する Ed25519 署名トークンです — 動作の継続にサーバへの問い合わせは不要です。トークンはティア・サーバ上限・有効期限を持ち、machine_id = SHA-256(IOPlatformUUID + bundle id) によりこのマシンに紐付くため、アプリを別の Mac にコピーしてもライセンスはコピーされません。アプリは有効期限+猶予期間までトークンを信頼し、その後リフレッシュします。有料プランが失効すると Free モードに降格します。Lifetime は Standard の買い切りにのみ適用され、失効しません。Full Fleet に Lifetime はありません。これは重厚な DRM ではなく抑止策です — 読み取りは動き続け、制限とプレミアム機能のみがゲートされます。

17.7アップデート

FrontierStack は Sparkle で自己更新し、アプリ内の UpdateManager が制御します。設定のアップデートセクションがその操作面のすべてです。自動的にアップデートを確認バックグラウンドでアップデートをダウンロードは既定でオンで、新しいビルドが静かにダウンロードされ、インストールしてアプリを再起動するアップデートボタンが提示されます。今すぐ確認はいつでも押せ、隣に現在のバージョンが表示されます。

アップデートの確認頻度メニューで、バックグラウンド確認の間隔を設定します。自動(既定)は毎日確認します — Wild Frontier ではより頻繁 — 一方、1日に1回3日ごと週に1回2週間ごとは固定間隔に固定します。毎日の通知がうるさく感じるなら、たとえば週1回に下げられます。自動確認がオフのあいだは効果がなく、今すぐ確認は間隔に関わらず常に使えます。

チャネルは 2 つです。Stable は既定で、更新に値する内容がたまったときだけ配信されます。Wild Frontier はおよそ 1 日おきの頻繁なバグ修正ビルドを届けます — 変更を依頼して早く修正が欲しいときにオンにします。切り替えは更新チャネルの選択から行います。Wild Frontier の早期ビルドには Full Fleet プランが必要で、他のプランは常に Stable 更新を受け取ります。ティアが対象外の場合はペインがその旨を示します。

ヒントサポートに修正を依頼したばかりで Full Fleet を使っているなら、チャネルを Wild Frontier にして今すぐ確認を押してください — 次の Stable リリースを待たずに、多くは 1〜2 日で修正が届きます。

17.8テレメトリとプライバシー

FrontierStack は意図的にごく少量の匿名利用データを収集し、そのすべてをオフにできます。プライバシー & 診断セクションには 2 つのトグルがあり、どちらも既定でオンです。匿名の利用状況を共有frontierstack.app へ小さな日次 ping を送り、クラッシュレポートを送信は技術的なバックトレースを追加します。後者はクラッシュ後に表示される確認に承認した後にのみ送信されます。

利用状況 ping に含まれるのは、ランダムなインストール ID(アカウントもログインもなし)、アプリと macOS のバージョン、ハードウェアモデルとロケール地域、更新チャネル、いずれかの AI 機能を使ったかどうかです。国は IP から Cloudflare がサーバ側で推定します。文書・ファイル内容・設定・鍵・パスワード・個人データは一切送られません。クラッシュレポートは種別・メッセージ・スタックトレースのみを追加し、まずローカルに書き出されるため、何かが Mac を離れる前に拒否できます。

メモ完全にオプトアウトするには、設定 ▸ プライバシー & 診断の両トグルをオフにします。変更は即時に有効になり、ランダムなインストール ID があなたの身元に結び付けられることはありません。別途説明する管理者専用の診断ダッシュボードは発行元ローカルにあり、これらの匿名シグナルのみを集計します。

ペインを締めくくる 2 つのセクション:機能(Capabilities)CAPABILITIES.mdcapabilities.json — 全サービスと AI ツールの完全かつライブな記述 — を書き出し、外部 AI エンジンに渡せます。クラウドサービスバックアップ(ローカル Git)Amazon S3クラウド同期(rclone)の各セクションは、設定バックアップとサイトファイルの保存先を構成します。設定・ライセンス・アップデート・プライバシーを把握したら、キーボードショートカット、URL スキーム、トラブルシューティングについて第 18 章へお進みください。

18

第 18

キーボード・URL スキーム・トラブルシューティング

速い道と安全網。ショートカット、ディープリンク、アプリ自身のログ、そしてまれに起きる不具合への落ち着いた対処。

最終章は、FrontierStack が何をするかを既に分かっていて「もっと速くやりたい」とき、あるいは何かが赤くなって「最短で緑に戻したい」ときに開くリファレンスです。キーボードショートカット、frontierstack:// URL スキーム、アプリ自身のログの在りか、そして実際に起きる不具合の症状→対処表をまとめます。どれも必読ではありませんが、すべてが時間を節約します。

18.1キーボードショートカット

FrontierStack はネイティブ Mac アプリなので、既にご存じのシステムショートカット — ⌘W でウィンドウを閉じる、⌘, で設定、⌘Q で終了 — がすべて使えます。その上に、アプリは小さく意図的な独自セットを追加しています。方針は抑制です。ほとんどの操作は明確にラベル付けされたボタンにあり、ほぼすべてのダイアログは Return で確定・Esc でキャンセルという Mac の慣習に従うため、覚えることはまずありません。

ショートカット動作メニュー相当
⌘F検索パレットを開く — あらゆるサービス・ツール・ペイン・アクションを名前で見つけて直接ジャンプ。ツールバーの虫眼鏡ボタン
⌘?アプリ内ヘルプウィンドウを開く。ヘルプ ▸ FrontierStack Help
⌘⌥⇧Wすべてのフローティングパレットを閉じるPalettes ▸ Close All Palettes
Returnシートの既定ボタン(保存・OK・追加・インストール…)を確定。強調表示されたボタン
Esc現在のシートやパレットをキャンセル/閉じる。キャンセル/完了ボタン

残りの操作はメニューバーが担います。専用の ServicesLocationsMonitorsPresetsPalettes メニューから、キーボードを離れずにサービス切り替え・ロケーション変更・モニタの切り替え・保存済みプリセットの適用・フローティングパレットの取り出しができます。これらは本物のメニューコマンドなので、macOS のシステム設定 ▸ キーボード ▸ キーボードショートカット ▸ アプリのショートカットから、任意のものに独自のキーを割り当てられます — FrontierStack を追加し、メニュー項目名を正確に入力してキーを選びます。

ヒント覚える価値のある唯一のショートカットは ⌘F です。1,000 を超えるサービスと 100 以上のツールペインがあるため、サイドバーのスクロールは遅くなりがちですが、検索パレットは一瞬です。サービス名の数文字、ポート番号、あるいは firewall のようなキーワードを入力して Return を押してください。

18.2frontierstack:// URL スキーム

FrontierStack は frontierstack:// URL スキームを登録しており、任意のペイン・サーバ・サービスへ直接ディープリンクできます。そうした URL を開くとアプリが前面に出て遷移します — 該当するサイドバーグループを展開し、目的地までスクロールします。これにより、ノート内のリンク、ショートカットのアクション、スクリプトの一行が、あなた(やチームメイト)を的確な画面へ送り出せます。

Terminal からは open で起動し、ショートカットでは 「URL を開く」アクションを使い、ノートや Web ページでは普通のリンクになります。形式は次のとおりです。

URL移動先
frontierstack://server/<名前または id>そのフリートホストのペイン(不明な場合は Local Health にフォールバック)。
frontierstack://website/<ドメイン>Sites ペイン。
frontierstack://container/<名前>Docker ペイン。
frontierstack://pane/<名前>表示名による任意のペイン。例:pane/Securitypane/Apachepane/Alerts。空白は URL エンコード(%20)。
frontierstack://service/<カタログ id>id によるカタログサービス。
frontierstack://kube/<context>Kubernetes コンテキスト(引数なしなら Clusters ペイン)。
frontierstack://security · ://alerts · ://healthSecurity・Alerts・Local Health ペインへのショートカット。
frontierstack://device/<id> · ://wifi/<ssid> · ://zone/<id>発見されたデバイス、Wi-Fi ネットワーク、Cloudflare ゾーン。
frontierstack://open?sel=<raw>厳密なエスケープハッチ:内部の選択値を正確に往復します。

実例をいくつか挙げます。

open "frontierstack://pane/Security"
open "frontierstack://server/mac-mini-office"
open "frontierstack://website/example.com"

ディープリンクは FrontierStack における自動化の結合組織です。プリセットはそのダッシュボードへ飛ぶリンクを含められます。Notes 内のランブックは各手順を、実施するペインへリンクできます。アラートメッセージは故障中のサービスを指し示せます。同じスキームは AI 向けの 2 つの読み取り専用リソース — frontierstack://capabilitiesfrontierstack://health — も名付けており、これらは MCP サーバが公開します(第 14 章)。

セキュリティディープリンクはアプリロックに従います。ロック中、受け取った frontierstack:// URL はウィンドウを前面に出してロック解除を促しますが、遷移はしません — 外部の自動化がロック画面の裏でアプリを動かすことはできません。

18.3アプリ自身のログを読む

サービスではなく FrontierStack 自身が何をしたかを知りたいときは、深さの順に 3 か所を見ます。

  • 変更ログ(監査)。Logs ペインには、設定・構成のすべての変更を、実行した主体 — ユーザAI ハーネス、Web コントロールパネル、MCP自動化 — とともに記録する変更ログがあります。サービスが停止した際、何が触れて誰/何が責任を負うのかを正確に教えてくれます — どんな障害でも最初に問うべき最速の質問です。
  • アプリ内コンソール。インストールやシェルコマンドはアプリ内の本物のターミナルウィンドウ(PTY なのでパスワード入力や y/n の質問が機能します)で実行され、出力をライブで流します。アプリはコマンドの終了を把握するため、起動元のペインを更新します。コンソールのアクションバーから記録をエクスポートできます。配色は Overview の Terminal Style で変更します。
  • ログファイル。FrontierStack は自身のログを ~/Library/Logs/FrontierStack に書き込みます。生の記録が欲しいときは、このフォルダを Finder で開くか Console.app で読みます — アプリの挙動を最も詳細に記録しています。自動エクスポート機能(Overview ▸ Settings)は、これらのログ・変更ログ・設定バックアップをスケジュールでフォルダへコピーできます。
メモAI 管理者が同じログを代わりに読めます。read_log ツールは source"frontierstack"~/Library/Logs/FrontierStack を追尾)、"os"(システムログ)、あるいは "nginx""postfix" のようなサービス名を受け付けます。連携サーバでは SSH 経由で読み、出力はクラウドモデルに届く前に上限が設けられ秘密情報が伏せられます(第 13 章)。
スクリーンショット追加予定
図 18.1. Logs ペイン:左にサーバのエラーログ、右にアプリ自身の ★ 変更ログ(監査)。各エントリに主体(ユーザ・AI・Web・MCP・自動化)のタグが付く。撮影手順: 複数の主体が混在する状態で変更ログを表示した Logs ペインを開いて撮影

18.4よくある問題と対処

FrontierStack の不具合のほとんどは、小さく見慣れた一群のいずれかで、アプリは通常その対処を面倒な作業ではなくボタンとして提供します。下表は、目にする症状を、緑へ戻る最短経路に対応づけます。

症状考えられる原因対処
サービスが起動しない。ポートが使用中、バイナリ未インストール、または設定が不正。そのサービスのペインを開いて状態の詳細を読みます。Ports in Use で競合を見つけ、Homebrew でインストール/修復し、Web サーバは再読込前に設定を検証します。AI 管理者の repair_service は、あなたの承認のもとで一般的なケースを診断・修正します。
連携サーバの状態ドットが赤:「Permission denied (publickey)」サーバ再インストール、ホストキー変更、またはアプリの SSH キーが未導入。Repair SSH access(AI の repair_ssh_access ツール、第 8 章)を実行します。古いホストキーを消去し、ボールトの秘密として保存された一回限りのログインパスワードを使ってアプリの管理キーを再導入します — パスワードはローカルで読まれ、モデルには決して送られません。成功するとドットが緑になります。
アラートが届かない。チャネルの設定ミス:誤ったトークン、未確認の送信者、不正な webhook。Alerts を開きます。送信ごとの配信エラーセクションが、どのチャネルがなぜ失敗したかを正確に示します。資格情報を直して配信エラーをクリアし、頼る前にテスト送信で確認します(第 11 章)。
AI が操作を拒否する。既定で読み取り専用、または特定のサーバトグルがオフ。AI 管理者で変更を許可(スクリプト実行を求める場合はスクリプトを許可も)、または該当するサーバごとのトグルを有効にします。拒否メッセージが該当設定を名指しします — 下記参照。
Homebrew がない。多くのサービスが依存するパッケージマネージャが未インストール。Homebrew ペイン(Overview)を開きます。アプリが Homebrew をインストールでき、その後は各サービスのペインからフォーミュラをワンクリック導入できます。
証明書が信頼されない。システムがまだ信頼していない自己署名/ローカル証明書。ローカル開発では、信頼されたローカル CA を導入する mkcert で発行します。公開サイトには Let's Encrypt を使います。どちらも Certificates と Sites ▸ TLS タブで管理します(第 7 章第 10 章)。

18.5MCP オンボーディングと「行動につながる拒否」

機会を得た最初の一度だけ、アプリは — 一度だけ — 外部の AI ツール(Claude Code・Cursor・Claude Desktop)が FrontierStack を操作できるよう MCP サーバを起動するか尋ねます。プロンプトはモデルを率直に説明します:サーバは localhost のみ、トークン保護、そして既定で読み取り専用です。Start MCP server で有効化し、同じシート上の任意のトグルでその場で変更を許可できます。Not now は単に「尋ねられたこと」を記録します。サーバは、あなたが選ぶまでオフのままです(第 14 章)。

これは、アプリ全体を貫く小さな設計思想につながります。外部の面 — MCP サーバ、App Shortcut、AI — が変更を拒否するとき、ただ「いいえ」とは言いません。理由どこで有効化するかを伝えます。拒否はたとえば「変更がオフです — AI 管理者で有効にしてください」、あるいは MCP なら「Remote Control & Lock ▸ MCP で有効にしてください」と読めます。自分で切り替えるのではなくアプリへ誘導するのは、信頼モデルの核心です — リモートのエージェントは依頼できても、許可できるのはこの Mac の前にいるあなただけです。ゆえに拒否は決して行き止まりではなく、あなたを前へ進める唯一のトグルへの道標です。

行動につながる拒否
拒否は指示として読みましょう。「AI 管理者で変更を有効に」「Remote Control & Lock でロック解除を」「トークンに Zone:Create が必要」 — いずれも、あなたと操作の間に立つ正確な設定を名指しします。アプリは設計上これらをリモートから上書きしないため、メッセージこそが自分で直す最速の道です。

18.6ヘルプを得る

即時性の順に、3 つのリソースがあなたを支えます。

  • アプリ内ヘルプウィンドウ。⌘? を押すかヘルプ ▸ FrontierStack Help を選ぶと、AI 機能を先頭に、すべてのペインとサービスを網羅した内蔵ドキュメントが開きます。多くのペインには該当セクションでヘルプを開く ? ボタンもあります。ヘルプの「アプリで開く」リンクは、説明対象のペインへ直接ジャンプします — ヘルプは開いたまま、メインウィンドウが前面に出ます。
  • ウェブのヘルプと FAQ。frontierstack.app/help はアプリ内ドキュメントを閲覧しやすい形で映し、FAQ は新規ユーザが最もよく尋ねる質問に答えます。移行ガイドは frontierstack.app/migrate にあります。
  • サポートとフィードバック。frontierstack.app/support の 2 つの短いフォームがチームに直接届きます。不具合のときはサポート依頼(macOS のバージョンを添えてください)、改善案には機能リクエスト。どちらもアプリを作る人々へ直接届きます。

これでマニュアルは閉じます。あなたは FrontierStack を、コントロールパネルとして、監視システムとして、AI 管理者として知りました。Web スタックを立ち上げ、フリートを連携し、境界を堅牢化し、アラートを配線し、そして — 慎重に、あなたの条件で — サーバを把握し修正できるアシスタントに鍵を委ねました。あとは実践あるのみです。アプリ内ヘルプには ⌘? をいつも近くに、最新情報は frontierstack.app へ、そして次に欲しいものはサポートからお聞かせください。FrontierStack でサーバを運用してくださり、ありがとうございます。