究極のホームサーバー:ZimaBoard 832で作るDIYビルド

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

このブログシリーズでは、ZimaBoardのクラウドファンディング開始時からの忠実なコミュニティメンバーであるD. Rowlandの素晴らしい旅路を共有する特権があります。彼は3枚のボードを購入し、それぞれに独自の用途シナリオがあります。このシリーズでは、彼のボード使用体験と、それらがどのように彼の技術的な武器となっているかを掘り下げていきます。

この3回シリーズの第1回ブログでは、D. RowlandがZimaBoard 832を使ったホームサーバーの設定方法を案内します。

D. Rowlandをご紹介します

まずはD. Rowlandについて少し紹介しましょう。彼は典型的なテック愛好家で、夫であり二児の父でもあります。ネットワークやITの豊富な経験を持つ熟練の技術者です。高校時代から技術の世界に入り、ITのキャリアを積み、サーバーやネットワーク、さまざまな技術に携わってきました。彼の洞察と経験は、ZimaBoardが彼の生活にどのようにフィットしているかを探る上で非常に貴重です。

ホームサーバーのシナリオ:ZimaBoard 832

D. Rowlandが832ユニットを購入した主な理由の一つは、普段使っているサービスをセルフホストするためです。ZimaBoardを使う前は、古いPCパーツを集めて自作した3Uの「サーバー」を使っていました。下のホームラックの写真では、電源が切られたままの古いサーバーがラックの一番下にまだ見えます。

ZimaBoard 832は古いサーバーのすべての役割を引き継ぎましたが、一部のファイルストレージはSynology NAS(写真にも写っています)に移されました。D. RowlandのZimaBoard 832は強力なホームサーバーとなり、その設定方法は以下の通りです:

ハードウェア環境:

  • ZimaBoard 832
  • /homeディレクトリ用480GB SSD

ソフトウェアシステム:

  • Debian 11.5
  • DockerとDocker-Compose

ZimaBoard 832をホームサーバーとして設定する方法

D. Rowlandのホームサーバーセットアップは以下のステップで行われました:

  • OSのインストール: ZimaBoardユニットはx86システムなので、D. Rowlandは通常のDebianインストール手順に従うことができました。CasaOSのパーティションを消去し、ZimaBoard 832のeMMCにクリーンなDebian Bullseyeをインストールしました。ルートパーティションにはeMMCを利用しました。
  • 追加ストレージ: データ保存には、/homeディレクトリ用に480GBのSSDを使用しました。OSとデータを分離することで効率的な運用が可能になります。
  • Dockerのインストール: OSが起動した後、D. RowlandはDockerとDocker-Composeをインストールしました。セットアップ当時、DockerとDocker-Composeは別々のコンポーネントでしたが、現在のDebian BookwormではComposeがDockerに統合されています。
  • データ移行:以前のサーバーからDockerのマウントポイントとdocker-compose.ymlをZimaBoard 832にコピーしました。このステップにより、データと設定が新しいハードウェアにシームレスに移行されました。docker-compose.ymlと「Backup-to-S3」bashスクリプトの一部ファイルパスも新システムのレイアウトに合わせて更新しました。
  • Docker構成:docker-compose.ymlのファイルパスを更新したことで、D. Rowlandは「docker-compose up -d」を実行し、すべてのサービスを正常に復旧させることができました。

アプリケーションとユースケース

現時点で、D.RowlandはZimaBoard 832上で以下のアプリケーションとサービスを稼働させています:

  • hkotel/mealie
  • linuxserver/calibre-web
  • gitea/gitea
  • matrixdotorg/synapse
  • vaultwarden/server
  • iarekylew00t/caddy-cloudflare
  • oznu/cloudflare-ddns
  • ugeek/webdav
  • itzg/minecraft-bedrock-server
  • mongo:4.4
  • pawelmalak/flame
  • drowland/phpfpm-alpine
  • drowland/fastapi
  • drowland/ipcalc
  • drowland/autolog

Q:これらのアプリケーションはさまざまなシナリオで多様な目的に役立ちます。以下はD. Rowlandの共有内容です。

D.Rowlandは、上記すべてのDockerコンテナを使用しながら、彼のneofetchスクリーンショットによると、832は通常の毎日の使用でわずか1.3GBのメモリしか使用していないことを記録しておきたいとのことです。

