概要
- Raspberry Pi Zero と Alpine Linux で完全メモリ運用のディスクレスWebサーバ構築例
- 外部VPS と HAProxy を活用しTLS終端や公開を実現
- 最小限のハードウェア と 軽量ソフトウェア で省リソース運用
- バックアップや設定の永続化 も簡単に対応可能
- 自宅サーバ運用 の手順と注意点を具体的に解説
Raspberry Pi Zero+Alpine LinuxによるディスクレスWebサーバ構築
- Raspberry Pi Zero v1.3 を利用した超小型Webサイト運用例
- Alpine Linux をRAM上で動作させ、SDカードは設定・永続化用途のみ
- microSDカード(512MB以上) は初期インストール・ブート時のみ必要
- Waveshare Ethernet HAT やOTGアダプタで有線接続も可能
- 消費電力・発熱が非常に低い ため冷蔵庫など密閉空間でも運用可能
必要なローカルハードウェア
- Raspberry Pi Zero v1.3本体
- 512MB以上のmicroSDカード
- Ethernet HATまたはOTGアダプタ
- Ethernetケーブル
- Micro USB電源ケーブル
- モニター・HDMIアダプタ・キーボード(初期設定時のみ)
外部公開用ハードウェア(VPS)
- TierHive VPS (Alpine Linux 128MB RAM/1GB NVMe/1vCPU/年額約$4)
- HAProxy Edgeサービス でTLS終端とドメイン認証を自動化
- VPSから自宅Pi Zeroへのトラフィック転送は socat で実現
Alpine Linuxディスクレス運用手順
- SDカードに tar.gz形式のAlpineイメージ を直接展開
- FAT32でフォーマット後、Alpineイメージを展開し不要ファイル削除
- Pi ZeroへSDカード挿入、モニター・キーボードを接続し起動
- lbu/lbu commit -d で設定・サイトファイルの永続化を管理
- setup-alpine で初期設定(キーボード/ホスト名/ネットワーク/タイムゾーン/ミラー/SSH/パスワード/ディスクレス選択)
- ルート(/)が tmpfs/ramfs としてマウントされていればRAM運用成功
軽量Webサーバ・同期・永続化設定
- darkhttpd :最小構成の静的Webサーバ(TLSはVPSで終端)
- /etc/init.d/darkhttpdに起動スクリプト作成
- サイトファイルは/var/www以下に配置
- lbu includeで永続化対象に追加
- nginx :より柔軟な設定が必要な場合に利用可能
- サイト個別設定ファイルを/etc/nginx/http.d/に作成
- rc-update/lbu includeで永続化
- rsync :ローカルPCからPi Zeroへのファイル同期用
- lbu commit -d :設定・サイトファイルの永続化コマンド
ポート開放・VPS連携・TLS終端
- 自宅ルーターで Pi ZeroのHTTPポート(80等)を開放 し静的IP割当
- DDNS(DuckDNS推奨) で動的IPにも対応
- VPS上で socat を使い、インターネットからのトラフィックを自宅Piへ転送
- TierHive HAProxy でドメイン認証・TLS終端・自動SSL更新
- HAProxy管理画面でドメイン追加・TXT認証・バックエンド設定
- 「Active SSL」ボタンで自動SSL化
バックアップ手順
- Pi Zero起動後、SDカードを取り外して他デバイスでバックアップ可能
- ネットワーク経由なら
- ssh root@YOUR-PI-ZERO-IP "dd if=/dev/mmcblk0 bs=4M" > zero-backup.img
- バイト単位のクローンイメージ作成・リストアも容易
- RAM運用のため SDカードの寿命延長・高速化 が実現
まとめと自宅サーバ運用の魅力
- 省リソース・低コスト・高効率 な自宅Webサーバ構築例
- 外部VPS+HAProxy でセキュリティ(TLS)・可用性も確保
- 巨大クラウド依存からの脱却 ・自己ホスティングの楽しさ
- 手順はシンプル で学習にも最適、自宅サーバ入門におすすめ