はじめに
Nextcloudは、Googleドライブ・Dropboxのようなクラウドストレージを自宅サーバーで運用できるオープンソースソフトウェアです。WordPressと並んで、自宅サーバー構築において特に検索需要の高いアプリケーションです。本ページでは、既に稼働中のWordPress(ポート80)と同居させる形で、別ポートでNextcloudを構築します。
1. 詳細な技術要素
| 用語 | 説明 |
|---|---|
| ポートの使い分け | 1台のサーバーで複数のWebアプリを同時に公開する場合、ポート番号を分ける(80番はWordPress、8080番はNextcloud、等)のが最も簡単な方法。 |
| 公式Nextcloudイメージ | WordPressと同様、環境変数でデータベース接続情報を渡すだけで動作する公式Dockerイメージ。 |
| 推奨アプリ | 初回セットアップ時に提案される、Calendar・Contacts・Notes等の追加アプリ。後からいつでも「アプリ」画面で追加・削除できる。 |
2. 実証手順
1
ポートを許可し、データベースとNextcloudを起動する
実行コマンド
sudo ufw allow 8080/tcp
sudo docker network create nextcloud-net
sudo docker run -d --name nc-db --network nextcloud-net --restart=always \
-e MYSQL_ROOT_PASSWORD=(強力なパスワード) \
-e MYSQL_DATABASE=nextcloud \
-e MYSQL_USER=nextcloud \
-e MYSQL_PASSWORD=(強力なパスワード) \
-v ~/nc-db-data:/var/lib/mysql \
mariadb:latest
sudo docker run -d --name nextcloud --network nextcloud-net --restart=always -p 8080:80 \
-e MYSQL_HOST=nc-db \
-e MYSQL_DATABASE=nextcloud \
-e MYSQL_USER=nextcloud \
-e MYSQL_PASSWORD=(手順と同じパスワード) \
-v ~/nc-data:/var/www/html \
nextcloud:latest
WordPressコンテナ(ポート80)とNextcloudコンテナ(ポート8080)が同時に稼働する。実機で両方への同時アクセスを確認済み。
2
ブラウザから初期設定を進める
http://(サーバーのIP):8080/にアクセスし、管理者アカウントを作成する。セットアップ完了後、Calendar・Contacts・Mail・Notes等の推奨アプリをインストールするか聞かれるので、必要に応じて選択する(後からでも追加・削除できる)。
3. トラブルシューティング
ポート8080がUFWの許可なしでも外部から見えてしまう
解決策:Apache構築(Dockerコンテナ)ページで解説した「DockerはUFWのルールを無視してポートを公開する」という仕様がここでも当てはまる。sudo ufw allow 8080/tcpを実行したかどうかに関わらず、-p 8080:80で公開した時点でアクセス可能になっている点に注意すること。外部に公開する意図がない場合は、そもそも-pでポートを公開しないか、127.0.0.1:8080:80のようにlocalhost限定にする。
4. まとめ
WordPressとは別ポートで、Nextcloudによる自分だけのクラウドストレージを構築しました。1台のサーバーで複数のWebアプリをポート番号で使い分ける、という基本的な運用方法も確認できました。