はじめに
遡ること 2022年、僕がLinuxをいじっていた頃(中国語簡体字) 、NASを構築するのに必ずしも専用システムにお金を払う必要はない、という話をした。
それから現在、サーバーをいじくり回す中で、クラウドストレージのマウント速度がどうにもイマイチだ。そんなフラストレーションから、衝動的にN5095マザーボードをポチってしまった。手持ちの4Gメモリは少し心許ないが、これ以上出費を増やしたくもない。
こうして、僕は再び「サーバーいじり」の旅に出ることにした。
技術選定
まずはシステム。この低スペック構成なら、当然最軽量のAlpine Linuxを選ぶ。
次にインストール方法。 WEPE との互換性を考慮し、 Ventoy をメインブートにしてシステムをインストールする。
サービスのデプロイはDockerを使い、ホストOSのクリーンさと再現性を担保する。
使用するサービス:
検討したけど使わなかったサービス:
- 動画: Jellyfin
- 漫画/小説: Kavita
- クラウドマウント: CloudDrive
ファイル構成
各サービス用ディレクトリの配置は、僕のいつものスタイルだ。サービスごとにフォルダを分け、/home配下に置く。
HDDはすべて/mnt配下にマウントする。これは一般的なやり方だろう。
mount –bind(バインドマウント)を使い、HDD上の対応するファイルを、各サービスが参照する場所(パス)にマッピングする。

システムインストール
公式サイトでAlpine Linuxをダウンロード し、VentoyをインストールしたUSBメモリに入れる。マザーボードのBIOSでUSBメモリから起動するよう設定し、Ventoyの画面でAlpine Linuxを選んで起動する。
ロードが完了したら、ユーザーrootでログイン(パスワード不要)。ログイン後、インストールコマンドを叩く。
| |
あとはガイドに従って設定を完了させればOK。
公式ドキュメント: setup-alpine - Alpine Linux
公開鍵認証でのログイン
NAS関連の設定ファイル ~/.ssh/authorized_keys を編集する。まず設定フォルダを作成。
| |
フォルダに移動。
| |
自分の公開鍵を貼り付ける。
| |
(自分の公開鍵は %USERPROFILE%\.ssh にある)
公開鍵認証を有効にする。
| |
41行目あたりにあるコメントを外し、以下のように変更。
| |
コミュニティリポジトリの有効化
リポジトリファイルを開く。
| |
コメントアウト(#)を外し、communityを使えるようにする。
| |
Dockerのインストール
パッケージを更新。
| |
Dockerをインストール。
| |
自動起動を設定。
| |
Dockerを起動。
| |
起動確認。
| |
swapの追加
サーバーのイメージにデフォルトでswapがなかったので追加した。が、後で確認したらデフォルトで追加されていた。必要に応じて判断すればOK。
スワップファイルを作成。
| |
パーミッションをrootのみに設定。
| |
swapとしてフォーマット。
| |
swapを有効化。
| |
有効化されたか確認。
| |
ハードディスクのマウント
すべてのブロックデバイスを確認。
| |
NTFSのサポートをインストール。
| |
マウントポイント(フォルダ)を作成。
| |
マウントする。
| |
アンマウントは2通りの方法がある。パス指定(推奨):
| |
またはデバイス指定:
| |
自動マウント
再起動後にデバイス名(sdc1など)が変わっても大丈夫なように、パーティションのUUIDを取得する。
| |
/etc/fstabを編集。
| |
設定を追記。
| |
設定が正しいかテストする。まずアンマウント。
| |
fstabの設定をすべて読み込んでマウント。
| |
マウントが成功したか確認。
| |
SMB共有
Sambaを使って共有すれば、WindowsにHDDをマウントして、ローカルドライブのようにファイルを操作できる。
/home/sambaに docker-compose.yml を作成。
| |
Sambaの設定ファイル config.yml を編集。
| |
Windowsでネットワークドライブとしてマウント
Win + Rでcmdを開き、コマンドを入力。
| |
エクスプローラーをリフレッシュ。
| |
もちろん、エクスプローラーのGUI(「ネットワーク ドライブの割り当て」)から追加してもOK。
バインドマウント
シンボリックリンクと比べて、バインドマウント(Bind Mount)はDockerコンテナとの互換性が良い。
| |
OS起動時に自動でバインドマウントするには、/etc/fstabに書き込む必要がある。この時、必ず(HDD自体の)マウント設定より下に書くこと(ファイルが上から順に実行されるため)。
| |
確認。
| |
その他のサービス
他のサービスについては、以前の記事で結構書いた気がするので、ここでは割愛する。
関連記事(中国語簡体字):
- 2025-10-05: 漫画と音声サイト構築
- 2023-05-02: 個人用音楽サイトの構築
- 2022-09-16: プライベートネットワーク構築記
- 2022-09-14: FedoraにKomgaをインストールした記録
カスタムドメイン
ここではOpenWRTルーターのDNSリダイレクト(DNSハイジャック)機能を使い、特定のドメイン(例: emby.nasなど)にアクセスすると、自分のNASのサービスに繋がるようにする。
前提条件として、PCやスマホなどのデバイスのDNSサーバーがルーターになっている必要がある。その上で、ルーターのDHCP/DNS設定で、NASに静的IPを割り当て、さらにドメインハイジャック設定で、使いたいドメインをすべてNASのIPアドレスに向ける。
Nginx-UI
カスタムドメインを有効にするには、NginxでNAS上の各サービスをリバースプロキシする必要がある。
Docker Compose設定ファイル:
| |
コンテナから別のコンテナ(のホストOSポート)にアクセスする際のブリッジIPは 172.17.0.1 になる。
つまり、もしホストの8888ポートにマッピングされたサービス(例: Emby)がある場合、リバースプロキシで設定するプロキシ先アドレスは 127.0.0.1:8888 ではなく 172.17.0.1:8888 になる。
(なぜ環境変数を設定するのかは、 2025 新サーバー構築記録#Nginx-UIのインストール(中国語簡体字) を参照)
最後に
我ながら、2022年の自分が言っていたことを、ようやく実現できたかな、と思う。
このわずか3年間、主観的には自分は何も変わっていないつもりだった。でも、昔の自分の記事を読み返して、当時その文章を書いていた時の心境を思い出すと、自分の思考が天と地ほど変わってしまったことを実感する。
正直、当時はTrue NASのような専用システムを使うことばかり考えていた。
でも、いざ自分がそれを実現する時、昔の自分では考えもしなかった「ゼロから構築する」という方法を選び、過去の記事を見ながら一つ一つ組み上げていく。このプロセスで、「価値」というものを確かに感じ取ることができた。
「いじる」は終わらない、この熱意も止まらない。