自宅サーバー運用を始めた理由
自宅サーバー運用を始めた理由は、Linux上でサービスを継続稼働させる環境を、自分の手元で検証したかったからです。
VPSやクラウドサービスを使えば外部公開はしやすいですが、ローカル環境であれば、OS設定、プロセス管理、リソース監視、バックアップなどを失敗しながら試せます。まずは外部公開を前提にせず、LAN内で扱えるサーバー環境を作ることにしました。
本文中のコードブロックでは、設定や運用スクリプトを CONFIG として記録します。
VirtualBoxでLinux環境を用意する
初期環境では、Oracle VirtualBox 上に Rocky Linux を用意しました。ここでは、手元のPC上でLinuxサーバーを扱える状態を作り、サービス起動やファイル管理、運用まわりの確認を進めています。
// LAN内で使う前提
この時点では、外部公開ではなくLAN内で利用する前提にしました。アクセス範囲を絞り、まずは手元で管理しやすい状態を優先しています。
// VirtualBoxを使った理由
初期段階では、環境をすぐ作り直せることと、試行錯誤しやすいことを重視しました。VirtualBox はスナップショットを使えるため、設定変更やMod構成の確認で状態を戻しやすく、検証しながら運用を始めるには扱いやすい選択でした。

VirtualBox上に用意したRocky Linux環境
動作確認に使ったサーバー構成
OSには Rocky Linux 9.4 を使い、実際に動かすワークロードとして Minecraft 系サーバーを用意しました。ここでは、VirtualBox上のLinux環境でサービスを動かし、必要なファイルやModを管理する流れを確認しています。
当時の構成では、軽量化や安定化を目的としたModも入れていました。メモリ使用量を抑える ModernFix や FerriteCore、探索を補助する JourneyMap、チャンク読み込み負荷を抑える Chunk-Pregenerator などを使っています。
- [ Performance / 軽量化 ]
- ModernFix / FerriteCore / AI-Improvements
- [ Utility / 冒険支援 ]
- JourneyMap / Waystones
- [ Stability / 安定化 ]
- Chunk-Pregenerator

当時利用していたMod一覧
バックアップ用のスクリプトを用意する
継続してサーバーを動かすため、バックアップ用のスクリプトも用意しました。単にデータを圧縮するだけではなく、古いログや不要な一時ファイルを削除してから保存する形にしています。
cat backup.sh
#!/bin/bash
# --- 設定 ---
DATE=$(date +%Y%m%d-%H%M)
BACKUP_DIR="/opt/minecraft/backup"
SERVER_DIR="/opt/minecraft/server"
WORLD_DIR="${SERVER_DIR}/world"
# --- 1. バックアップ前のお掃除 (軽量化) ---
find ${SERVER_DIR}/logs/ -name "*.log.gz" -mtime +7 -delete
rm -rf ${SERVER_DIR}/crash-reports/*
rm -f ${WORLD_DIR}/*.bak
rm -f ${WORLD_DIR}/level.dat_old
rm -rf ${WORLD_DIR}/EliteRaidAllies.bak
# --- 2. バックアップ実行 ---
tar czf $BACKUP_DIR/world-$DATE.tar.gz $WORLD_DIR
# --- 3. 世代管理 ---
find $BACKUP_DIR -type f -name "world-*.tar.gz" -mtime +7 -deleteこのスクリプトにより、不要ファイルを整理しながらバックアップを残せるようにしました。定期実行には crontab を使い、日次でバックアップを取得する前提にしています。
運用しやすい状態にする
// プロセス管理
サーバープロセスは systemd 配下で扱い、OS起動時の自動開始や異常終了時の再起動を行えるようにしました。また、tmux を利用し、バックグラウンド実行中でも必要に応じてコンソールへアタッチできるようにしています。
リソース監視には btop を使いました。メモリ使用量やストレージI/Oを見ながら、負荷やボトルネックを確認できる状態にしています。

tmuxでサーバーログを確認している画面
初期運用で見えた見直し点
VirtualBox上でサーバーを動かすことで、Linux環境のサービス管理やバックアップ、監視の流れを確認できました。自宅サーバー運用を始める入口としては、この構成で必要な要素をひと通り試せています。
一方で、VirtualBoxは仮想マシンに割り当てたメモリをホスト側で固定的に確保します。サーバーの実消費量が割り当て量より少ない場合でも、ホスト側ではその分のメモリを占有するため、長時間運用では見直したい点もありました。
このため、VirtualBox上で自宅サーバー運用を始めたあと、よりホスト側のリソースを扱いやすい構成としてWSL2も検討対象になりました。