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 "hello world
    
    

" > /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

(`hello world

` のテキストが表示されます)。同じWiFiネットワークに接続された機器のWebブラウザでIPアドレスを入力して確認します。(再起動してもHTTPサーバーは自動再起動しません。)

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

#### 追加: メンテナンス
パッケージ更新:

$ sudo apk update $ sudo apk upgrade


#### 次のステップ
[高度なセクション](./advanced.html)(まだ作成中)では、ドメインとHTTPSの設定、HTTPサーバーを再起動後も継続実行する方法を学べます。

このガイドは、[Louis Merlin](https://louismerl.in) によって [CC BY-NC-SA 4.0ライセンス](https://creativecommons.org/licenses/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

膨張が起きるでしょうね