古いAndroidスマートフォンをWebサーバーとして再活用する方法
(far.computer)このガイドでは、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件のコメント
こういうの、私は好きです。
気軽に始めるなら、Termux 程度でも十分いけます。使っていないタブレットで Grafana を立ち上げるくらいなら実用可能です。
ただし、Android OS はサーバーとして動作することに対してかなり敵対的です。
2024年に工場出荷時リセットした Note10 基準では、
子プロセスが6個を超えると kill されます。
アイドル状態が長く続いても kill されます。
バッテリー関連の最適化をすべて切ってもそうです。
タッチ画面に触れずに最長72時間までは動かしてみましたが、その先は諦めました。
phantom process killerを無効にしてみましたか?
バッテリーは大丈夫でしょうか
膨張が起きるでしょうね