お問い合わせはこちら

Nextcloudを自宅サーバーに構築する方法|手順や運用のポイントを解説

公開
Nextcloudを自宅サーバーにする方法

クラウドストレージの便利さを自宅で実現したい方必見!本記事では、無料で構築できるファイルサーバー「Nextcloud」の魅力と、自宅での構築方法を詳しく解説します。IT初心者からエンジニアまで、誰でも簡単に自前のクラウドストレージを作れるようになります。セキュリティ面でも安心な自宅サーバーの構築方法や、便利な運用テクニックまで、幅広くカバーしています。Nextcloudを使って、自由自在なファイル管理を実現しましょう。

Nextcloudとは|無料で構築できるファイルサーバー

Nextcloudは、無料で構築できるオープンソースのファイルサーバーソフトウェアです。

自宅のパソコンやサーバー機器にインストールすることで、独自のクラウドストレージを構築できます。GoogleドライブやOneDriveなどの有料サービスと比較して、データの管理や保存場所を自分で制御できる点が大きな特徴です。容量制限がなく、月額料金も不要なため、長期的なコスト削減にもつながります。

また、ファイル共有だけでなく、カレンダーやタスク管理、ノート作成など多彩な機能を備えており、自宅サーバーとしての活用価値も高いです。

プライバシーを重視する方や、大容量のデータを扱う方にとって、Nextcloudは魅力的な選択肢となるでしょう。

Nextcloudの特徴とメリット

Nextcloudの最大の特徴は、容量無制限で利用できることです。自宅サーバーにインストールすることで、クラウドストレージの月額料金を気にせずに大容量のファイルを保存できます。

また、データを自身で管理できるため、プライバシーとセキュリティの面でも安心です。さらに、カレンダーや連絡先の同期、ファイル共有など、多彩な機能を無料で利用できます。

自宅サーバーへのインストールにより、インターネット接続さえあれば、どこからでもファイルにアクセスできる利便性があります。ただし、自宅サーバーの運用にはメンテナンスや管理の手間がかかり、セキュリティ対策も必要です。また、停電や機器故障のリスクもあるため、重要なデータのバックアップは別途必要です。

ownCloudとの機能比較

NextcloudとownCloudは、どちらもオープンソースのファイル共有・同期プラットフォームですが、いくつかの重要な違いがあります。

ownCloudは2010年に開発が始まり、Nextcloudは2016年にownCloudから分岐しました。データ共有や同期機能については、両者とも基本的な機能を備えていますが、Nextcloudはより高度なセキュリティ機能や暗号化オプションを提供しています。

また、Nextcloudは追加機能の面でより充実しており、ビデオ会議機能や共同編集ツールなどが標準で組み込まれています。一方、ownCloudはこれらの機能を追加プラグインとして提供しています。さらに、Nextcloudはコミュニティ主導の開発モデルを採用しており、機能の追加や改善がより迅速に行われる傾向にあります。

自宅サーバー環境の選択と準備

Nextcloudを自宅サーバーに導入する際、環境の選択は重要なポイントです。大きく分けて、Linux実機へ直接インストールする方法と、Windows上の仮想環境を利用する方法があります。初心者の方には、Windows上でWSL2とDockerを組み合わせる方法がおすすめです。

環境構築の全体的な流れとしては、以下の順序になります。

  1. 基本システムのセットアップ
  2. Webサーバーの構築
  3. データベースの準備
  4. Nextcloud本体のインストール

ただし、snapやDockerといったコンテナ技術を利用することで、これらの手順を大幅に簡略化できます。コンテナ技術を使えば、複雑な設定作業を省略し、短時間で環境を整えることができるのです。環境選択の際は、自身のスキルレベルや目的に応じて最適な方法を選びましょう。

必要な動作環境

Nextcloudを快適に運用するには、UbuntuかWindows 11が快適に動作するハードウェアのスペックが必要です。また、安定した高速インターネット接続も必須となります。さらに以下のソフトウェア要件が必要になります。

