メインコンテンツへスキップ
見出し画像

自宅サーバー構築記録①──環境と全体構成

    老朽化した自作PCをUbuntu 24.04の自宅サーバーとして再活用した記録です。ハードウェア・ネットワーク・稼働サービスの全体構成を紹介します。

    はじめに

    これまで、こんな構成でファイル共有とVPNを運用していました。

    • Dropbox(有料サブスクリプション) ── ObsidianのVault同期、ファイルの共有

    • さくらVPS ── VPNサーバーとして契約・運用

    悪い構成ではなかったのですが、使い続けるうちに気になり始めたことがありました。月額のサブスクコストが積み重なること、そしてデータとインフラを外部サービスに依存していること。

    「自前で運用できないか」——そう考え始めたのが、今回の自宅サーバー構築のきっかけです。

    自宅サーバーに移行することで、DropboxとさくらVPS、両方の月額を解約できる。費用の削減と、データを自分の手元に置くこと。この2つが決め手でした。

    24時間稼働への不安は杞憂だった

    踏み切れずにいた最大の理由は「自宅PCを24時間つけっぱなしにすることへの抵抗感」でした。電気代が膨らむのではないか、騒音が気になるのではないか——漠然とした不安がありました。

    実際に運用してみると、これらは思っていたほど問題ではありませんでした。古いデスクトップPCでも静音性は許容範囲で、電気代も実測 49.1W(Sanwa Supply ワットモニター計測)、月換算で 約950円ほどの増加にとどまっています。

    「やってみたら案外大丈夫だった」という経験を、この記事に残しておきたかった理由のひとつです。


    この記事は、老朽化した自作PCをUbuntu 24.04の自宅サーバーとして再活用した記録です。同じように「外部サービスを自前に置き換えたい」と考えている方の参考になれば幸いです。

    シリーズ構成はこのようになっています。

    • ①この記事 ── 環境・ハードウェア・全体構成

    • ② ── WireGuard VPN構築(v6プラス・二重NAT環境)

    • ③ ── OpenCloud導入(Docker + Nginx + Cloudflare Tunnel)

    • ④ ── Home Assistant導入(SwitchBot連携・外部公開)


    構築の進め方

    作業を始めるにあたって、ツールの組み合わせをひと工夫しました。

    Obsidian ── メモと作業記録の拠点

    構築中に発生した設定値・コマンド・エラーと対処法を、すべてObsidianのノートに書き溜めました。このシリーズの記事も、そのメモをベースに整理したものです。

    Obsidian Agent Client(Claude Code)── わからないことをその場で相談

    ObsidianにClaude Codeのクライアントを入れ、メモを取りながら、わからないことをClaudeに相談しながら進められるようにしました。エラーログをそのまま貼り付けて原因を確認し、設定が合っているか確認し、メモをまとめてもらう。コンテキストを切り替えずに済むので、作業の流れが途切れません。

    Obsidianのターミナル ── SSH接続をObsidian内で完結

    ObsidianのTerminalプラグインを使うと、ノートの横にターミナルを表示できます。サーバーへのSSH接続を開いたまま、ノートを参照しながらコマンドを打つ——ウィンドウを切り替える手間がなくなりました。

    Vivaldi ── Claudeへのスクリーンショット共有

    ブラウザにはVivaldiを使っています。Vivaldiのページキャプチャ機能が使いやすく、設定画面やエラー表示をキャプチャしてClaudeに渡す場面で重宝しました。


    構築した環境の全体像

    構築が完了した状態で、以下のサービスが稼働しています。

    • OpenCloud(クラウドストレージ) ── https://cloud.your-domain.com(Cloudflare Tunnel)

    • Home Assistant(スマートホーム) ── https://ha.your-domain.com(Cloudflare Tunnel)

    • WireGuard VPN ── your-domain.com:13472(ポート転送 / UDP)

    • DDNS ── your-domain.com → 自動更新(ddclient + Cloudflare)

    外部公開には Cloudflare Tunnel と WireGuard VPN を用途に応じて使い分けています。

    Cloudflare Tunnel はポート開放不要で、OpenCloudやHome AssistantのWeb UIへのアクセスに使います。HTTPS証明書もCloudflareが自動管理します。ただし100MBのアップロード制限があります。

    WireGuard VPN は100MBを超える大容量ファイルの転送や、SSH・Sambaなど自宅LAN全体へのアクセスに使います。


    ハードウェア構成

    使用しているのは手元に余っていた古いデスクトップPCです。新しく購入したものではありません。

    • CPU: Intel Celeron G1620 @ 2.70GHz(2コア / 2スレッド)

    • メモリ: 16GB RAM(DDR3)+ Swap 3.5GB

    • OS: Ubuntu 24.04 LTS

    性能は控えめですが、OpenCloud・Home Assistant・WireGuard・DDNSを同時稼働させても CPU 使用率は通常5〜15%程度で、用途には十分です。

    ストレージ構成

    3本のHDDを役割ごとに分けています。

    • 500GB ── OSドライブ

    • 3TB ── データ用(/media/DATA)

    • 3TB ── バックアップ用(/media/Backup)

    データとバックアップを分け、毎日深夜3時にrsyncで自動同期しています。


    ネットワーク構成

    インターネット(WAN)
        │
    NTT CTU(192.168.1.1)           ← NTT提供の回線終端装置
        │
    IPoEルーター(192.168.10.1)      ← 二重NAT
        │
        └─ Ubuntu 24.04 : 192.168.10.138  ← サーバー(固定IP)
    

    回線: ドコモ光(戸建て) / IPoE(v6プラス / MAP-E方式)

    v6プラス環境の制約と対策

    IPoE(v6プラス)はポート80・443・51820が使用不可です。一般的な設定がそのままでは使えません。

    • HTTP/HTTPS公開(ポート80/443不可): Cloudflare Tunnelでポート開放なしに公開

    • WireGuard(ポート51820不可): ポート13472/UDPに変更してポート転送

    • グローバルIPが変動する: DDNS(ddclient + Cloudflare)で自動更新

    この制約への対処が、②・③記事のメインテーマになります。


    ソフトウェアの変遷

    当初はNextcloudのsnapパッケージで始めましたが、パーミッション問題やチューニングの難しさから手動構成へ移行し、最終的にOpenCloud(Nextcloudの後継プロジェクト)のDockerイメージに落ち着きました。

    Dockerにしたことで、サービスごとに環境が独立し、docker composeで起動・停止・更新が統一コマンドでできるようになっています。


    まとめ

    • 古いPCで十分動く ── Celeronでも複数サービスを同時稼働でき、CPU使用率は通常5〜15%程度

    • 電気代の増加は月約950円 ── 24時間稼働への不安は、実測してみると杞憂だった

    • 外部公開はCloudflare TunnelとWireGuard VPNを使い分ける ── Tunnelはポート開放不要、VPNは大容量転送に

    • v6プラス環境の制約に注意 ── ポート80・443・51820が使えないため、各サービスで工夫が必要

    • Dockerで構成を統一 ── サービスごとに環境が独立し、起動・停止・更新がコマンド一発


    次の記事

    ②では、v6プラス・二重NAT環境でWireGuard VPNを構築し、外出先から自宅LANに接続できるようにするまでの手順を紹介します。DDNSの設定や2段階のポート転送など、ハマりやすいポイントも含めて解説します。

     
     

    Sone

     
     
    新しいことを試すのが好きな趣味人。自宅サーバ構築やガジェット弄りなど、気になったらとりあえず手を動かしてみるタイプ。学んだことをここに残していきます。

    あなたへのおすすめ