PythonプロジェクトD.Rowland:ZimaBoard 832ホームサーバーの中心は、私が開発し現在も取り組んでいるさまざまなPythonプロジェクトにあります。これらのプロジェクトは実用的なユーティリティから実験的な試みまで多岐にわたります。現在、以下を稼働中です:

  • Autoblog:Autologは家族の車両のメンテナンス記録を追跡・管理するためのウェブベースの自動車サービスログです。車両のメンテナンスを簡素化し、定期サービスを確実に管理できます。
  • ipcalckjokjoのperl IPCALCに触発され、IPサブネット計算機のPython実装を自作したいと思いました。ネットワーク関連の作業や計算に便利なツールです。
  • fastapi:FastAPIは私が探求しているモダンなPythonウェブフレームワークです。これによりサンプルのREST APIを構築でき、仕事のベンダー統合プロジェクトの開発に役立ちました。

カスタムコンテナビルド

D. Rowland:多くのDockerコンテナはほとんどのユースケースでうまく機能しますが、時には少し調整が必要です。

  • PHP-FPM:標準のPHP-FPMコンテナに、通常の展開にはない追加パッケージをカスタマイズして組み込みました。複数のプロジェクトで使用しているため、パッケージは増え続けており、imagick、mongodb、mysqli、sodiumなどがあります。

データベースとストレージ

D.Rowland:

  • MongoDB (v4.4):ZimaBoard 832のCPU制限によりAVX非対応のため、プロジェクトにはMongoDBバージョン4.4を使用しています。幸いにも、このバージョンは私の特定のユースケースやプロジェクトに適しています。
  • WebDAV: このWebDAVコンテナは私のワークフローで重要な役割を果たしています。Obsidianのノートを複数のデバイス間で同期するために使っており、スマホ、個人PC、仕事用PC、タブレット、ノートパソコンのどれからでもシームレスにアクセスできます。

リバースプロキシとリモートアクセス

D.Rowland:

  • Caddy Server: 外出時にサービスへのリモートアクセスを簡単にするために、リバースプロキシとしてCaddy Serverを利用しています。設定の簡単さと信頼性が理想的です。Caddy Serverの開発者コンテナは使わず、統合されたCloudflare DNSプラグインを選びました。
  • Cloudflare DynDNS: Cloudflare DynDNSコンテナを使って自宅のDNS Aレコードを簡単に管理し、外出中でもサービスへのアクセスを確保しています。

その他のコンテナ

D.Rowland:

  • Mealie: Mealieは私の電子レシピブックとして使っています。気になるレシピを見つけたらすぐに簡単に追加できます。画像や追加のメモ欄があるので、手書きのレシピブックよりも優れています。
  • Gitea: 私の個人用Gitリポジトリです。個人のPythonやPowershellプロジェクトの作業中や、仕事のプロジェクトのミラーとして使っています。
  • Flame: これは私がブラウザのホームページとして使っている素晴らしいダッシュボードです。Dockerソケットに連携しているので、新しいコンテナを追加するときに最小限の設定でダッシュボードにリンクできます。
  • Minecraft Bedrock: メモリ制約のためにJava版ではなくBedrockサーバーを運用しています。モッドは使わないので、Bedrock版は非常に軽量で簡単に運用できるサーバーです。

データセキュリティとバックアップ

D.Rowland:

  • バックアップスクリプト: データセキュリティは私の最優先事項です。コンテナのマウントポイントと重要なデータを保護するために、dockerファイルをアーカイブするためにtarを使い、そのアーカイブを毎晩Wasabiにアップロードするbashスクリプトを作成しました。
  • Vaultwarden: VaultwardenコンテナをBitwardenクライアント/アプリと共に使用することで、すべてのパスワードと2FAトークンを管理しつつ、自分の管理下に置き、大手企業のターゲットネットワーク上で動作しないようにしています。

この多様なアプリケーションの範囲は、ホームサーバーとしてのZimaBoard 832の柔軟性とパワーを強調しています。

結論:

ZimaBoardシリーズの最初のパートでは、D. Rowland氏のZimaBoard 832を使った印象的なホームサーバーセットアップを紹介しました。彼の経験は、このコンパクトなSBCが効率を保ちながら多くのサービスをホストできることを示しています。次回のパートもお楽しみに、ZimaBoardのさらなる創造的な使い方を探ります!

メンバーと話し合うために私たちのコミュニティに参加しましょう:

Discord:zimaboard.com/discord

フォーラム: https://icewhale.community

Zimaキャンペーンハブ

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.