Particles and WavesPAW
file: it-diy.md2026 / local-first at home
A build log

みまもりに、会社は要らなかった。
必要なのは、家のサーバー1台。

子どものテレビ視聴時間を管理する「みまもり」。これまではアカウント登録も、LINE連携も、社外サーバーへの預け入れも必要だった。でも、よく考えると。同じWi-Fiにテレビとスマホがいるなら、その全部が要らない。iPhoneから自宅のBRAVIAを、完全ローカルで消せた記録です。

STACK · iPhone + 家のLAN + 対応TV / 外出先は Mac mini + TailscaleCLIENT · アカウントなし・クラウドなし・外部送信なし
00 / 全体図

どこにも「会社のサーバー」が出てこない。

手元のスマホは「窓」にすぎず、命令は家のLANの中だけを通る。テレビもスマホも同じWi-Fiにいる。だったらアプリは、テレビのローカルIPに直接コマンドを送ればいい。それだけ。

📱
CLIENT / 手元
iPhone
アプリ / 認証キーはKeychain
HTTP直同じWi-Fi / PSK認証
📺
TARGET / 家のテレビ
対応TV
ローカルIP / ローカルAPI
外出先だけ自分のTailnet経由
🖥️
SERVER / 常駐
Mac mini
家に置きっぱなし / 外からの入口
① 家の中 ── 直接届くスマホからテレビのローカルIPへ、認証キー付きで直接HTTPを投げる。命令はルーターの内側で完結し、インターネットには出ない。仲介する会社がいない。
② 外出先 ── 自分の道を通る家のMac miniを常駐サーバーにして、自分のVPN(Tailscale)で家のLANへ繋ぐ。他人のクラウドではなく、自分だけのトンネルを通って同じテレビに届く。
01 / 何が変わったのか

「大企業のモデル」と「我が家のモデル」。

これまでの「みまもり」に付いてきたアカウントやクラウドは、ユーザーのために存在していたわけじゃない。あれは『規模』と『収益化』の税金だった。

BEFORE
会社のクラウド
規模のための仕組み

会社は一家庭のために機能を作れない。数百万人に配って開発費を回収する必要があるから、必然的にアカウント・クラウド・データ収集という装置が付いてくる。

ユーザーはその装置に付き合わされていた。使うためにLINEを繋ぎ、メールを登録し、家の視聴データを社外のサーバーへ預ける。

  • アカウント登録・LINE/メール連携が前提
  • 視聴データが社外サーバーに集まる
  • 会社が漏らせば、全家庭が一度に漏れる
AFTER
家のLAN
我が家のための仕組み

ソフトを作るのに、もう会社である必要がない。開発コストがほぼゼロになった今、ソフトの単位を『我が家(N=1)』まで小さくできる。

我が家だけのために作るなら、規模の装置は丸ごと要らない。テレビに直接話しかけて、それで終わり。

  • アカウントなし・登録なし
  • 視聴データは家から一歩も出ない
  • 中央に集める場所が無い=そこから漏れない

つまり ── 大企業がクラウドを挟むのは規模 に配って元を取るため。その仕組みを、AIで開発コストが崩れた今は 我が家 のためだけに作り替えられる。これはITのDIY ── Do It Yourself だ。

視聴データは、から一歩も出ない。
ルールは、我が家で決める。

中央に集める場所が無いなら、そこから漏れることも無い

Scene 01 ── つまずき

まず、テレビが見つからなかった。

自動検出は、最初あっさり失敗した。原因は iPhone の VPN。オンにしていると、家の中で機器を探す「呼びかけ」が塞がれて、テレビが1台も見つからない。

そこで、呼びかけに頼らない 直接スキャンに切り替えた。家のネットワークの全アドレスに順番に「テレビのAPIある?」と聞いて回る。VPNがオンのままでも、家のLANに届きさえすれば見つかる。── こういう泥臭さも、自分で作っているから直せる。

  • 20:40自動検出 ── VPNで呼びかけが死ぬ
  • 20:41直接スキャンにフォールバック
  • 20:43192.168.11.20 = 自宅テレビ を発見
Scene 02 ── 核心

家のLANの中だけで、テレビが消えた。

テレビ側で認証キー(PSK)を1つ決めて、アプリに入れる。あとはボタンひとつ。手元のFace IDで本人確認してから、テレビのローカルIPへ「電源を切れ」という命令が飛ぶ。

大事なのは、この命令が 家のLANの内側だけを通っていること。会社のサーバーも、クラウドも、ログイン画面も、一度も出てこない。テレビが、ふっと消えた。それだけ。

Scene 03 ── 外出先

外からでも、自分の道を通ればいい。

「外出中でも消せる?」── アプリ単体では、できない。家の外からは家のテレビに届かない。それは「他人のサーバーが我が家のテレビを操れる」状態を作らないための、意図した設計だ。

でも、家に常駐サーバー(Mac mini)が1台いれば話は別。それを自分のVPNの入口にすれば、外のスマホから 自分だけのトンネルを通って同じテレビに届く。他社のクラウドは相変わらず経由しない。常駐サーバーが、ローカルファーストを外まで延ばす。

正直に言えば「絶対に漏れない」わけではない。自分の端末のセキュリティは、自分の責任になる。ただ、数百万家庭分が集まった1つのDBが狙われる ── その中央の的が、そもそも存在しなくなる。個人にとっては、こっちのほうがずっと大きい。
この構成の、正直な但し書き
epilogue / 最小レシピ

みまもりは、外注しなくていい。

手元は軽く、計算とデータは家。会社のクラウドに預けていた「みまもり」を、我が家のLANの中に取り戻す。違うのは ── これが、家庭の中で完結していること。

# 家のMac mini(外出先で使うなら)
tailscale up --advertise-routes=192.168.11.0/24
# 管理画面でルートを承認するだけ 

# iPhone 側
テレビを自動検出して選ぶ 
認証キーを入れる → 完了
道としてのTailscale、窓としてのMoshi
この「家のサーバー」思想の、完全版を1冊に

道としてのTailscale、窓としてのMoshi

iPhoneから母艦Mac miniへ。Tailscaleを道、Moshiを窓、tmuxを消えない部屋として重ね、ポケットの中に自分だけの指令室を作る手順と思想をまとめた1冊。この記事の「外出先は自分のTailnetを通る」の背骨がここにあります。

Kindle日本語英語版もあり

手元は軽く、計算とデータは、家。 // local-first mimamori ── an IT DIY note