27 ポイント 投稿者 davespark 2025-11-27 | 4件のコメント | WhatsAppで共有

このガイドでは、2015年のFairphone 2でWebページをホスティングした事例をもとに、使っていないAndroidスマートフォンをpostmarketOSに変えて小規模なホームサーバーにする手順を案内します。目的は電子廃棄物を減らし、再利用を促進することです。結果として、基本的なサービスを実行できる小さなホームサーバーを手に入れられます。

必要なもの
  • 使っていないAndroidスマートフォン
  • 充電器と電源
  • WiFi接続
  • Linuxを実行するコンピュータ(ネイティブまたは仮想マシン)
ステップ1: postmarketOSのインストール

まず、postmarketOSをスマートフォンにインストールします。デバイスページで自分のデバイスがきちんとサポートされているか確認し、そのページはインストール中ずっと開いておきましょう。

pmbootstrapをインストールした後、イメージを作成してフラッシュします。

イメージの作成:

  • ポートの更新とデバイス情報の初期化:
    $ pmbootstrap pull  
    $ pmbootstrap init  
    
    • デバイスのコードネームはデバイスページに記載されているものを入力。
    • ユーザーインターフェースは console(最小構成)または fbkeyboard(オンスクリーンキーボード付き)を選択。
  • イメージの作成:
    $ pmbootstrap install  
    

イメージのフラッシュ:

  • デバイスページでフラッシュモードで起動する方法を確認(通常は「volume down」ボタンを押したまま電源を入れる)。
  • スマートフォンをコンピュータに接続し、フラッシュモードで起動。
  • デバイスページの「Installation」セクションの指示に従う。
  • ルートファイルシステムをフラッシュ:
    $ pmbootstrap flasher flash_rootfs  
    
  • デバイスを再起動し、postmarketOSが正しく起動することを確認。
ステップ2: サーバー設定

postmarketOSをインストールしたスマートフォンにログインします。デフォルトのユーザー名/パスワードは user / 147147 です。

  • スマートフォンをコンピュータに接続した状態でSSHログイン:
    $ ssh user@172.16.42.1  
    
  • WiFiネットワークに接続:
    $ nmcli device wifi connect your_wifi_network --ask  
    

これでローカルのスマートフォンサーバーが完成です。スマートフォンのローカルIPアドレスを確認するコマンド:

$ ip -4 addr show wlan0 | grep inet | awk '{print $2}' | cut -d'/' -f1  

(通常は 192.168.1.x 形式)。スマートフォンを安全な場所で電源につなぎ、WiFi経由でアクセスします:

ssh user@192.168.1.x  
ステップ3: Webページの配信

Webサーバーを設定して、簡単なWebページをホストします。

  • /var/www/html/ ディレクトリを作成:
    sudo mkdir -p /var/www/html/  
    
  • シンプルなHello WorldのHTMLファイルを作成:
    $ sudo sh -c 'echo "<h1>hello world</h1>" > /var/www/html/index.html'  
    
  • ポート80への受信パケットを許可するnftablesルールを追加(/etc/nftables.d/99_http.nft ファイルに):
    inet filter input tcp dport 80 ct state new accept  
    
  • nftablesを再起動:
    $ sudo systemctl restart nftables  
    
  • Webサーバーを実行:
    $ httpd -h /var/www/html/  
    
  • テスト: コンピュータからcurlで確認:
    $ curl 192.168.1.x  
    
    <h1>hello world</h1> のテキストが表示されます)。同じWiFiネットワークに接続された機器のWebブラウザでIPアドレスを入力して確認します。(再起動してもHTTPサーバーは自動再起動しません。)
追加: リモートアクセス

セキュリティ上、SSHの22番ポートをインターネットに公開せず、ルーターのVPNアクセスを設定してください(多くはWebインターフェースで対応しています)。VPN接続後、ローカルネットワークからSSHでアクセスします。22番ポートをインターネットに公開する場合は、パスワードログインを無効化し、SSHキーを設定してください。

追加: メンテナンス

パッケージ更新:

$ sudo apk update  
$ sudo apk upgrade  
次のステップ

高度なセクション(まだ作成中)では、ドメインとHTTPSの設定、HTTPサーバーを再起動後も継続実行する方法を学べます。

このガイドは、Louis Merlin によって CC BY-NC-SA 4.0ライセンス のもとで作成されました。

4件のコメント

 
lemonapple 2025-11-29

こういうの、私は好きです。
気軽に始めるなら、Termux 程度でも十分いけます。使っていないタブレットで Grafana を立ち上げるくらいなら実用可能です。

ただし、Android OS はサーバーとして動作することに対してかなり敵対的です。
2024年に工場出荷時リセットした Note10 基準では、
子プロセスが6個を超えると kill されます。
アイドル状態が長く続いても kill されます。
バッテリー関連の最適化をすべて切ってもそうです。

タッチ画面に触れずに最長72時間までは動かしてみましたが、その先は諦めました。

 
geeep 2025-12-01

phantom process killerを無効にしてみましたか?

 
qpolsa95 2025-11-28

バッテリーは大丈夫でしょうか

 
cdwdong2 2025-11-28

膨張が起きるでしょうね