世界を動かす技術を、日本語で。

RAM上で動作するRaspberry Pi Zeroによるウェブサイトの提供

2026年5月9日原文(btxx.org)

概要

  • Raspberry Pi ZeroAlpine Linux で完全メモリ運用のディスクレスWebサーバ構築例
  • 外部VPSHAProxy を活用し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)・可用性も確保
  • 巨大クラウド依存からの脱却 ・自己ホスティングの楽しさ
  • 手順はシンプル で学習にも最適、自宅サーバ入門におすすめ

Hackerたちの意見

Raspberry Pi Zeroは、1990年代のエンタープライズサーバーよりもパワフルだよ。ミニマリストな静的ウェブサイトなんて、全然すごくない。もっといろいろ詰め込めるよね。

お、ちゃんと読み込んだ!HNの最初のページの約10%のページとは違って、死ぬほど重いけどね。

このベイプで動いてるウェブサイトの方がずっと面白かったよ。これらのデバイスのマイクを使って音声を聞こうとした人がいるのか気になるな。バックドア付きのベイプだね。

自分のメールドメインを約10年間、Zeroでホスティングしてたんだ。キャパは、キャリアの初めに使ってた80人の組織用の高価でデカいWin NT4マシンとほぼ同じくらいだった。結局、ZeroをRaspberry Pi 4に替えたんだけど、主にZeroのIOポートが面倒だったから(例えば、USBはホットプラグできない!)。RPi 4は個人用メールにはオーバースペックだけど、1W未満でアイドル状態だし、故障したら全機械をほぼタダで交換できるからね。これらのマシンの故障ポイントはSDカードで、だいたい4年くらいで壊れる。RAMディスクを設定すればもう少し長持ちするかもしれないけど、正直、SDカードの値段を考えるとそこまで時間をかける価値はないかな。

確かに、バルコニーのソーラーパネルを使って永久に動かすこともできるよね。https://solar.lowtechmagazine.com/about/the-solar-website/

まさにその通り。人々はこれらのデバイスでPi-Holeを普通に運用してるけど、それは「ウェブサイトを提供してる」だけじゃなくて、DNSサーバーとしても機能してるからね。

ESP32でシャッターをコントロールするための小さなウェブインターフェースを作ってるんだ。リクエストを解析せずに、常に同じレスポンスを返す実験もしてみたから、単一ページのウェブサーバーは簡単に作れるよ(その場合、画像や他のリソースをHTMLに埋め込む必要があるけどね)。でも、もちろんリクエストは解析してるよ。ページとアクション用に別々のルートが必要だから。これが自宅のLAN内にあるから、SSLも必要ないし。トラフィックが少ない限り、ESP32でもSSLができるかもしれないけど、私には関係ないかな。だって、インターネットには繋がってないし、外から接続したいときはWireGuardを使ってるから。

OPのリンクはPi Zeroのウェブサイトじゃないよ。こっちがRaspberry Piでホスティングされてる実際のウェブサイトだよ:https://zero.btxx.org/

ちょっと変な感じがするね。Piでウェブサイト自体(HTTP)を動かしてるけど、TLSはクラウドプロバイダーに任せてるから。だから、コンテンツはPiのRAMにあるけど、重い処理(TLSの終端)は他でやってるから、PiのCPU負荷がめっちゃ軽くなるんだ。

時々、これらのデモはリバースプロキシでキャッシュを有効にすることがあるんだ。だから、リクエストした小さなデモHTMLページに対して、実際にデモするはずの楽しい小さなコンピュータにたどり着けないこともあるかも。

そうそう、これ、いろんなところで見たことあるよ。「Wiiで動かす」っていうブログもあった気がするけど、同じようなことやってたよね。TLSは結構重いから、VPSやCloudflareを使うのは理解できる。でも、VPSを立ち上げるなら、なんでPiを使うの? 記事に出てくるVPSはRAMは少ないけど、ストレージは多いし。もうVPSでTLSの終端処理をやってるなら(RAMを一番使う部分)、全部そこでやっちゃった方がいいんじゃないかな。これは遊びのためだって分かってるけど、Pi Zeroって本当にTLSを処理するには遅すぎるの? 最適化されたTLSライブラリを使えば特に。今回の設定では、Piはすでにインターネットに直接接続されてるし、VPNも使ってないしね。ARM11は「速い」わけじゃないけど、1 GHzのARM11なら最適化されたTLSライブラリでTLS1.2の一部を扱えるんじゃないかな。

確かにちょっと変だね。Pi Zeroは、数秒間に数回の接続でHTTP/1.2とTLS 1.3を処理するのに十分な能力があるよ。このマシンは90年代に使ってたウェブサーバーの10倍の性能だし。しかも、すべてのウェブページはRAMから提供されるから、現代のOSは初回アクセス時に自動的にキャッシュするのが普通だよね。

Hacker Newsで議論の続きを見る