NextcloudをDockerで構築する手順
はじめに
プライベートなDropbox環境を構築することができるOwnCloudですが、最近OwnCloud社のCEOが交代し、元CEOがよりオープンなOwnCloudとしてNextcloudの開発を進めています。Nextcloudについては最近知りましたが、非常に高機能で驚きました。例えば、WebRTCによる通話、チャット、画面共有機能、タスク管理機能などが追加され利用できるようになっています。社内用のコミュニケーションプラットフォームとしてなど色々な使い方ができそうです。 このNextcloudを実際に触って使ってみるために、Dockerを使って環境構築したのでその手順をメモします。なお、すでにDockerを触ったことがあれば数分で自分のローカル環境にNextcloudを構築できます。
2020/1/8 追記
以下にNextcloudのSnap版をNginxと一緒に使う構成の構築手順をまとめました。
Nextcloudは自前でGoogleドライブのようなサービスを構築できるオープンソースソフトウェアです。この記事では、Nginxをリバースプロキシとして使いNextcloudを動作させる環境の構築手順をまとめます。
前提となる環境
私はUbuntu18.04上で構築しました。DockerやDocker Composeの実行環境はすでに構築済とします。
手順
手順自体は公式サイトに従いました。 nextcloud/docker - GitHub
適当なディレクトリを作成
まず、Nextcloudのコンテナを格納する用の適当なディレクトリを作成します。ここでは、/home/user/docker
にnextcloud
というディレクトリを作成します。
$ mkdir nextcloud
docker-compose.ymlを作成
作成したディレクトリに、以下のよう内容を記述したdocker-compose.yml
ファイルを作成します。
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root # 適当なパスワードを設定
- MYSQL_PASSWORD=root # 適当なパスワードを設定
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
上記のうち、各自で適当に設定が必要になる箇所がMYSQL_ROOT_PASSWORD=
、MYSQL_PASSWORD=
の2箇所です。私は適当に両方共にroot
に設定しました。あくまでローカルで試す想定なので、実際にインターネットに接続されたサーバ上で構築する場合などはセキュリティ対策を実施する必要あると思います。
Docker Composeのコマンドで構築、起動
あとは以下のコマンド1つでコンテナ構築から起動まで実行されます。以下のようにdone
が表示されれば完了です。
$ docker-compose up -d
(・・・省略・・・)
Status: Downloaded newer image for nextcloud:latest
Creating nextcloud_db_1 ... done
Creating nextcloud_app_1 ... done
ps
コマンドでコンテナの稼働状況を確認すると、以下のように2つのコンテナがup
になっていることを確認できます。これで構築は完了です。
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------
nextcloud_app_1 /entrypoint.sh apache2-for ... Up 0.0.0.0:8080->80/tcp
nextcloud_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
動作確認とアカウント設定
実際に構築したNextcloudにアクセスしてみます。アクセスするには、ブラウザからhttp://localhost:8080
にアクセスします。すると以下のようなログイン画面が表示されます。ここで「ストレージとデータベース」という部分をクリックします。
「ストレージとデータベース」をクリックすると、以下のようにNextcloudが使用するデータベースの設定入力フォームが展開します。ここにdocker-compose.yml
に記述した内容と合わせて入力していきます。
この記事と同じ内容のdocker-compose.yml
、すなわち公式サイトと同じ内容で構築した場合は以下のように入力する必要があります。特に、最後のホスト名はデフォルトで入力されているlocalhost
のままだとエラーになり、以下のようにdb:3306
とする必要があるので注意が必要です。
- 管理者アカウントユーザ名:任意のユーザ名(上記ではadmin)
- 管理者アカウントパスワード:任意のパスワード(上記ではadmin)
- データベース:MySQL/MariaDB を選択
- データベースのユーザ名:root (
docker-compose.yml
で指定したMYSQL_ROOT_PASSWORD
の値と同じものを指定) - データベースのパスワード:root(
docker-compose.yml
で指定したMYSQL_PASSWORD
の値と同じものを指定) - データベース名:nextcloud(
docker-compose.yml
で指定したMYSQL_DATABASE
の値と同じものを指定) - ホスト名:db:3306(
docker-compose.yml
でデータベース用コンテナ名とそのデータベースが使用するポート番号を指定。MySQLはデフォルトで3306を使用。)
最終的に以下のような入力状態になります。この状態で「セットアップを完了します」をクリックします。
「セットアップを完了します」をクリックすると、以下のように「作業を完了しています」と表示されるのでしばらく待ちます。
作業が完了すると、以下のような画面が表示され、無事にNextcloudを使用できるようになります。
色々なアプリを追加してみる
Nextcloudでは、冒頭で述べたように様々な機能が追加できます。具体的には、以下のように右上にあるアカウントメニューから「アプリ」を選択します。すると、色々なカテゴリ毎に追加できるアプリが表示されます。ここから目的のアプリを有効化することで使えるようになります。
遭遇したエラー
Nextcloudの構築自体はすんなりいったものの、初めてNextcloudにアクセスした時の設定がうまくいきませんでした。具体的には、以下のようにError while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory
といエラーメッセージが表示されました。
これの原因は、「ストレージとデータベース」の部分でデフォルトでlocalhost
と入力されているホスト名が間違っているためです。公式サイトの手順通りにNextcloudをDockerで構築した場合は、ここのホスト名はdb:3306
である必要があります。これはdocker-compose.yml
に記述したデータベース用のコンテナ名とデータベースが使用するポート番号を指定しています。
以下のようにホスト名がlocalhost
や127.0.0.1
ではエラーになります。
まとめ
OwnCloudをはじめて使った時からだいぶ時間経ちましたが、まさかOwnCloudからNextcloudが生まれこのような進化をしているとは思いませんでした。かなり色々なことができそうなため、色々と触ってみてまたまとめたいと思います。関連記事
- 公開日:2020/01/21 更新日:2020/01/21
Nextcloud Hub(Nextcloud 18)をUbuntu + Nginx + MySQL環境で構築する手順
最新のNextcloudを使用したい場合は、Nextcloudのパッケージからゼロからインストールする必要があります。 この記事では、執筆時点で最新のNextcloud 18 (以降ではNextcloud Hubと呼びます。)をUbuntu + Nginx + MySQL環境で構築する手順をまとめます。
- 公開日:2020/01/18 更新日:2020/01/18
Nextcloudが「Nextcloud Hub」を発表。GoogleドキュメントやMicrosoft 365のようなコラボレーション機能を強化
Nextcloudはファイル共有サーバーとして始まり今ではビデオチャット機能やカレンダー機能等、非常に多くの機能を持つオープンソースソフトウェアです。そして2020年1月17日に新しく「Nextcloud Hub」を発表しました。
- 公開日:2020/01/08 更新日:2020/01/08
NextcloudのクライアントアプリをWindows10、Linuxにインストールする
NextcloudのクライアントアプリをWindows10、Linuxにそれぞれインストールしたのでその手順をメモしておきます。
- 公開日:2020/01/08 更新日:2020/01/08
Nextcloudのsnap版をNginxのリバースプロキシとサブディレクトリ構成で使う
Nextcloudは自前でGoogleドライブのようなサービスを構築できるオープンソースソフトウェアです。この記事では、Nginxをリバースプロキシとして使いNextcloudを動作させる環境の構築手順をまとめます。
- 公開日:2020/01/01 更新日:2020/01/01
Docker ComposeをUbuntuにインストールする手順
Docker ComposeをUbuntu18.04にインストールしたのでその手順をメモしておきます。docker-composeコマンドを使えるようにするまでの手順です。Docker Composeのインストール自体はとても簡単です。