要件
オペレーティングシステムUbuntu 16.04以降(18.04/20.04/22.04)、
またはWindows 10/11でWSL2を利用する環境
データベースMySQL 8以降、またはMariaDB 10以降
WebサーバーApache 2.4
PHPバージョン7.1以降

Windows環境とUbuntu環境の違い

Nextcloudを自宅サーバーに構築する際、Windows環境とUbuntu環境では異なるアプローチが必要です。

Ubuntu環境では、Linuxの実機に直接Nextcloudをインストールできるため、セットアップが比較的簡単です。一方、Windows環境では、仮想化技術を利用する必要があります。WindowsにWSL2やVirtualBoxなどの仮想環境を構築し、その中にUbuntuをインストールしてNextcloudを動作させます。

Ubuntu環境では、システムリソースを直接利用できるため、パフォーマンスが高くなります。しかし、Windows環境では仮想化によるオーバーヘッドが生じ、若干のパフォーマンス低下が起こる可能性があります。

また、Windows環境では、仮想環境の設定やネットワーク構成に追加の手順が必要となる場合があります。それぞれの環境に応じた適切な設定と最適化が重要です。

こうした理由から本番環境としてNextcloudを運用するならUbuntu環境をおすすめしますが、手元にWindows環境しかなく、動作確認をしたいだけなら、WSL2とdockerを組み合わせる方法で比較的簡単に試すことができます。

WSL2とDockerの組み合わせ方

WSL2とDockerを組み合わせることで、Windows環境でLinuxの機能を活用しつつ、コンテナ技術の利点を最大限に引き出すことができます。

まず、WSL2をインストールし、Ubuntuなどの好みのLinuxディストリビューションをセットアップします。次に、Docker Desktop for Windowsをインストールし、WSL2バックエンドを有効にします。これにより、WSL2上でDockerコンテナを直接実行できるようになります。

WSL2とDockerを連携させることで、Windows上でLinuxコンテナを高速に動作させることが可能になり、開発環境の構築や管理が容易になります。ただし、WSL2とDockerを組み合わせる際は、リソース使用量に注意が必要です。メモリ使用量が増加する傾向があるため、システムリソースの監視と適切な設定調整が重要です。

自宅でのNextcloudの構築手順

Nextcloudを構築する手順は、大きく分けて環境準備、インストール、初期設定の3段階で進めます。

  1. WSL2、Ubuntu 22.04、Dockerをインストールし、必要なパッケージを更新します。
  2. Nextcloudのインストールスクリプトをダウンロードして実行します。
  3. インストールが完了したら、ウェブブラウザからアクセスして管理者アカウントを作成し、基本設定を行います。

初期設定では、セキュリティ強化のためSSL証明書の設定や、ファイアウォールの設定が重要です。また、ユーザー管理やストレージの設定も忘れずに行いましょう。

WSL2+Dockerでの環境構築

WindowにNextcloudを構築する場合は、WSL2とUbuntu 22.04をインストールし、 Dockerで環境構築します。
以下で手順を説明します。

WSL2にUbuntu 22.04をインストール

①「コントロールパネル>プログラム>Windowsの機能の有効化または無効化」を選択
②「Linux用Windowsサブシステム」にチェックを入れる
③インストール後に再起動
④https://aka.ms/wsl2kernelからUbuntu 22.04のパッケージをダウンロードし、インストール
⑤Windows ターミナルのメニュー「∨」ボタンから「Ubuntu 22.04 LTS」を選ぶ。

Dockerをインストール

PowerShellでUbuntuを起動し、関連するパッケージをインストールするために以下のコマンドを入力します。

sudo apt update
sudo apt install ca-certificates curl gnupg

続いて、Dockerのリポジトリを登録します。

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

DockerとDocker Composeをインストールします。

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

以下のコマンドで動作確認をします。

docker --version
docker compose version

Docker Composeの設定

プロジェクトディレクトリを作成し、docker-compose.ymlファイルを作成します。ファイルには以下のような内容を記述し、保存します。

