「固定IPなし・NAT構成」限られたリソースで構築するホームラボ

2026/06/09 技術系 投稿者:

はじめに

本記事では「最小限のリソースで最大限の業務効率化を実現すること」をテーマに
社内PC上の仮想マシンに構築したホームラボ環境と、選定したOSSの採用理由を紹介します。

業務の中で、コマンドや設定手順を調べたり、社内Wikiや工数管理システム、監視画面を開いたりする作業を毎日のように行います。
以前はコマンドや設定内容をメモ帳やExcelで管理していましたが、情報が増えるにつれて検索性が悪化し、「どこかにメモしたはずなのに見つからない」ということが頻繁に起きるようになりました。
また、ナレッジ共有、工数管理、監視ツールなどが別々に存在しており、必要な情報へたどり着くまでに複数の画面を行き来する必要がありました。

そこで、「必要な情報やツールへの入口を一箇所に集約できないか」と考え、社内PC上にホームラボを構築することにしました。
ただし、利用できるリソースは限られています。
環境は社内PC上の仮想マシンで構築し、CPU・メモリはホストPCと共有、ネットワークも固定IPを利用せずNAT構成としました。

成果物

上記は本記事で紹介するOSSを組み合わせて構築したホームラボ環境です
ダッシュボードを起点に、必要なツールへ移動できる構成となっています。

構築環境

 項目  内容
 ホストOS  Windows 11 Pro
 ホストCPU  Core i5-9400
 ホストメモリ  16GB
 仮想化ソフトウェア  VirtualBox
 ゲストOS  Alma Linux 10.1
 vCPU  2 (2コア相当)
 メモリ割当  3GB
 ストレージ割当  20GB
 ネットワーク  NAT

ホストPCへの影響を抑えるため、vCPU 2、メモリ3GBという限られたリソース内で運用できる構成を目指しました。

構成概要

システム構成図

各OSSはそれぞれ異なるポートで動作するため、ポート番号を意識したアクセスやVirtualBoxのポートフォワーディング設定が煩雑になります。
そこでCaddyをリバースプロキシとして配置し、サービスごとのURLでアクセスできる構成としました。
仮想マシンはNAT構成のため、ホストPCからのアクセス用にCaddy向けのポートのみポートフォワーディングを設定しています。

ディレクトリ構成

`-- homelab
    |-- bytestash_data
    |-- caddy
    |-- docker-compose.yml
    |-- homarr
    |-- linkding_data
    |-- my-webapps
    |-- portainer
    |-- trilium
    `-- vw-data

設定ファイルやデータのバックアップ、移行が容易になるためバインドマウントで管理しています。

各サービス概要

 OSS  用途
 Homarr  ダッシュボード(入口)
 Dash.  仮想マシンのリソース管理
 Caddy  リバースプロキシ
 Portainer  Docker管理
 Vaultwarden  パスワード管理
 Linkding  ブックマーク管理
 Trilium Notes  ナレッジ管理
 ByteStash  コマンド管理

技術選定

Homarr vs Dashy vs Homepage vs Heimdall

ホームラボの入口となるダッシュボードにはHomarrを採用しました。
私の環境ではメモリを650MBほど使用しており、ほかのダッシュボードと比べると多少重い印象ですが、
・GUIによる設定が楽
・ガジェットが豊富
・各コンテナやリソースの状態が一目で確認できる
という点から利便性を評価し、採用いたしました。
メモリの負荷はheimdall > Homarr > dashy > homepage という所感です。

Dash. vs Beszel vs Glances

仮想マシンのリソース管理ツールにはDash.を採用しました。
GlancesはTopコマンドの上位互換のようなツールで、CPUやメモリ、プロセスなどを詳細を一覧で確認できるところが魅力ですが、メモリ使用量が多かったため軽量なDash.かBeszelを候補としました。
Dash.はCPU・メモリ・ディスク使用率などをシンプルに可視化でき、日常的な状態確認には十分だと判断し採用しました。
Homarrのウィジェットに対応しており、ダッシュボード上から確認できるところもポイントです。

詳細な調査が必要なときはPortainerや仮想マシンから直接確認するため、リソース管理ツールは軽量であることを優先しています。

Caddy vs Traefik

リバースプロキシにはCaddyを採用しました。
TreafikはDockerとの親和性が高いのですが、docker-compose.ymlでリバースプロキシの設定を行う必要があります。
nginxなどの設定経験があるとCaddyのほうが理解しやすかったのでこちらを採用いたしました。
後述しますが、OSSによってはアクセスにHTTPS必須のものがあるため自己証明書が必要になります。
自己証明書の発行や管理もCaddyのほうが理解しやすかったのも理由となります。

Linkding vs Karakeep

