
CMF Phone 1をサーバー化、VPS代わりに個人インフラを運用
TL;DR: 開発者が CMF Phone 1 のスマートフォンを Termux でルート化し、Hetzner VPS の代替として Surf(リモートブラウザ)や家計管理アプリなど複数のサービスを運用している。8コア CPU、8GB RAM、128GB ストレージを活用した構成。
スマートフォンを自分のサーバーに。あるエンジニアが CMF Phone 1 を使い、従来は有料の Hetzner VPS で運用していた個人インフラを丸ごと移行した。8コアの ARM CPU、8GB RAM、128GB フラッシュ、Wi-Fi 6、5G モデムを備えたこのデバイスが、いまや Surf(リモートブラウザ)、個人家計管理ツール、画面共有サービス、およびいくつかの小規模 Web アプリケーションを実行している。
インフラ構成とアプリケーション運用
Termux を通じて OpenSSH、runit、Caddy、Cloudflared といったツールが提供される。Termux:Boot はリブート後にスーパーバイザーと SSH を起動し、Tailscale が安定したプライベート IP アドレスを与える。Ansible は起動ロック設定、アイドル制限の無効化、バックグラウンド制限の除外、Wi-Fi サスペンション防止といった Android ホストプロファイルを適用する。
アプリケーションは runit で監視され、Git からデプロイされる。ワークステーションが各 ARM64 イメージをダイジェストで解決し、ファイルシステムをエクスポートする。Ansible がバージョン、サービス定義、ルート、電力設定、シークレット、ヘルスチェックを管理し、Git のチェックサム・ダイジェストピニング、SSH 経由の Ansible、バージョン管理ファイル、アトミックな current シンボリックリンク、runit サービス、ローカルおよびパブリックエッジチェックを通じてデプロイフローを構成する。
シークレットは Ansible Vault で暗号化され、コンテナパスワードは 1Password SSH エージェントに固定チャレンジへの署名を要求することで導出される。
ネットワークと接続性
HTTP アプリケーションは Cloudflare Tunnel を使用し、Cloudflared は電話からひとつのアウトバウンド接続を確立する。Caddy がループバックサービスへのリクエストをルーティングする。Cloudflare DDNS は DNS のみレコードを現在の公開アドレスに向け続ける。ルーターはひとつのポート(Surf 用)を家庭内で転送する。
ローミング接続性向上のため、Surf の TLS ストリームは通常の WebSocket でラップされ、Cloudflare Tunnel を通す。iPad から Surf インスタンスへの接続遅延は初回テスト時に 60 ms だった。
パフォーマンスと可観測性
PRoot はユーザースペースでファイルシステムとプロセス操作をインターセプトするが、Chrome は効率的に CPU に到達できず、電話をルート化して Debian ファイルシステムと本物の chroot を Surf ワークロード向けに実行することで改善した。この向上は「微妙ではなかった」とのこと。
可観測性サービスは 8 つのコア全体の CPU 使用率、メモリ、ストレージ、稼働時間、バッテリー、温度、ローカルおよびパブリック到達可能性、発見された runit residents を収集する。有限の履歴を保持し、LAN または tailnet では https://dash.cmf で組み込み Vue インターフェースをサーブする。
課題と実装詳細
Nothing OS のストック復帰には Windows が必要なフラッシング ユーティリティを用い、USB パススルーと MediaTek ドライバが関与した。postmarketOS はデバイスポートを持つが、Android は Wi-Fi、電力管理、バッテリー、GPU、モデムで動作するドライバを備えている。
筆者の見立て
- VPS の月額料金は疑問の余地があると論じている
- SoC が引き出しに放置されるには性能過剰だと述べている
- postmarketOS ポートを green で標記されたことが大胆な楽観につながったと述べている
- 未使用の ARM64 スマートフォンがあれば、実際には「それほど馬鹿げている」わけではないと解釈している
- この構成は「最高の意味で少しばかり馬鹿げている」と評価している
- VPS 移行は「解放感を感じた」と述べている
- これが単なるスタント以上に「本当に有用な選択肢」だと考えている
- 今後の Android アップデートが「新たなサプライズ」を引き起こす可能性を示唆している
この記事は元記事の事実のみに基づいて自動生成されました。
出典
seg6、「my server is a phone now」、https://seg6.space/posts/phone-server/