services:
db:
image: mariadb
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=strong_root_pass
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=strong_db_pass

app:
image: nextcloud
restart: always
ports:
- "8080:80"
volumes:
- nextcloud_data:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=strong_db_pass

volumes:
db_data:
nextcloud_data:

コンテナを起動

設定が完了したら、ターミナルでプロジェクトディレクトリに移動し、以下のコマンドを実行してコンテナを起動します。

docker compose up -d

「localhost:8080」にアクセス

ブラウザで「localhost:8080」にアクセスし、Nextcloudの初期設定画面が表示されれば環境構築は成功です。

localhost:8080の表示画面

Cloudflareを使用したポート開放不要の設定

Cloudflareを使用することで、ポートを開放せずにNextcloudサーバーを外部からアクセス可能にできます。
Cloudflare Tunnelを設定する具体的な手順は以下の通りです。

  1. Cloudflareのダッシュボードから独自ドメインを登録し、ドメインのネームサーバーをcloudflareに設定します。
  2. トンネル用のコマンドラインツールをインストールします。
    以下のコマンドを入力しましょう。
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
cloudflared ?version

cloudflared version xxxxxと表示されたら成功です。

  1. トンネルを認証し、設定ファイルを作成します
cloudflared tunnel login

上記コマンドを入力するとURLが発行されるのでアクセスして認証しましょう。
認証が出来たら以下のコマンドでトンネルを作成します。

cloudflared tunnel create <任意のトンネル名>

トンネルとDNSを紐付けます。

cloudflared tunnel route dns <トンネル名><登録したドメイン名>
  1. トンネルの設定ファイルを編集し、Nextcloudサーバーの情報を追加します。
    例えばconfig.yamlというファイルを作り、以下のように書きます。
tunnel: <トンネル名>
credentials-file: /home/<ユーザー名>/.cloudflared/<トンネルID>.json

ingress:

hostname: <登録したドメイン名>
service: http://localhost:8080

service: http_status:404
  1. トンネルを起動します。
cloudflared tunnel --config ~/.cloudflared/config.yaml run <トンネル名>

登録したドメイン名にアクセスしてみましょう。Nextcloudの画面が表示されれば成功です。

これでポート開放不要でNextcloudサーバーに安全にアクセスできるようになります。

Nextcloudサーバーに安全にアクセスできたときの表示

セキュリティ設定の最適化

Nextcloudのセキュリティを最適化するには、まず信頼できるドメインの設定が必要です。

1.config.phpファイルを編集し、’trusted_domains’配列に許可するドメインを追加します。
config.phpファイルは/var/www/html/configフォルダにある場合が多いです。Dockerを使っている場合は以下のコマンドでアクセスします。

docker exec -it コンテナ名 bash
cd /var/www/html/config

2.SSL/TLS暗号化を有効にします。Apacheの場合は以下のコマンドを実行しましょう。

sudo a2enmod ssl

3.config.phpファイルにセキュリティ関連の環境変数を設定します。
例えば、’NEXTCLOUD_TRUSTED_DOMAINS’変数を設定して信頼できるドメインを指定したり、’NEXTCLOUD_ADMIN_PASSWORD’変数で管理者パスワードを設定したりします。

これらの設定を組み合わせることで、Nextcloudの安全性を大幅に向上させることができます。

config.phpファイルの画面

Nextcloudによる自宅サーバーの運用方法

Nextcloudを自宅サーバーとして運用する際は、定期的なバックアップと更新をしましょう。

データの安全性を確保するため、自動バックアップを設定し、重要なファイルを定期的に外部ストレージにコピーします。また、Nextcloudの最新バージョンへの更新を忘れずに行い、セキュリティを維持します。

パフォーマンスを最適化するには、不要なファイルの整理や、キャッシュの定期的なクリアが効果的です。さらに、ディスク使用量を監視し、必要に応じてストレージの増設を検討しましょう。これらの日常的な運用管理を行うことで、安定した自宅サーバー環境を維持できます。

プラグインによる機能拡張