ブックマーク管理にはLinkdingを採用しました。
Karakeepはmeilisearchとchromeのコンテナを稼働させるとメモリ使用量が700MBを超えてしまうため、軽量かつ拡張機能あり、かつタグによる分類があるLinkdingにしました。
ブックマークはメモやナレッジソフトでも代用できますが、気軽に記事のストックを行いたかったのでブックマーク管理OSSも追加しました。

Trilium vs Wiki.js vs ByteStash vs Memos

ここが個人的に悩んだところですが、ナレッジ・図作成にTrilium、スニペット保存にByteStashを採用しました。
スニペットの管理もTriliumで事足りますが、コマンドを検索してワンクリックでコピーを行う用途に関してはByteStashの方が使いやすかったので2つインストールすることにしました。
検証履歴や自分のナレッジにはTriliumを使い、インフラ運用でよく使うコマンド集としてByteStashを使用しています。

構築後のリソース使用量

前述の通り仮想マシンのメモリは3GBとなっています。
メモリ使用量は1.57GB、CPUは平常時5%前後です。
サービス利用時はCPUは30%使用することもありますが、普段使いでは十分な余裕があります。
メモリ使用量はあまり前後しません。

大変だった点

NAT構成

ホスト上にVirtualBoxで仮想マシンを構築し、その中にDockerで各サービスのコンテナを構築しました。
DockerDesktopはホスト機のリソースが使われすぎてしまうためこのような構成となりました。
また、個人の目的でプライベートIPアドレスを一つ埋めてしまうのも良くないと考え、NAT構成としました。
そのため、ホストと仮想マシンのポートフォワーディングと仮想マシンとコンテナのポートフォワーディングで混乱する場面がありましたので、IPアドレスに余裕があればブリッジアダプターでの設定をおすすめします。

自己証明書

パスワード管理にVaultwardenを使用していますが、こちらはHTTPSでないとサイトにアクセスできないようでした。
そのため、自己証明書の発行とホストへのインストールが必要となりました。
Vaultwarden以外はHTTP通信できており、CaddyはHTTP接続用に設定ファイルを書いていたため書き直しを余儀なくされたときは億劫に感じましたが、Caddyには設定ファイルに一行追加するだけで証明書が発行されるので思っていたよりも簡単に設定できました。
ローカル環境だとしてもHTTPSを強制しているOSSもあるため、初めからHTTPSで設計することをおすすめします。

改善された点

検索性の向上

現在はコマンドをByteStashで管理しているため、
・キーワード検索
・タグ検索
・ワンクリックコピー
が可能となってことで検索性が向上したと実感できています。

情報の置き場の明確化

・ナレッジ:Trilium
・コマンド :ByteStash
・ブックマーク:Linkding
・パスワード管理:Vaultwarden

どこに何を保存するかが明確になったことで情報を探す時間が減ったと感じています。

まとめ

前述した通り、これまでメモ帳やExcelで管理していたナレッジやコマンドをByteStashやTriliumで管理するようにしたことで、検索性が向上し、実務でも使いやすくなりました。
また、ブックマークやパスワードの管理も地味に便利で、「どこに登録したか」「どこに保存したか」を迷う時間が減ったと感じています。
ダッシュボードについては、アクセス自体はブラウザのブックマークと大きく変わりませんが、各ツールへの導線やコンテナの状態確認を一箇所に集約できるため、ホームラボ全体の管理はしやすくなりました。

ホームラボというと、自宅にサーバーを設置し、ラックやネットワーク機器を並べた大規模な環境をイメージする方も多いかもしれません。
しかし、社内PC上の仮想マシンとDockerを活用するだけでも、十分に実用的な環境を構築することができました。
今回の構築を通して、Docker Compose、リバースプロキシ、証明書管理など、業務にも応用できる知識を学ぶことができたため、単なる業務効率化だけでなく、技術検証環境としても有用だと感じています。

今後はDNSやSSOの導入なども検証しながら、さらに使いやすい環境へ改善していきたいと考えています。

 

カレンダー

1234567
891011121314
15161718192021
22232425262728
2930     
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
      1
2345678
9101112131415
16171819202122
232425262728 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
     12
3456789
10111213141516
17181920212223
2425262728  
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
   1234
567891011
12131415161718
19202122232425
26272829   
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
1234567
891011121314
15161718192021
22232425262728
       
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
     12
3456789
10111213141516
17181920212223
24252627282930
31      
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
     12
3456789
10111213141516
17181920212223
242526272829 
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
    123
45678910
11121314151617
18192021222324
25262728   
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
   1234
567891011
12131415161718
19202122232425
262728    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
1234567
891011121314
15161718192021
22232425262728
29      
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
      1
2345678
9101112131415
16171819202122
232425262728 
       
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
2425262728  
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
U・Iターン転職しませんか?
群馬データセンター
群馬の法人ITサポートサービス Wide Net[ワイドネット]
Wide Netのクラウドバックアップ
クラウド型ファイル共有サービスRushDrive
ワイドオフィス
ネディアのSDGsへの取り組み
健康経営優良法人
IT-commons(ITコモンズ)