Nextcloudには機能を拡張する様々なプラグインがあり、ユーザーのニーズに合わせてカスタマイズできるのが大きな魅力です。

おすすめのプラグインとしては、以下が挙げられます。

プラグイン拡張内容
メール連携
(Mail)
Nextcloud上でメールの送受信が可能になります。
カレンダー機能
(Calendar)
Nextcloudにカレンダーを追加します。
スケジュール管理に便利です。
Todo管理
(Tasks)
やるべきタスクを登録したり削除したりして管理するToDo管理のプラグインです。
チャット、ビデオ
(Talk)
チャットやビデオ会議機能を実現するプラグインです。
コミュニケーションツールとして重宝します。
施設予約システム
(ReserveRoom)
会議室などの社用設備の予約管理を行えます。

これらのプラグインを組み合わせることで、Nextcloudを総合的なグループウェアとして活用できるでしょう。

クライアントソフトの活用

Nextcloudのクライアントソフトを活用することで、より便利にファイル同期やアクセスができるようになります。

Windows用クライアントでは、インストール後にサーバーのアドレスとログイン情報を入力するだけで、自動的にファイルの同期が始まります。同期するフォルダの選択や、帯域制限の設定なども可能です。macOS用クライアントも同様の手順で設定でき、Finderとの統合により、ローカルファイルと同じように操作できます。モバイルアプリは、iOS版とAndroid版が提供されており、スマートフォンやタブレットからもファイルにアクセスできます。

写真の自動アップロード機能や、オフライン閲覧機能など、モバイル特有の便利な機能も搭載されています。これらのクライアントソフトを活用することで、デバイスを問わずNextcloudの機能を最大限に活用できます。

Nextcloudのクライアントソフトでの表示画面

クライアントソフトはNextcloud公式サイトからダウンロードできます。

Nextcloudのアンインストール方法

Nextcloudのアンインストール方法を理解しておくことは、システムの管理や将来的な変更に備える上で重要です。

snapを使用してインストールした場合、以下のコマンドでアンインストールできます。

sudo snap remove nextcloud

ただし、アンインストール前にはデータのバックアップを忘れずに行いましょう。Nextcloudの管理画面からエクスポート機能を使用するか、データディレクトリを手動でコピーすることでバックアップできます。

完全にクリーンアップするには、関連する設定ファイルやデータベースも削除する必要があります。具体的には、/var/snap/nextcloud ディレクトリの削除や、使用していたデータベースの削除を行います。これらの手順を慎重に実行することで、Nextcloudを完全に削除し、システムを元の状態に戻すことができます。

Dockerを使ってインストールした場合はコンテナを停止し、Nextcloudのボリュームを削除します。

docker compose down
docker volume rm <ボリューム名>
Nextcloudのボリュームを削除した時の画面

まとめ

Nextcloudを使った自宅サーバーの構築は、個人のデータ管理を強化し、プライバシーを保護する優れた方法です。

WSL2とDockerを組み合わせることで、Windowsユーザーでも簡単に環境を整えられます。Cloudflareを活用すれば、ポート開放なしでも外部からアクセス可能になります。

セキュリティ設定の最適化や、プラグインによる機能拡張も重要なポイントです。クライアントソフトを活用することで、より便利にファイル管理ができるでしょう。Nextcloudは無料で高機能なファイルサーバーを構築できる素晴らしいツールです。適切に設定し運用することで、安全で効率的な自宅クラウド環境を実現できます。

Nextcloud でクラウドストレージをつくってみた  ~ サーバー構築編 ~

Nextcloud でクラウドストレージをつくってみた ~ サーバー構築編 ~

中小企業において、「テレワーク」や「働き方改革」などの文脈で、クラウド上に簡単にファイルを保存したり共有できる、クラウドストレージへの関心が高まっています。サブスクリプションで提供されているストレージサービスを、普段から利用されている方も多いのではないでしょうか。これらのサービスは容量に応じた月額料金が設定され、不特定多数のユーザーで同一の基盤を使用するケースが一般的ですが、法人利用の場合はコスト…